.386
.model small
.stack 64
.data
yes db 'yes', ‘$’
.code
main proc far
mov ax,@data
mov ds,ax
mov ah,09h ; 显示字符串
lea dx,yes
int 21h
mov ax,4c00h
int 21h
main endp
end main
上面的程序是显示一个字符串,但是用masm6.15编译连接后,执行出错。。。
但是! 如果把.386放在.model之后,执行 正常。。。
为何???????????????????
.386?汇编语言?汇编
------解决方案--------------------
为什么,这是 Masm 对段是 16 位还是 32 位的约定,就是这么规定的,除非定义段是明确说明。Masm6 等自带的帮助里 model 语句说明的 See Also 部分中“.Model with .386 and .486” 有明确的说明。