【发布时间】:2013-05-04 08:25:46
【问题描述】:
我在将 8 位寄存器移动到 16 位寄存器时遇到问题。
我要做的是将一个数字反复除以 10 直到它小于 10,并且在每个除法时间内,我尝试将除法的剩余部分从 AH 寄存器中移出,加 48给它,然后我可以获得它的 Ascii 代码,然后我尝试在屏幕上显示我得到的数字。
Num1 DW 255
DIVISION :
CMP NUM1,10
Jl DIVEND
MOV AX,10
DIV NUM1
MOV NUM1,AL ;* Operand types do not match
ADD AH,48
MOV DL,AH;
MOV AH,02H
INT 21H
JMP DIVISION
但是,当我尝试组装它时,它会在 * 指示的行上显示Operand types do not match。
我正在使用 turbo assembler V4.1 ...
【问题讨论】:
-
不太记得 Turbo Assembler 的内容,但您尝试过
MOV BYTE NUM1,AL吗? -
我不明白你在做什么 MOV NUM1,AL 正在将 AL 的内容移动到 NUM1 中?这不可能发生吧?
-
@PreetSangha 是的,我只是看语法就完全错过了 :)
-
解决了你的问题吗?
-
您将 10 除以 255。我假设您想将 255 除以 10。
标签: assembly x86-16 tasm 8-bit