第三章,关于寄存器的一个小问题
mov ax,0为什么机器码是3个字节而sub ax,ax 的机器码是2个字节
本帖最后由 莫名其妙 于 2012-3-1 23:22 编辑
debug 的时候 看看转换的机器码
B80000 MOV AX,0000
29C0 SUB AX,AX
你往后学会学到flag 标志寄存器
sub add 会影响到标志寄存器的cf 值
而mov push 这些不会影响
往后看吧!~
两个表达的是一个意思,为什么会有这样的不同,而且,我想补充的是这样的不同会不会在编写时什么时候只能用哪一种,有没有规定,或者什么 这个问题你不用管他,硬件实现就是那样规定的。
和以后的编程也没有什么关系,像jmp这样的指令,跳每个指令多少字节都是由硬件管理的。
如果你要关心这样的问题,那你就用机器语言吧,以后用0 1 写代码。
要是还不解那我问你,同样是一个人,为什么有的人名字2个字,有的人3个字?和你叫这个人有影响吗。
页:
[1]