我正在编写这个引导加载程序,它只是在屏幕上打印出一些东西。这就是我迄今为止在组装中所拥有的:
.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
似乎没有打印任何内容。任何想法我都会很感激。