Sub ax,ax 将AX清零

来源:百度知道 编辑:UC知道 时间:2024/06/15 06:47:15
mov ax,1000H
mov ss,ax
mov sp,0010H

mov ax,001AH
mov bx,001BH

PUSH ax
PUSH bx

sub ax,ax ;书上解释为,将AX清零,也可以用mov ax,0,sub ax,ax的机器码为2个字节, mov ax,0 的机器码为 3个字节。
sub bx,bx
pop bx ;书上解释为,从栈中回复AX,BX 原来的数据,当前站顶的内容是
pop ax ;BX中原来的内容:001BH,AX中原来的内容001AH在栈顶的下面,所以要先POP BX,然后再POP AX。
------------------------------------------------------------------
1.请问机器码为2字节。是AX与AX存储器的吗? 3字节是哪里的3个字节?
2.已经将AX的数据清零了,下面用POP指令还能恢复寄存器原来的数据吗? 谢谢各位,说的明白点。感激不尽。
我也觉得不能回复。但是结果是能恢复。。。

那,是这样,
PUSH ax
PUSH bx
这两个指令已经压栈了,相当等于做了备份,以后就可以恢复了

你这是matlab ?

清零后应该不能恢复了,因为你的存储器中的数据消失了.

别的解决不了