这是一个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
Run Code Online (Sandbox Code Playgroud)
ROR(和ROL/ SHL/ SHR/ etc)具有大于1的立即操作数,仅从80186处理器开始可用.它在8086/88上不可用.另一种方法是执行4的序列ROR ah, 1,或者ROR ah, cl在设置CL为4 之后使用.
请参阅https://en.wikipedia.org/wiki/X86_instruction_listings#Added_with_80186.2F80188