assembly 是否忽略8086程序集中的代码段指令?(emu8086)

vvppvyoh  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(155)

在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
icomxhvb

icomxhvb1#

通常,对于.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, '$'

相关问题