是否在8086程序集中省略代码段指令?(emu8086)



在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, '$'

最新更新