我正在尝试在给定此代码的外部文件中实现打印功能:
[ org 0x7c00 ]
mov bx , HELLO_MSG
call print_string
mov bx , GOODBYE_MSG
call print_string
jmp $
%include "print_string.asm"
HELLO_MSG:
db "Hello , World !" , 0 ;
GOODBYE_MSG:
db "Goodbye !", 0
times 510 -( $ - $$ ) db 0
dw 0xaa55
我写的函数看起来像这样:
print_string :
pusha
mov ax, bx
mov ah , 0x0e
int 0x10
popa
ret
但它不起作用。我想这是因为我使用错误的寄存器...但我有点困惑,因为在本教程的前面的例子中,要打印的字符首先移动到al
,而在打印功能中只有这是使用:
mov ah , 0x0e
int 0x10
ret
但是从那里开始使用bx
,我不能只打印al
中的内容,对吧?
一些帮助将受到高度赞赏!!