鱼C论坛

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

第三章,关于寄存器的一个小问题

[复制链接]
发表于 2012-3-1 23:14:15 | 显示全部楼层 |阅读模式
1鱼币
mov ax,0为什么机器码是3个字节
而sub ax,ax 的机器码是2个字节

最佳答案

查看完整内容

debug 的时候 看看转换的机器码 B80000 MOV AX,0000 29C0 SUB AX,AX 你往后学会学到flag 标志寄存器 sub add 会影响到标志寄存器的cf 值 而mov push 这些不会影响 往后看吧!~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-1 23:14:16 | 显示全部楼层
本帖最后由 莫名其妙 于 2012-3-1 23:22 编辑

debug 的时候 看看转换的机器码
B80000        MOV     AX,0000
29C0          SUB     AX,AX


你往后学会学到flag 标志寄存器
sub add 会影响到标志寄存器的cf 值

而mov push 这些不会影响   


往后看吧!~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-1 23:16:16 | 显示全部楼层
两个表达的是一个意思,为什么会有这样的不同,而且,我想补充的是这样的不同会不会在编写时什么时候只能用哪一种,有没有规定,或者什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-1 23:33:39 | 显示全部楼层
这个问题你不用管他,硬件实现就是那样规定的。
和以后的编程也没有什么关系,像jmp这样的指令,跳每个指令多少字节都是由硬件管理的。
如果你要关心这样的问题,那你就用机器语言吧,以后用0 1 写代码。
要是还不解那我问你,同样是一个人,为什么有的人名字2个字,有的人3个字?和你叫这个人有影响吗。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-8 12:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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