MASM611中ROR指令问题
下面这段汇编代码在MASM中会出现“ error A2070: invalid instruction operands”的错误。如果删除ror dx,4这句代码后则会正常编译连接,ror指令有啥问题?怎么破。。。。
assume cs:codesg
codesg segment
start: mov ax,0000h
mov dx,0001h
mov cx,ax
and ax,000Fh
xor cx,ax
and dx,000Fh
or dx,cx
ror dx,4
mov ax,4c00h
int 21h
codesg ends
end
[解决办法]
ror dx, 4 这样的指令需要 386 甚至更高级 cpu 才能支持,缺省的汇编程序是以 8086 指令集来进行的,这个级别的 cpu 只支持 ror dx, 1 或 ror dx, cl 这样的指令。所以,如果要使用 ror dx, 4 这样的指令,就必须在程序的开始处加上
.model small ; 或其它的和自己程序匹配的内存模式
.386 ; 或其它更高级的 cpu 指令集指定