是否可以在没有标准库的情况下在 C++ 程序集中编写多个字符?

Is it possible to write multiple characters in C++ Assembly with no stdlib?

我正在开发一个操作系统,跟随this tutorial, and I'm on part 7 (chapter 7),他展示了如何将一个字符打印到屏幕上,但我想打印多个字符,但它只是覆盖了之前的字符。这是我的代码

extern "C" void main() {
    // printf("Hello, World!");
    *(char *)0xb8000 = 'H';
    *(char *)0xb8000 = 'e';
    *(char *)0xb8000 = 'l';
    *(char *)0xb8000 = 'l';
    *(char *)0xb8000 = 'o';
    *(char *)0xb8000 = ',';
    *(char *)0xb8000 = ' ';
    *(char *)0xb8000 = 'W';
    *(char *)0xb8000 = 'o';
    *(char *)0xb8000 = 'r';
    *(char *)0xb8000 = 'l';
    *(char *)0xb8000 = 'd';
    *(char *)0xb8000 = '!';
    return;
}

@user2864740 发给我 a link 帮助我修复了它,事实证明,写入 0xB8000 的每个第二个字符都是一种颜色。
所以如果你想打印 Hello!,我很确定你会做

*(char*)0xB8000 = "H";
*(char*)0xB8001 = 15;
*(char*)0xB8002 = "e";
*(char*)0xB8003 = 15;
*(char*)0xB8004 = "l";
*(char*)0xB8005 = 15;
*(char*)0xB8006 = "l";
*(char*)0xB8007 = 15;
*(char*)0xB8008 = "o";
*(char*)0xB8008 = 15;
*(char*)0xB8009 = "!";
*(char*)0xB800a = 15;

(未测试)

Is it possible to write multiple characters in C++ Assembly with no stdlib?

除了使用标准库之外,没有在 C++ 中编写一个或多个字符的标准方法。

系统(操作系统/CPU 体系结构)可能有方法,但这取决于您使用的 OS / CPU。请参阅他们的文档。

没有一种汇编语言;每个 CPU 体系结构都有自己的语言,编译器也有自己的语法。