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

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
  •  莫道人生常似梦,丈夫何事可萦怀;- 青衫红粉意如何,相喻无言总有磨;- 垂首绯绯红叶落,回眸脉脉碧云遮;- 尤思契阔酒中醉,记否曾经海上波。
  • 『姓名』:baker
  • 『性别』:男『发送消息
  • 个人说明:
  • 详细信息『加为好友』
学习动态
最新留言
文章收藏
友情链接

[2010-09-28 16:40] 检测点3.1

(1)在debug中,用“d 0:01f”查看内存,结果如下。
0000:0000 70 80 F0 30 EF 60 30 E2-00 80 12 66 20 22 60
0000:0010 62 26 E6 D6 CC 2E 3C 3B-AB BA 00 00 26 06 88
下面的程序执行前,AX=0,BX=0,写出每条指令执行完后相关寄存器中的值。
MOV AX,1
MOV DS,AX
MOV AX,[0000]      AX=2662
MOV BX,[0001]      BX=E626
MOV AX,BX          AX=E626
MOV AX,[0000]      AX=2662
MOV BX,[0002]      BX=D6E6
ADD AX,BX          AX=FD48
ADD AX,[0004]      AX=2C14
MOV AX,0           AX=0
MOV AL,[0002]      AX=00E6
MOV BX,0           BX=0
MOV BL,[000C]      BX=0026
ADD AL,BL          AX=000C


(2)内存中的情况
   各寄存器的初始值:CS=2000,IP=0,DS=1000,AX=0,BX=0
<1>写出CPU执行的指令序列(用汇编指令写出).
<2>写出CPU执行每条指令后,CS、IP和相关寄存器中的数值。
<3>再次体会:数据和程序有区别吗?如何确定内存中的信息哪些是数据,哪些是程序?
答<1>:
mov ax,6622
jmp 0ff0:0100
mov ax,2000
mov ds,ax
mov ax,[0008]
mov ax,[0002]

答<2>:
汇编指令          CS     IP     DS        AX     BX
初始值          2000     0      1000     0       0
mov ax,6622     2000     3      1000     6622    0
jmp 0ff0:0100   0ff0     100    1000     6622    0
mov ax,2000     0ff0     103    1000     2000    0
mov ds,ax       0ff0     105    2000     2000    0
mov ax,[0008]   0ff0     108    2000     C389    0
mov ax,[0002]   0ff0     10B    2000     EA66    0

答<3>:
在计算机中数据和程序没有区别,都是以二进制形式存放的;
在任意刻,CPU将CS:IP指向的内容当作指令执行。
评论次数(2)  |  浏览次数(539)  |  类型(汇编作业) |  收藏此文  | 

[  qq93324030   发表于  2010-09-30 04:36  ]

老兄的答案很精美,赞一个 :P

[  baker   发表于  2010-09-30 14:39  ]

谢谢。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码