在程序集引导程序中打印特殊字符

时间:2017-08-18 09:36:14

标签: assembly special-characters bootloader

我想在程序集引导程序中打印▀,和■等字符。但是,当我这样做时:

Println:
    lodsb 
    or al, al
    jz complete
    mov ah, 0x0e        
    int 0x10
    jmp Println        
complete:
    call PrintNwL
PrintNwL: 
    mov al, 0
    stosb
    mov ah, 0x0E
    mov al, 0x0D
    int 0x10
    mov al, 0x0A 
    int 0x10
        ret
Msg    db    'Message with specia character ■', 0x0
mov si, Msg
call Println

特殊字符会被奇怪的其他字符替换。 感谢您的帮助

1 个答案:

答案 0 :(得分:1)

感谢Michael Petch和Ped7g评论我的问题。 我尝试了你的两个建议,两者都有效。

这是我使用的方法:

  • 以纯文本形式在汇编文件中写入特殊字符(不像Michael Petch建议的那样)
  • 使用 DOS编码保存文件(我使用sublime文本作为文本编辑器)
  • 使用NASM构建它,并在BIOS中显示字符