在8086汇编程序中,用.MODEL
、.STACK
等特殊指令来声明段。
我注意到,如果省略emu8086中的.CODE
段指令,程序仍然运行良好。它有什么毛病吗?
.MODEL SMALL
.STACK 100H
.DATA
;data definitions go here
; .CODE --> The program works even after omitting this line
MAIN PROC
;instructions go here
MAIN ENDP
;other procedures go here
END MAIN
通常使用.MODEL SMALL
时,.CODE
和.DATA
部分可以分别占用64KB(不重叠(。如果您没有标记.CODE
部分,emu8086可能只是在.DATA
部分插入了代码。这不会造成(太大的(伤害,因为END MAIN
指令清楚地说明了程序必须从哪里开始执行。然而,它可以将代码和数据的总量限制在一个64KB以内。
它有什么问题吗?
emu8086有很多问题是众所周知的,所以不抱怨缺少.CODE
标签可能只是这些问题的另一个例子。
除了省略.CODE
之外,您还可以通过编写.COM程序来进一步简化程序开发。只要提到ORG 256
,然后写代码然后写数据(最高64KB,堆栈位于高端(。可能就那么简单。
ORG 256
mov dx, OFFSET msg
mov ah, 09h
int 21h
mov ax, 4C00h
int 21h
msg db 'This is a .COM file', 13, 10, '$'