汇编语言那里错了
.386 ; 指令集.model flat,stdcall ; 工作模式
option casemap:none ; 格式
; 数据段
.data
a db 'Hello, World !',0
; 代码段
.code
start:
mov ax,offset a
mov ds,ax
mov ax,0b800h
mov es,ax
mov cx,14
s:
mov al,
mov es:,al
inc si
add di,2
loop s
end start ; 指定程序的入口
0.asm(20) : error A2155: cannot use 16-bit register with a 32-bit address
0.asm(21) : error A2155: cannot use 16-bit register with a 32-bit address
0.asm(14) : error A2022: instruction operands must be the same size
怎么解决
本帖最后由 s0512 于 2013-1-20 13:00 编辑
你用的是Flat 模式(32位地址),而报错那几行代码你使用的是SI、DI,把
它们改成ESI EDE,就可以解决了。
另~Falt模式使用的是32位地址空间,ES,DS这些16位段寄存器在保护模式下用法是不同的。 {:1_1:}
页:
[1]