Board logo

标题: 关机的底层实现?? [打印本页]

作者: 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