我正在创建一个引导程序,并希望通过跳转到地址0x7C00来创建一个不受关注的无限循环。
当引导加载程序加载到0000:7C00时,我希望当我调用JMP 0x7C00
时,代码将转到程序的开头。除了它只调用一次代码而已。
这是我的代码:
1 BITS 16
2 ORG 0x7C00
3
4 MOV AX,0
5 MOV DS,AX
6 MOV SI,0x7C00
7
8 LEA BX,[msg]
9
10 printMsg:
11 MOV AL,[BX]
12 INC BX
13 CMP AL,0
14 JZ return
15 CALL printc
16 JMP printMsg
17 JMP 0x7C00
18
19 printc:
20 MOV AH,0Eh
21 int 10h
22 RET
23
24 return:
25 RET
26
27
28 msg: db "Hello",0
29
30 times 510-($-$$) db 0x90
31 dw 0xAA55
我还尝试过在第3行上创建一个start
标签,并在第17行上创建CALL start
或JMP start
,但这似乎都不起作用。