【发布时间】:2021-03-29 09:32:12
【问题描述】:
我正在制作自己的引导加载程序,它会切换到保护模式(32 位),然后打印 CR0 寄存器(用于打开保护模式的寄存器)的内容。 我需要在程序集上编写程序。
mov esi,hello
mov ebx,0xb8000
.loop:
lodsb
or al,al
jz halt
or eax,0x0100
mov word [ebx], ax
add ebx,2
jmp .loop
halt:
cli
hlt
hello: db "Hello world!",0
【问题讨论】:
-
您需要以十六进制或二进制打印
CR0的内容。用十进制看它是没有意义的。 -
您发布的代码与您的问题无关?除了我猜他们都打印了一些东西......
-
您现在似乎在问一个不同的问题。当它在保护模式下显示 CR0 寄存器时,你现在问如何在 16 位实模式下打印 EAX 寄存器?如果是这样,您应该提出一个新问题,因为答案不再与最初提出的问题相符。
标签: assembly x86 qemu bootloader osdev