使用8086组件:
在使用以下命令后,我被分配了一个作业,询问我寄存器的具体内容。我会;评论我认为是正确的,但我可能100%错误。
MOV AH,0
AX = 0000 0000 0000 0000 AH = 0000 0000 AL = 0000 0000
or are they equal to AX = 0000H AH = 00H AL = 00H ?
MOV AL,9
AX = 0000 0000 0000 1001 AH = 0000 0000 AL = 0000 1001
or AX = 0009H AH = 00H AL = 09H ?
MOV AL,7
AX = 0000 0000 0000 0111 AH = 0000 0000 AL = 0000 0111
or AX = 0007H AH = 00H AL = 07H ?
AAA
AX = 0000 0000 0000 0111 AH = 0000 0000 AL = 0000 0111
or AX = 0007H AH = 00H AL = 07H ?
我错误地认为寄存器总是只包含二进制信息吗?有人告诉我它们是8位的(除了少数几个,如果您将AL和AH结合使用,您将获得16位的AX),这使我相信它们仅需携带二进制。
此外,我假设在AAA命令之后,AX,AH和AL的内容不会更改,因为寄存器是二进制的,还是将其更改为其ASCII码(十六进制),在这种情况下会也是7?
对于其他问题:
我也有一个关于我可以代替MOV使用的命令的问题。 例如,我想使用代替MOV AH,0的东西。 我已经尝试过LEA AH,0,但是我必须偏移内存地址,而且我不确定如何进行处理。
谢谢您的帮助!
我已经研究了AAA命令,但是我只找到有关在ADD命令之后使用AAA之后发生的情况的信息,而不是在没有ADD命令的情况下。