程序名: RESET.ASM/BOOT.ASM 程序類別: 完整的匯編語言程序
功能: 用程序完成RESET啟動(dòng)和熱啟動(dòng)
使用說明: 匯編連接以后轉(zhuǎn)換為com文件運(yùn)行
程序說明:
在日常用機(jī)過程中,如果出現(xiàn)了異常情況常常需要重新啟動(dòng)系統(tǒng) .對(duì)于IBM PC 以及其兼容機(jī),除了開機(jī)冷啟動(dòng)外,還有熱啟動(dòng)和R ESET開關(guān)復(fù)位啟動(dòng),他們的共同特點(diǎn)是轉(zhuǎn)入BIOS的入口點(diǎn)(即ROM 的起始單元FFFF:0處),執(zhí)行該處的跳轉(zhuǎn)指令,轉(zhuǎn)向啟動(dòng)程序,該啟 動(dòng)程序在執(zhí)行過程中需檢測(cè)復(fù)位標(biāo)志字(在地址0040:0072處,占2 個(gè)字節(jié))的值,若為1234則啟動(dòng)是不檢測(cè)內(nèi)存;若非1234則啟動(dòng)先檢 測(cè)內(nèi)存,再啟動(dòng)系統(tǒng).熱啟動(dòng)和RESET啟動(dòng)的不同之處在于熱啟動(dòng)時(shí) 不檢測(cè)內(nèi)存,而RESET啟動(dòng)是需要檢測(cè)內(nèi)存.
下面的倆個(gè)程序分別實(shí)現(xiàn)RESET啟動(dòng)和熱啟動(dòng).經(jīng)過匯編,連接再轉(zhuǎn) 換成文件后才能運(yùn)行.
RESET.ASM (RESET開關(guān)復(fù)位啟動(dòng)程序)
CODE1 SEGMENT AT 0FFFFH
ASSUME CS:CODE1
ADDR LABEL FAR
CODE1 ENDS
CODE SEGMENT
ORG 100H
ASSUME CS:CODE,DS:CODE,ES:CODE
START:
JMP FAR PTR ADDR
CODE ENDS
END START
BOOT.ASM (熱啟動(dòng)程序)
CODE1 SEGMENT AT 0FFFFH
ASSUME CS:CODE1
ADDR LABEL FAR
CODE1 ENDS
CODE SEGMENT
ORG 100H
ASSUME CS:CODE,DS:CODE,ES:CODE
START:
MOV AX,0040H
MOV DS,AX
MOV AX,1234H
MOV SI,0072H
MOV [SI],AX
JMP FAR PTR ADDR
CODE ENDS
END START