如何将ax寄存器的dw值分配给db变量?

时间:2018-06-07 19:43:05

标签: assembly x86

我将数组的值添加到AL然后我执行AAM命令以获取总和的小数。注册ax会显示AH=03 AL=04,即34。

我需要将值34分配给变量sum。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

...           ; AL=34
aam           ; -> AH=3 AL=4

AL中的值34开始,aam指令会为您提供AH=3AL=4

要恢复您开始使用的值,可以使用aad指令。这一个将AH乘以10,然后添加AL

  

AAD

     

AL< -AH * 10 + AL
  AH < - 0

此后,您可以将AL移动到字节大小的 sum 变量。

...           ; AL=34
aam           ; -> AH=3 AL=4
aad           ; -> AX=34
mov [sum], al
...
sum db 0

更短(因为连续执行aamaad没有多大意义):

...           ; AL=34
mov [sum], al
...
sum db 0
  

如何将ax寄存器的dw值分配给db变量?

如果您的目标变量是字节大小的,则永远不能为其分配字大小的数量!
AX分配给db变量的愿望只有在AX保存小于256的值时才有意义,在这种情况下,您只需指定AL(低一半) AX变量db。{/ p>