基本上,我使用 NASM 创建简单的 .COM 文件来使用。对于其中一个文件(ttcb.asm),它从清除屏幕开始。这是通过调用另一个文件中的例程来完成的,所以我使用了%include 'video.asm'
. 这包括预期的文件。当我包含此文件时,即使我不调用单独的例程%include
,原始文件(包含的文件)中的语句之后也不会执行任何其他操作。video.asm
我还看到 video.asm 中的代码会自动执行。但是当我删除该%include
语句时,一切运行正常。我什至尝试删除video.asm 中的所有内容,但它仍然没有工作。然后我尝试将 video.asm 制作为一个空白文件,并且它起作用了,但这毫无意义。然后我尝试移动 include 语句,但也失败了。有什么解决方案,还是我必须将子程序直接插入到原始文件中?
ttcb.asm:
[BITS 16]
section .text
%include 'video.asm'
call screen_clear
jmp $ ;should've frozen the .COM, but it didn't, meaning it failed to execute.
section .data
welcomeMsg db 'Welcome to the TitaniumCube ©.',13,10,0,'$'
section .bss
视频.asm:
;===================================
;-----------------------------------
;Clears the screen to black
;No input or output
;-----------------------------------
screen_clear:
mov ah,0Fh
int 10h
push ax
mov ah,00
mov al,00
int 10h
pop ax
mov ah,00
int 10h
ret
;-----------------------------------
;===================================