.386的疑惑????????????
.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” 有明确的说明。
[解决办法]
.MODEL SMALL
.386
;默认16位
.386
.MODEL SMALL
;默认32位
所以....
然后....
那个far...你懂的