一个反汇编LILO启动代码的汇编问题???????
最近反汇编了LILO的启动代码,但是有些看不懂。
看到一些资料介绍,LILO在启动的时候,每完成一步工作都要显示相应的字符:
1。LILO将自己移动到9A00:0000,然后显示“L”。
.....
...
...
BCB:01B3 B00D MOV AL,0D
0BCB:01B5 E86900 CALL 0221
0BCB:01B8 B00A MOV AL,0A
0BCB:01BA E86400 CALL 0221
0BCB:01BD B04D MOV AL,4C "L"
0BCB:01BF E85F00 CALL 0221
2。紧接着调入the secondary boot loader,
下面的这段代码是紧跟在上面的,应该被连续执行的。我看不懂了。
0BCB:01C2 BE3400 MOV SI,0034
0BCB:01C5 68 DB 68 ????????????
//////DB 68 是定义数据的,应该不会被执行的啊!!!!!
//我修改从01C2开始的代码,显示一个字符,重新写到MBR中,在启动的时候,
//该字符被显示了,说明应该这个地方要被执行,但是,DB是怎么回事呢????
0BCB:01C6 000B ADD [BP+DI],CL
0BCB:01C8 07 POP ES
0BCB:01C9 31DB XOR BX,BX
0BCB:01CB AD LODSW
0BCB:01CC 91 XCHG CX,AX
......
......
......