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

我的博客

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

[2012-11-27 14:23] 检测点3.1

图片载入中
(1)在Debug中,用“d 0:0 1f”查看内存,结果如下.
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 66 88
下面的程序执行前,AX=0,BX=0,写出每条汇编指令执行完后相关寄存器中的值.
mov ax,1
mov ds,ax
mov ax,[0000]  ax=2662h
mov bx,[0001]  bx=e626h
mov ax,bx      ax=e626h
mov ax,[0000]  ax=2662h
mov bx,[0002]  bx=d6e6h
add ax,bx      ax=fd48h
add ax,[0004]  ax=2c14h
mov ax,0       ax=0
mov al,[0002]  ax=00e6h
mov bx,0       bx=0
mov bl,[000c]  bx0026H
add al,bl      ax=000cH
(2)内存中的情况如图3.6所示.
各寄存器的初始值:CS=2000H,IP=0,DS=1000H,AX=0,BX=0
  ①写出CPU执行的指令列(用汇编指令写出).
  ②写出CPU执行每条指令后,CS.IP和相关寄存器中的数值.
  ③再次体会:数据和程序有区别吗?如何确定内存中的信息哪些是数据,哪些是程序?
1. mov ax,6622H    2. ax=6622H cs=2000H IP=0003H
   jmp 0ff0:0100      AX=6622H CS=0FF0H IP=0100H 
   mov ax,2000H       AX=2000H CS=0FF0H IP=0103H
   mov ds,ax          AX=2000H CS=0FF0H IP=0105H DS=2000H
   mov ax,[0008]      AX=C389H CS=0FF0H IP=0108H DS=2000H
   mov ax,[0002]      AX=EA66H CS=0FF0H IP=010BH DS=2000H
3.数据和程序在内存中是没区别的.当CS.IP所指向的数据时,数据才会当程序被执行.(不知道是不是这样理解的,我个人是这么理解的)
评论次数(0)  |  浏览次数(289)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码