关于汇编5.4节的问题
前面书的3.3节说mov ax,【0】是默认存入16位数据也就是两个字节的数据,会把【1】这个地址的数据也存进去,但是到了5.4节小甲鱼又说只会存【0】这个偏移地址的字节数据,ax的高位是0,这是怎么回事儿,求解惑,谢谢 就是这个问题 是不是讲debug和masm对指令的处理方式?mov ax, 这句指令,在debug中是把ds:开始的16位放入ax;但是在masm处理的指令只是把0这个数放入ax,不管前面寄存器是16位还是8位,0还是0,所以高位就是0。在masm里,要想把地址的数据放进去需要mov bx, 0mov ax, 这样 丶忘却的年少o 发表于 2017-10-15 10:24
是不是讲debug和masm对指令的处理方式?
mov ax, 这句指令,在debug中是把ds:开始的16位放入ax;但 ...
那在masm中用bx是传16位还是传8位 q5s2c1 发表于 2017-10-15 10:28
那在masm中用bx是传16位还是传8位
还是和debug中的规则一样,看前面的寄存器,如果是al等八位,就是传一个地址中的数据,如果是ax等寄存器,就是穿这样两个地址中的寄存器,其中高位放高位,低位放低位 q5s2c1 发表于 2017-10-15 10:28
那在masm中用bx是传16位还是传8位
mov bx,0
这句,就是传2个字节=16个比特。 兰陵月 发表于 2017-10-15 10:35
mov bx,0
这句,就是传2个字节=16个比特。
我的意思是mov ax,【bx】传到ax中是一个字节还是两个字节 q5s2c1 发表于 2017-10-15 10:42
我的意思是mov ax,【bx】传到ax中是一个字节还是两个字节
两个字节
movax,【bx】
【bx】表示一个地址里的数据,数据的大小由ax这个2字节的寄存器来决定,
所以是两个字节。 因为前面的ax是16位的,会把地址开始处的两个字节传给ax,如果是al,就是一个字节
页:
[1]