标题: 关机的底层实现??
[打印本页]
作者: ayw
时间: 2007-1-13 23:51
标题: 关机的底层实现??
想知道关机的底层实现。。。。
另外:我仿照网上的一个帖子在win下编译freedos
怎么老出现一个错误?
F:\source\kernel>buildall.bat
Process UTILS ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Compilation was aborted!
The system cannot find the batch label specified - daswarwohlnix
作者: gezi322
时间: 2007-1-16 22:01
Mov dx,64h
Mov ax,0feh
OUT dx,ax
作者: ayw
时间: 2007-1-20 02:16
怎么调试的
保存为com格式的然后运行么?
我怎么没调试成功?
作者: darkradx
时间: 2007-1-21 09:33
那是KBC重起的代码
作者: defrag
时间: 2007-2-12 03:35
他好象也弄错了,是
mov al,feh
out 64h,al
不过关机是
Mov AX, 5301h
Xor BX, BX
Int 15h
Mov AX, 530Eh
Xor BX, BX
Mov CX, 102h
Int 15h
Mov AX, 5307h
Mov BX, 1
Mov CX, 3
Int 15h
作者: defrag
时间: 2007-2-12 04:01
code segment
assume cs:code,ds:code
org 100h
start:
Mov AX,5301h
Xor BX,BX
Int 15h
Mov AX,530Eh
Xor BX,BX
Mov CX,102h
Int 15h
Mov AX,5307h
Mov BX,1
Mov CX,3
Int 15h
cli
mov ds,0
mov [6],cs
mov [4],offset halt
halt:
JMP halt
code ends
end start
;关不掉就死机
作者: dsysps
时间: 2007-3-15 21:51
void ReBootSys()
{
asm push 0xffff
asm push 0x0000
asm retf
}
作者: ons511
时间: 2007-3-16 03:22
关机也好重新启动也好,目前论坛中的方法并不是万能的。
重启通常的方法是两种:
1是利用缓冲区溢出的方法;2是使用INT19.
但对于特殊的BIOS或者主板并不起作用。
作者: henrya2
时间: 2007-3-19 07:27
还有一种简单重启方法
直接在DEBUG
-a
jmp FFFF:0
-g
如果用了SMARTDRV等一些磁盘缓冲软件,可能会导致文件丢失
作者: henrya2
时间: 2007-3-19 07:35
void ReBootSys()
{
asm push 0xffff
asm push 0x0000
asm retf
}
其实是,把return address替换成了FFFF:0
作者: henrya2
时间: 2007-3-19 07:47
但不是缓冲区溢出(有点像),原来的return address还在堆栈里(在新压入的return address后面)
作者: wzsunlight
时间: 2007-3-22 17:37
关机?重新启动?
以上是重新启动
作者: wzsunlight
时间: 2007-3-29 22:37
用
win /z
可以关机
但不知是否喜欢
作者: CrispH
时间: 2007-3-29 23:14
向 PMBASE + 05h 的地方丢 3C h
作者: darkradx
时间: 2007-5-8 03:01
楼上兄台是做BIOS Porting的?牛啊
作者: CrispH
时间: 2007-5-10 08:57
Quote: |
Originally posted by darkradx at 2007-5-8 03:01:
楼上兄台是做BIOS Porting的?牛啊 |
|
已经是过去时了!换工作了! 呵呵...
兄台也是做 BIOS 这个行业的? 有空交流交流?!
作者: defrag
时间: 2007-5-13 19:30
ASm mov AX, 5301h
asm Xor BX, BX
asm Int 15h
asm Mov AX, 530Eh
asm Xor BX, BX
asm Mov CX, 102h
asm Int 15h
asm Mov AX, 5307h
asm Mov BX, 1
asm Mov CX, 3
asm Int 15h