我正在用汇编语言编写一个小 Lambda 演算程序。我用 VirtualBox 运行它,它运行良好,但是当我将代码复制到我的 USB 驱动器的引导扇区并从中引导我的计算机时,它不起作用。
我已将问题隔离在初始加载包含函数库的额外扇区中。这是有问题的代码片段:
PUSH 0x2000
POP ES ;segment 0x2000
MOV BX, 0x0000 ;offset
MOV CX, 0x0002 ;sector 2 and track 0
MOV DX, 0x0080 ;drive 80 and head 0
load:
MOV AX, 0x0201 ;read only one sector
INT 0x13 ;read sector
JC load ;repeat until no error
MOV BX, 0x0007
MOV AH, 0x0E
MOV AL, [ES:0x0000]
INT 0x10 ;print a '!' character to test if the process is successful (purely for debugging reasons)
所以有了 VirtualBox,我得到了一个不错的!显示加载过程成功,但在我的计算机上它给了我一个黑色空间(ASCII 0x00)。任何人对这里可能出现的问题有任何建议。