这是一个8086汇编程序,用于将8位十进制数转换为十六进制数 在第14行,为什么我会得到下一个错误?
不正确的操作数类型
.model small
.data
d1 DB 81d
d1 DB 16d
res DB ?
.code
mov ax,@data
mov ds,ax
xor ax,ax
xor bx,bx
mov al,d1
mov bl,d2
div bl
ror ah,4 ;Error occurs here
add ah,al
mov ax,res
int 3h
align 16
End
答案 0 :(得分:7)
ROR
(以及ROL
/ SHL
/ SHR
/ etc)仅可从80186处理器开始提供。它在8086/88上不可用。另一种方法是在将ROR ah, 1
设置为4之后执行4 ROR ah, cl
的序列,或使用 CL
。
请参阅https://en.wikipedia.org/wiki/X86_instruction_listings#Added_with_80186.2F80188