鱼C论坛

 找回密码
 立即注册
查看: 2221|回复: 14

8086 王爽汇编书中也有BUG 各位学友有兴趣转观下

[复制链接]
发表于 2013-2-11 15:30:05 | 显示全部楼层 |阅读模式

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

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

x
QQ截图20130211152120.png QQ截图20130211152150.png

我说 我在Debug中按书上的代码得出的结果怎么会老是驴头不对马嘴 后来才发现 那个10001/100 前面的10001转成的十六进制 而后面的 100(十六进制64)没有转成十六进制  结果老是出错  后面的更甚 bl是八位寄存器 一个12位数据  怎么能放进8位寄存器中呢 各位学友们注意了

评分

参与人数 2鱼币 +8 收起 理由
张国祥 + 3 认真仔细
cct + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-11 16:22:18 | 显示全部楼层
你应该回复可见的...伸手党比较坑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-11 17:02:51 | 显示全部楼层
书上的程序可能是按照.asm程序文件的写法来写的。因为编译器会把100视为十进制的,100h为十六进制的。而在debug中用-a命令的话,默认写100就是十六进制的。综上,我觉得书上可能是用masm来编译文件的写法,然后用debug来进行跟踪查看的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-11 18:13:24 | 显示全部楼层
好像都不是错误呢。。。
那个确实是十进制啊
看题目是没错的(十进制和十六进制是等同的,怎么看是我们人类的事情,为什么输入要区分,因为我们输入的是ASCII码,而不是那个值)
从上下文看,应该是在文本编辑器里面写代码,不加后缀默认为10进制


第2张图,不知道为什么要圈03E8H呢。

第3张图BL可以存储数值大小是2^8=256,完全可以的哦



LZ有探究精神


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-11 19:29:02 | 显示全部楼层
哦 我知道了 谢谢啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-2-11 22:10:46 | 显示全部楼层

  三句代码 直接Debug不就得了 还要MASM一次 晕 受教了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-2-11 22:14:48 | 显示全部楼层
メ㊣逆ご帅☆ 发表于 2013-2-11 18:13
好像都不是错误呢。。。
那个确实是十进制啊
看题目是没错的(十进制和十六进制是等同的,怎么看是我们人 ...

汗 这Debug和啥不和masm一至晕 真晕  我把那个BL=100 里的100当成十六进制的数据了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2013-2-11 22:16:32 | 显示全部楼层
本帖最后由 青草 于 2013-2-11 22:18 编辑

唉 第一张图里 一个“mov ax,86A1H”还好看着是十六进制  可第二个"mov bx,100"又来个十进制 这十六进制和十进制在加上一个debug和masm有区别 就给弄晕了  新年容易给弄晕
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-11 22:40:42 | 显示全部楼层
青草 发表于 2013-2-11 22:16
唉 第一张图里 一个“mov ax,86A1H”还好看着是十六进制  可第二个"mov bx,100"又来个十进制 这十六进制和十 ...

DEBUG是全部16进制的
DEBUG不会有后缀h,如果有后缀H你可以直接认为是ASM源码
就不会乱了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-11 23:48:28 | 显示全部楼层
:L早就知道有错误,第二版的也有错误。我当初学的时候,害死我了:Q
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-12 09:54:02 | 显示全部楼层
青草 发表于 2013-2-11 22:10
三句代码 直接Debug不就得了 还要MASM一次 晕 受教了

一起学习加油!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-12 10:34:55 | 显示全部楼层
masm是当做十进制来处理的 。而debug中则是十六进制,这个我早在前面进行loop循环的时候就发现这个问题了。在debug中,如果你要用loop来计算1加到100的累加值。直接按十进制进去的话肯定错的。而用masm编译的代码,十进制的出来的结果完全没错~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-12 16:21:27 | 显示全部楼层
这个跟你用的汇编器有关,要注意到他每一个十六进制数后面都会加'H',是你用的汇编器一律将无提示数视为十六进制进行编译.不管怎么说,总算有人会想,这就行了.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-12 23:56:05 | 显示全部楼层
楼主很认真啊    我就和你没得比了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-2-13 10:09:53 | 显示全部楼层
hao xi xin
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-8 00:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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