如何在汇编语言中使用LES?

问题描述 投票:0回答:1

我必须创建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
assembly dos x86-16
1个回答
0
投票

LES指令与dword存储器操作数一起使用。您的指令LES BX, VIDEO引用了word内存操作数,因为VIDEO后跟DW(定义字)指令。这就是为什么会出现错误“操作数类型不匹配”的原因。

您可以更改此:

VIDEO DW 72Eh
      DW 0B800h

进入

VIDEO DD 0B800h:072Eh
© www.soinside.com 2019 - 2024. All rights reserved.