我已经用汇编语言(NASM语法)编写了一个简单的引导加载程序,但是当我在QEMU中运行它时,换行符显示如下:

这是我的代码:
有没有办法阻止0Ah向前推进这些线?
.loop_top:
mov si, text_string ; Put string position into SI
call print_string ; Call our string-printing routine
loop .loop_top
jmp $ ; Jump here - infinite loop!
text_string db "This is my cool new OS!", 0Ah, 0发布于 2012-07-04 06:36:09
很明显:-)您的"print_string“子例程认真对待0x0a --它被称为"LF",它就是这样做的,并前进到下一行。
我猜使用0x0a 0x0d就可以了。
发布于 2012-07-04 07:00:30
我相信发送\r会使光标回到屏幕的左侧。因此,您应该使用\r\n或类似的东西来创建新行。
如果没有更多细节,我不确定。我不确定您的print_string过程是如何实现的。如果通过基本输入输出系统调用实现,例如使用int 0x10,AH=0x0E遍历字符串,则上述解决方案将有效,或者您可以使用int 0x10,AH=0x03手动调整光标位置。
https://stackoverflow.com/questions/11320135
复制相似问题