鱼C论坛

 找回密码
 立即注册
查看: 2116|回复: 3

如何来确定以下俩个数的值,好困扰,,,一道课后习题

[复制链接]
发表于 2018-6-18 11:35:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求各位大佬看一下,急!

汇编语言课后习题

汇编语言课后习题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-18 11:45:44 | 显示全部楼层
看不到完整的题目
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-18 21:52:09 | 显示全部楼层
我的理解如下:
-G=3 13是执行0913:0003~0013的命令
0913:0003 mov si,0                 ;si=0000H
0913:0006 mov al,[si]    ;ds:[0](0913:0000)=5H=0000 0101B  此时ax=0205H
0913:0008 add al,[si+1] ;ds:[0+1](0913:0001)=96H=1001 0110B,和5H相加=1001 1011B=9BH, 此时ax=029BH
0913:000B jns 13          ;jns在小甲鱼老师和王爽的教材里没写,查资料是SF=0时跳转,上面指令的结果使得SF=1,所以继续向下执行
0913:000D neg al          ;查资料发现neg和求补码一样,取反+1, 1001 1011的补码是0110 0101B=65H,此时ax=0265H
0913:000F mov [si+2],al;把65H存储到ds:[0+2](0913:0002)=65H
0913:0012 int 3             ;查资料, 中断int 3就是暂停的意思
因此AX=0265H  BX=0000H  SI=0000H

-D DS:0 7是显示0913:0000~0007这8个内存单元中的数值的命令
0913:0000     05  96  65  BE  00  00  8A  04

我觉得题目中这段数值好像有问题:
-E DS:0
0913:0000    5  96    46  57    00  45     最后三个数值57,00和45应该是0913:0003~0005内存单元里的值,为何与下面第一条指令对应的机器码值不一样呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-21 11:02:27 | 显示全部楼层
他非她 发表于 2018-6-18 21:52
我的理解如下:
-G=3 13是执行0913:0003~0013的命令
0913:0003 mov si,0                 ;si=0000H

你思路上是对了,结果我没去验算但应该也没问题
-E DS:0
0913:0000    5 96    46 57    00 45
这个意思是,把原来的5改成96,46改成57,00改成45,所以没有影响到后面的03-05单元格

真要细究的话书上确实少印了个小数点,应该是这样的5.96  46.57  00.45
也可能是以前DEBUG的版本是没有那小数点的,我们现在用的才有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 04:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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