汇编重启

在JMP FAR F000:FFF0后会检查[0040:0072]该字的值——
0000:相当于按RESET键。
1234:跳过内存检测,也就是所谓的热启动,相当于按CTRL+ALT+DEL。
5678:挂起/正常模式转换(可能对DOS无效),不检测内存、不POST、内存内容不变。
9ABC:厂家检测用。
ABCD:不停地循环POST。下面是MS给出的例程——
 
; CODE:
; Assemble options needed: none
.MODEL small
.CODE
Start:
mov ax, @data                ; Load ds with data segment
mov ds, ax
mov ax, 40h                  ; These three lines cause a memory
mov es, ax                   ; test NOT to be performed. To
mov WORD PTR es:[72h], 1234h ; do a memory test, remove them.
jmp DWORD PTR b_vec          ; Jump to the reboot address
.DATA
b_vec DW 00000h              ; Offset of reboot vector
DW 0FFFFh                    ; Segment of reboot vector
.STACK
END Start

以上的重启仅在实模式有效。
===============================================
想在保护模式也有效的话,可以向键盘口写"系统复位"命令(当然要在RING0下)
 
; CODE:
cli
WaitRdy:          ;8042控制器忙
in al,64H         ;读8042状态字节
test al,00000010B
jnz WaitRdy
mov al,0FEH       ;8042 pin=0为系统复位
out 64H,al        ;重启
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值