汇编网首页登录博客注册
doit的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
友情链接

[2009-04-01 15:21] 检测点 11.1

sub al,al  ZF=1  PF=1  SF=0  
mov al,1   ZF=1  PF=1  SF=0  
push ax    ZF=1  PF=1  SF=0  
pop bx     ZF=1  PF=1  SF=0  
以上都是转移指令,不影响标志寄存器
add al,bl  ZF=0  PF=0  SF=0   (al)=1 (bl)=1  执行语句后,(al)=2 非0、奇数个1、非负
add al,10  ZF=0  PF=1  SF=0   执行语句后,(al)=12  非0、偶数个1、非负
mul al     ZF=0  PF=1  SF=0   ...
阅读全文 | 评论次数(2) | 浏览次数(712) | 所属类型(汇编作业)

[2009-03-31 15:35] 课程设计1

assume cs:code
code segment
    start:   
          mov ax,data
          mov es,ax

          mov ax,table
          mov ds,ax


          mov bx,0
          mov si,0
          mov di,0
          mov cx,21
          mov dh,5  ;输出的行
       s0:
          push cx
          mov cl,2

          ;year
          mov ax,es:[si]
          mov [bx],ax
          mov ax,es:[si+...
阅读全文 | 评论次数(4) | 浏览次数(734) | 所属类型(汇编作业)

[2009-03-27 17:37] 实验10-3

;(3) 
;名称:dtoc 
;功能:将word型数据转变成十进制的字符串,字符串以0为结尾符 
;参数:(ax)=word型数据 
;      ds:si指向字符串的首地址 
;返回:无 
;应用举例:编程,将数据12666以十进制的形式在屏幕的8行3列,用绿色显示出来。 

assume cs:code 
data segment 
  db 10 dup (0) 
data ends 
code segment 
    start:  
          mov ax,12666 
      mov bx,data 
      mov ds,b...
阅读全文 | 评论次数(1) | 浏览次数(729) | 所属类型(汇编作业)

[2009-03-27 17:37] 实验10-2

(2)
assume cs:code
code segment
    start: 
          ;计算1000000/10  (f4240H/aH)
          mov ax,4240H
          mov dx,000fH
          mov cx,0aH

          call divdw
          mov ax,4c00h
          int 21h


;名称:divdw
;功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型
;结果为dword型
;参数:(ax) = dword 型数据的低16位
;      (dx) ...
阅读全文 | 评论次数(1) | 浏览次数(676) | 所属类型(汇编作业)

[2009-03-27 17:36] 实验10-1

;(1)
assume cs:code
data segment
    db 'Welcome to masm!',0
data ends
code segment
    start: 
          mov dh,8
          mov dl,3
          mov cl,2
          
          mov ax,data
          mov ds,ax
          mov si,0

          call show_str


          mov ax,4c00h
          int 21h

 ;名称:show_str
 ;功能:在指定位置,用...
阅读全文 | 评论次数(1) | 浏览次数(688) | 所属类型(汇编作业)

[2009-03-26 09:58] 检测点 10.5

;(1)下面程序执行后,ax值是多少

assume cs:code
stack segment
dw 8 dup (0)
stack ends
code segment
    start: mov ax,stack
           mov ss,ax
           mov sp,16
           mov ds,ax
           mov ax,0
           call word ptr ds:[0eh]
           inc ax
           inc ax
           inc ax
           mov ax,4c00h
           int 21h
code ends
end start ...
阅读全文 | 评论次数(1) | 浏览次数(467) | 所属类型(汇编作业)

[2009-03-25 16:36] 检测点 10.4

内存地址      机器码      汇编指令
1000:0        b80600      mov ax,6
1000:2        ffd0        call ax
1000:5        40          inc ax
1000:6                    mov bp,sp
                          add ax,[bp]

执行到call ax时,ip为5,执行完call ax后,(ip)=6,跳到mov bp,sp;[bp]默认的段地址在ss中,故该单元中的值即为call执行后压入栈中的值(ss:sp)...
阅读全文 | 评论次数(1) | 浏览次数(478) | 所属类型(汇编作业)

[2009-03-25 16:25] 检测点 10.3

内存地址      机器码      汇编指令
1000:0        b80000      mov ax,0
1000:3        9a09000010  call far ptr s
1000:8        40          inc ax
1000:9        58          s:pop ax
                          add ax,ax
                          pop bx
                          add ax,bx

call far ptr 标号 指...
阅读全文 | 评论次数(2) | 浏览次数(451) | 所属类型(汇编作业)

[2009-03-25 10:53] 检测点 10.2

内存地址      机器码      汇编指令
1000:0        b80000      mov ax,0
1000:3        e80100      call s
1000:6        40          inc ax
1000:7        58          s:pop ax

我认为
call 标号 指令相当于是先将ip压入栈中,然后进行jmp near ptr 标号操作
所以先将(ax)=0压入栈中,跳到s处执行pop ax指令,最后ax的值为0
但是在debug中,结果不是这样,不知道是何解呢?...
阅读全文 | 评论次数(3) | 浏览次数(448) | 所属类型(汇编作业)

[2009-03-25 10:07] 检测点 10.1

; 补全程序,实现从内存1000:0000处开始执行指令
; retf 实现的是远转移。同时修改ip和cs
; 取栈中第一个字赋给ip 然后再去第二字赋给cs
; 故要求从内存1000:0000处开始执行指令即cs:ip指向1000:0  (cs) = 10000  (ip) = 0



assume cs:code
stack segment
    db 16 dup (0)
stack ends
code segment
start: mov ax,stack
       mov ss,ax
       mov sp,16
       mov ax,...
阅读全文 | 评论次数(1) | 浏览次数(465) | 所属类型(汇编作业)
『 查看更多文章 』