【发布时间】:2019-05-15 00:45:36
【问题描述】:
我有一个简单的操作系统(实模式),用 NASM(仅引导加载程序)和大多数 C 语言编写。
我想打印这个字符:ñ,我使用这个函数,它使用 int 10h 将一个字符打印到屏幕上:
void putch(char chr)
{
__asm__ __volatile__ ("int $0x10"
:
: "a" ((0x0e<<8) | chr),
"b" (0x0000));
}
void println(char *str)
{
while (*str)
putch(*str++);
}
现在,我尝试打印ñ:
println("ñ\r\n");
但是当我编译和执行时(在 qemu 和 VB 框中),字符“ñ”被忽略了。 我以 CP-437 编码保存了源代码,但问题仍然存在。 这也会影响所有扩展的 ASCII 字符。
【问题讨论】:
-
@usr2564301 我已经编辑过 - 很明显这里是 int 10h,0Eh。
标签: c x86 nasm bootloader bios