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

我的博客

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

[2010-02-28 22:31] 《汇编语言》第十章检测点10.5

(1)下面的程序执行后,AX中的数值为多少?(注意:用CALL指令的原理来分析,不要再DEBUG中单步跟踪来验证你的结论。对于此程序,在DEBUG中单步跟踪的结果,不能代表CPU的实际执行结果)
ASSUME CS:CODE
STACK  SEGMENT
       DW 8 DUP (0)
STACK  ENDS
CODE   SEGMENT
START: MOV AX,STACK
       MOV SS,AX         ;STACK段放入SS
       MOV SP,16
       MOV DS,AX         ;STACK段放入DS
       MOV AX,0
       CALL WORD PTR DS:[0EH]    ;IP入栈,SP-2=0EH,CALL然后DS:OEH中还是当前IP,故执行下条指令
       INC AX
       INC AX
       INC AX            ;AX=3
CODE   ENDS
END    START


(2)下面的程序执行后,AX和BX中的数值为多少?
ASSUME CS:CODE
DATA   SEGMENT
       DW 8 DUP (0)
DATA   ENDS
CODE   SEGMENT
START: MOV AX,DATA
       MOV SS,AX                      ;将DATA段放入SS
       MOV SP,16
       MOV WORD PTR SS:[0],OFFSET S   ;将S的偏移地址放入SS:[0]
       MOV SS:[2],CS                  ;将CS的段地址放入SS:[2]
       CALL DWORD PTR SS:[0]          ;转移到S处执行
       NOP
S:     MOV AX,OFFSET S                ;将S的偏移地址放入AX
       SUB AX,SS:[0CH]                ;AX=AX-SS:[0CH],得用DEBUG了
       MOV BX,CS                      ;把CS的段地址放入BX
       SUB BX,SS:[0EH]                ;BX=BX-SS:[0EH]
CODE   ENDS
END    START

用DEBUG得出最后AX=0001H,BX=0000H
评论次数(4)  |  浏览次数(1282)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码