鱼C论坛

 找回密码
 立即注册
查看: 5799|回复: 20

[汇编作业] 检测点3.1求助

[复制链接]
发表于 2013-12-28 18:06:38 | 显示全部楼层 |阅读模式
10鱼币
(1)  在DEBUG中,用 "D 0:0 lf" 查看内存,结果如下:  
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]  bx= 0026H  
add al,bl      ax= 000CH  
2) 内存中的情况如图3.6所示
各寄存器的初始值:cs=2000h,ip=0,ds=1000h,ax=0,bx=0; ??1.png
①   写出CPU执行的指令序列(用汇编指令写出)。

②   写出CPU执行每条指令后,CS、IP和相关寄存器的数值。

③   再次体会:数据和程序有区别吗?如何确定内存中的信息哪些是数据,哪些是程序?


最佳答案

查看完整内容

指令序列:mov ax,6622h ;ax=6622h 执行后cs:ip指向2000:3执行前cs:ip指向2000:0 jmp 0ff0:0100 ; CS=0ff0 ip= 0100 指向0ff0*16+100=0ff00+100=10000h cs:ip指向0ff0:0100 mov ax,2000h ; ax=2000h cs:ip指向 0ff0:0103 mov ds,ax ; ds=2000h cs:ip = 0ff0:105 mov ax,[0008] ;将ds:8即2000:8单元内容送入ax ax= c389h cs:ip=0ff0:8 mo ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-28 18:06:39 | 显示全部楼层

指令序列:mov ax,6622h ;ax=6622h   执行后cs:ip指向2000:3执行前cs:ip指向2000:0
               jmp 0ff0:0100 ; CS=0ff0 ip= 0100 指向0ff0*16+100=0ff00+100=10000h cs:ip指向0ff0:0100
               mov ax,2000h ; ax=2000h cs:ip指向 0ff0:0103  
               mov ds,ax ;  ds=2000h cs:ip = 0ff0:105
               mov ax,[0008]  ;将ds:8即2000:8单元内容送入ax ax= c389h cs:ip=0ff0:8
               mov ax,[0002] ; DS:2 即 2000:2入ax  ax=ea66h 因为ax是16位 传送一个字 cs:ip=0ff0:10b
  
CS:IP指向指令  DS:[idata] 指向数据  只要不是指针指向的 你可以认为什么也不是
比较乱 不知道能不能看懂 - -
         
              
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-28 20:28:03 | 显示全部楼层
楼主是在叫大家帮你写作业么 你遇到了什么问题? 还是不知道答案?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-12-28 21:49:24 | 显示全部楼层

我也有答案。就是搞不清楚第一题为什么DS的设置是1,而指向0000:0010;第二题执行完JMP 0FF0:0100后的指令为什么会到MOV BX,AX以及后面的指令。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-12-28 22:24:00 | 显示全部楼层
就差一个问题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-12-29 08:21:31 | 显示全部楼层
ryan0632 发表于 2013-12-28 22:35
这就是纯计算了,你好好看看寻址方式,物理地址=段地址*16+偏移地址,这个公式你压根就没搞懂

我以为只要有冒号就不用再乘十六了,现在我明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-12-29 09:12:10 | 显示全部楼层
ryan0632 发表于 2013-12-29 08:36
仔细看书,书上内容去掉代码示例写的并不多,不会的时候就算把这一章节内容背下来也没几分钟。

还有不 ...

好的,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-29 12:48:20 | 显示全部楼层
jmp 0ff0:100 cs指针的位置就是  1000:0嘛,后面的 mov ax,bx就没有执行  执行的是1000:0的代码嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-12-29 16:44:25 | 显示全部楼层
麦麦Acassing 发表于 2013-12-29 12:48
jmp 0ff0:100 cs指针的位置就是  1000:0嘛,后面的 mov ax,bx就没有执行  执行的是1000:0的代码嘛

懂了:sweat:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-12-30 09:35:41 From FishC Mobile | 显示全部楼层
sokou001 发表于 2013-12-28 18:06
指令序列:mov ax,6622h ;ax=6622h   执行后cs:ip指向2000:3执行前cs:ip指向2000:0
               jmp  ...

写得好详细 很好 但好像倒数第七行的cs:ip应该是0ff0,108
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-1-5 09:16:27 | 显示全部楼层
我疯狂我成功 发表于 2014-1-4 23:02
您好,我是新鱼友阳阳,诚邀高手您进入QQ群339351993(仁阳编程交流):给予帮助。我和我的小伙伴都是刚涉及 ...

我又不是高手
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-5 11:29:43 | 显示全部楼层

呵呵,大家互相帮助而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-5 11:30:14 | 显示全部楼层

诚邀加入 嘻嘻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-7 13:45:19 | 显示全部楼层
sokou001 发表于 2013-12-28 18:06
指令序列:mov ax,6622h ;ax=6622h   执行后cs:ip指向2000:3执行前cs:ip指向2000:0
               jmp  ...

是不是DS只读取该内存单位的数据,并不改变物理地址CS:IP?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-22 11:14:32 | 显示全部楼层
C:\Documents and Settings\Administrator\桌面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-1-22 11:16:14 | 显示全部楼层
图片 javascript:;javascript:;

debug运行结果

debug运行结果

debug运行结果

debug运行结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-2 16:22:51 | 显示全部楼层
天将 发表于 2013-12-28 21:49
我也有答案。就是搞不清楚第一题为什么DS的设置是1,而指向0000:0010;第二题执行完JMP 0FF0:0100后的指 ...

就是啊,请问为什么指向是0000:0010呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-2 16:26:13 | 显示全部楼层
天将 发表于 2013-12-28 21:49
我也有答案。就是搞不清楚第一题为什么DS的设置是1,而指向0000:0010;第二题执行完JMP 0FF0:0100后的指 ...

我懂了,不用了^_^
00010   ds:
+ 0000   [0000]
---------
00010
所以地址就是0000:0010
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-4 11:38:45 | 显示全部楼层
0ff0H是那个值?我纠结与装个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-4 11:58:21 | 显示全部楼层
麦麦Acassing 发表于 2013-12-28 20:28
楼主是在叫大家帮你写作业么 你遇到了什么问题? 还是不知道答案?

请问一下,个jmp 0ff0:0100是怎么算出它跳转的地址的,我用那个段地址x16+偏移地址算出来的不是10000H,可以帮忙解答一下么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 12:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表