小编zer*_*o77的帖子

从引导加载程序运行时,STOSB指令不存储字节

在制作了一个小型引导程序来教我自己的汇编语言后,我注意到该stosb指令似乎不起作用.我将问题压缩到一个最小的例子:

BITS 16

start:
mov ax, 07C0h       
add ax, 288     
mov ss, ax
mov sp, 4096

mov ax, 07C0h       
mov ds, ax ;setting up stack

mov al, 'j'
mov di, buffer
stosb

mov si, buffer
jmp loops

loops:
mov ah, 0Eh
lodsb
cmp al, 0
je done
int 10h
jmp loops

done:
hlt

buffer times 64 db 0

times 510-($-$$) db 0   ; Pad remainder of boot sector with 0s
dw 0xAA55
Run Code Online (Sandbox Code Playgroud)

当运行此引导加载程序时,它应将字母存储j到缓冲区中,然后将该缓冲区打印到显示器.输出应该是:

Ĵ

运行时似乎没有打印任何东西.有什么问题,我该如何解决?

x86 assembly real-mode bootloader x86-16

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

标签 统计

assembly ×1

bootloader ×1

real-mode ×1

x86 ×1

x86-16 ×1