nasm:编写一个简单的打印功能

时间:2015-10-03 20:02:19

标签: assembly nasm bootloader bare-metal

我正在尝试在给定此代码的外部文件中实现打印功能:

[ 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中的内容,对吧?

一些帮助将受到高度赞赏!!

0 个答案:

没有答案