Assembly 8085汇编中4位加法的十进制调整
我尝试在加法后进行小数调整,创建一个4位小数。 我看到Assembly 8085汇编中4位加法的十进制调整,assembly,decimal,addition,digit,Assembly,Decimal,Addition,Digit,我尝试在加法后进行小数调整,创建一个4位小数。 我看到daa命令存在,但它只调整al,而我需要将整个ax从十六进制调整为十进制 例如: mov ax, 9876h mov bx, 5432h add ax, bx 将导致ax寄存器中出现ECA8。我想要的转换后的答案类似于ax寄存器中的5308,带有一个进位标志,指定完整答案中5之前的一个(15308) DAA只影响al而不是ax,是否有其他命令来执行此操作,或者有一种简单的方法来执行此操作?(我也在寻找减法的想法,因为DAS也只影响al)因为
daa
命令存在,但它只调整al
,而我需要将整个ax
从十六进制调整为十进制
例如:
mov ax, 9876h
mov bx, 5432h
add ax, bx
将导致ax
寄存器中出现ECA8。我想要的转换后的答案类似于ax
寄存器中的5308,带有一个进位标志,指定完整答案中5之前的一个(15308)
DAA
只影响al
而不是ax
,是否有其他命令来执行此操作,或者有一种简单的方法来执行此操作?(我也在寻找减法的想法,因为DAS
也只影响al
)因为最初的示例是针对8086的,我将给出该指令集的答案。同样的原则也适用于8085。没有一条等效于对两字节值进行操作的daa
指令。因此,您必须拆分您的操作:
mov al, 76h
add al, 32h
daa
mov bl, al
jnc skip
mov bh, 1
skip:
mov al, 98h
add al, 54h
daa
add bh, al
如果有第五个数字的结转,则将设置
CF
。我没有在8085汇编中编程,但您的代码在我看来是8086汇编,而不是8085汇编。那么你的目标是8086而不是8085?