chentantan 发表于 2015-1-15 00:06:21

程序运行中并未用到bx寄存器,为什么最后代码倒数第四行设置bx=0 ??

请教一个问题:
assume cs:code

stack segment

db 16 dup (0)

stack ends

code segment

movax,4c00h

int21h

start: movax,stack

          movss,ax

          movsp,16

          movax,0

          push ax

          mov bx,0

          ret

code ends

end start

倒数第四行movbx,0

为什么 bx清为0   ?

上面的代码中并未涉及到bx,到最后为什么还设置bx=0    ?

汇编语言第十章ret的指令中的例题。

chentantan 发表于 2015-1-15 00:15:36

不涉及就没必要设置bx=0
可是教材上不会做画蛇添足之事,教材的案例,每个代码都有自身的作用,不可能凭空跑出个movbx,0   定然有它的原由或功能所在!

希望破壳的蛋蛋 发表于 2015-1-31 22:10:13

chentantan 发表于 2015-1-15 00:15
不涉及就没必要设置bx=0
可是教材上不会做画蛇添足之事,教材的案例,每个代码都有自身的作用,不可能凭空 ...

这应该是程序员为了保护程序加的乱码或者其他   你试试删除看会不会影响或改变程序执行有很大的可能是乱码
页: [1]
查看完整版本: 程序运行中并未用到bx寄存器,为什么最后代码倒数第四行设置bx=0 ??