在寄存器中存储最高有效/最低有效半字节

时间:2018-09-16 18:37:40

标签: assembly

我对汇编编程非常陌生,并且在分配方面遇到一些问题。我正在尝试在AL中存储一个十六进制值(94h),在DH中存储最高有效半字节(MSN),而在DL中存储最低有效半字节(LSN)。我知道我可以使用左移和右移(按4)来隔离MSN和LSN,但是我不知道如何将结果存储在DL和DH中。

例如: 如果AL包含数字94h 1)我想在DH中存储39h(字符“ 9”的ASCII码) 2)我想在DL中存储34h(字符“ 4”的ASCII码) 3)我需要显示字符“ 9”,“ 4”,“ h”,“换行符”和“回车”。

MOV AL, 94h ; AL <-- 94h / 1001 0100
MOV CL, 4
SHR AL, 4 ; AL = 0000 1001 = 9 
; How do i store this into DH

在这一点上,我很困惑。

1 个答案:

答案 0 :(得分:2)

众多解决方案中的一种:

mov al, 94h
mov dh, al
shr dx, 4
shr dl, 4