需要在8086汇编语言中进行说明,将BCD编号装入寄存器后,寄存器包含什么?

时间:2019-01-29 20:12:02

标签: emu8086

使用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命令的情况下。

0 个答案:

没有答案