我正在编写这个引导加载程序,它只是在屏幕上打印出一些东西。这就是我迄今为止在组装中所拥有的:
.globl _start
.code16
_start:
movw $0x0003, %ax
int $0x10
movb $0x0e, %ah
movb $0x69, %al
int $0x10
movw $_header, %bx
movb %bl, %al
int $0x10
_header: .ascii "W\0"
.org 0x1FE
.byte 0x55
.byte 0xAA
所以现在它打印 ASCII 69(“i”),但我希望它也打印.ascii声明。现在我只设置了它,"W"所以我可以很容易地找到它Objdump。我似乎无法访问该值(57)。我可以leal $_header, %edx等等,但是我似乎无法访问%edx.
我尝试使用lodsb,但我似乎无法弄清楚。我设置%di为 0x00,并设置%si为 with 的地址,_header但leal %si, _header随后我的lodsb后面int 0x10似乎没有打印任何内容。任何想法我都会很感激。