我必须创建COM文件并在那里使用LES。我没有找到使用LES的任何示例,只有这个示例。并且字符串LES BX, VIDEO
中存在错误“操作数类型不匹配”我该怎么办?我以为我们可以为LES使用寄存器bx。
.model tiny
.code
ORG 100h
start:
LES BX, VIDEO ; ES = B800h (memory VGA), BX = 72Eh
MOV AX, 0 ; reset registers
MOV ES, AX ; ES = 0
MOV BX, AX ; BX = 0
MOV BX, VIDEO ; analog of using LES
MOV ES, VIDEO+2 ; with using two commands MOV
; ES = B800h (memory VGA), BX = 72Eh
RET ; exit
VIDEO DW 72Eh
DW 0B800h
END start
LES
指令与dword存储器操作数一起使用。您的指令LES BX, VIDEO
引用了word内存操作数,因为VIDEO后跟DW
(定义字)指令。这就是为什么会出现错误“操作数类型不匹配”的原因。
您可以更改此:
VIDEO DW 72Eh
DW 0B800h
进入
VIDEO DD 0B800h:072Eh