我试图用16位汇编语言编写自己的引导程序。我可以使用int 10h,AH = 0Eh
将文本打印到屏幕上。
如果我运行
MOV AL,65
MOV AH,0Eh
int 10h
HLT
我可以成功在屏幕上打印A
。
但是,如果我愿意
MOV AL,65
CALL printc
HLT
printc:
MOV AH,0Eh
int 10h
RET
我最终在屏幕上显示了AA
。
为什么会这样,我该如何解决?
这是我的完整代码:
BITS 16
ORG 0x7C00
MOV DS,AX
MOV SI,0x7C00
MOV AL,0Eh
int 10h
RET
times 510-($-$$) db 0x90
dw 0xAA55