小编Saf*_*yal的帖子

如何在BIOS级汇编中打印换行符?

我正在尝试使用NASM Assembler自己编写一个bootloader.我正在尝试打印两行文本,等待按键,如果按下的键是'r'则重新启动,如果按下的键是'b'则继续启动.但是,这不是我的问题的主题(我将在稍后实现这些函数,因此nop目前代码中的指令).相反,我想问一下为什么我的换行符0xA以如此奇怪的方式打印?我已经在我的TODO中完成了所有三个项目,但我认为这很重要,因为加载器一定不会看起来很糟糕.

输出

这是我的代码:

BITS 16     ; tell nasm we're working in 16 bit real mode

start:          ; entry symbol for the os          

        mov ax, 0x07C0          ; 4 kilobyte stack space set up
        add ax, 288             ; (4096+512) / 16 bytes per paragraph
        mov ss, ax              
        mov sp, 4096

        mov ax, 0x07C0          ; set data segment to where we've loaded
        mov ds, ax

        mov si, text_string     ; put our string position into SI
        call write_string       ; call …
Run Code Online (Sandbox Code Playgroud)

x86 assembly interrupt bios osdev

2
推荐指数
1
解决办法
1439
查看次数

标签 统计

assembly ×1

bios ×1

interrupt ×1

osdev ×1

x86 ×1