全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3589
推到 Plurk!
推到 Facebook!

MASM32 寫關機 (ShutDown) & 重開機 (Reboot)

 
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-13 18:21:23 IP:61.225.xxx.xxx 未訂閱
關機 (Shut Down) ;===================================================== .386 .model flat, stdcall option casemap :none ; case sensitive ;===================================================== include \masm32\include\windows.inc include \masm32\include\user32.inc includelib \masm32\lib\user32.lib ;===================================================== .code start: invoke ExitWindowsEx, EWX_SHUTDOWN, 0 ; EWX_LOGOFF equ 0 ; EWX_SHUTDOWN equ 1 ; EWX_REBOOT equ 2 ; EWX_FORCE equ 4 ; EWX_POWEROFF equ 8 ret ;===================================================== end start ;===================================================== ------------------------------------------------------------- 重開機 (Reboot) ;===================================================== .386 .model flat, stdcall option casemap :none ; case sensitive ;===================================================== include \masm32\include\windows.inc include \masm32\include\user32.inc includelib \masm32\lib\user32.lib ;===================================================== .code start: invoke ExitWindowsEx, EWX_REBOOT, 0 ; EWX_LOGOFF equ 0 ; EWX_SHUTDOWN equ 1 ; EWX_REBOOT equ 2 ; EWX_FORCE equ 4 ; EWX_POWEROFF equ 8 ret ;===================================================== end start ;===================================================== 以上範例只試用於 95/98/Me, 並不適用 "權限分級" 很重的 NT/2000/XP ---------------- 局局棋盤步步新, 變化無常平常待。 人生相處平常心, 無憂無慮心事成。 ----------------
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-18 16:43:44 IP:61.221.xxx.xxx 未訂閱
建立一個起動程式: C:\>debug -a 0ABC:0100 int 19 0ABC:0102 -r cx CX 0000 :2 -n reboot.com -w Writting 00002 bytes -q Note: 請在DOS下使用 ************************************* 建立一個起動程式: C:\>debug -a 0ABC:0100 mov al,fe 0ABC:0102 out 64,al 0ABC:0104 -r cx CX 0000 :4 -n reset.com -w Writting 00004 bytes -q Note:請在DOS下使用
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-27 14:28:48 IP:211.23.xxx.xxx 未訂閱
^^ 這裡有個但書...........工作經驗加上要跟上潮流    對Keyboard 下0FEh Command有個時候會無效, 怎麼說呢? 如果你們家的BIOS support Legacy USB的話, 就會這樣. (也就是開到DOS下, 還可以使用USB Keyboard/Floppy/Mouse)    因為, USB的服務常式(存放於SMI) 會把Keyboard的command攔走, 因為要support USB Keyboard的關係    所以, 如果你家的PC, 對port 64h下0FEh不能重開機的話, 把BIOS選項的 Legacy USB support:作disable就可以囉    要讓系統作Warm boot的基本三個動作有 1. jmp f000:fff0 (模擬重開機時, CPU去讀EEPROM的第一個位址) 2. 對port cf9h丟data 6(PCI reset, 使CPU作reset) 3. 對port 64h丟data 0FEh(叫Keyboard conotrol去reset CPU)    不過現在不建議使用第三個方式來reset系統, 因為如果支援USB legacy的話 會失效, 有時會覺的怎麼會這樣, 會以為自己觀念or程式寫錯了, 其實是被攔 走了  給各位有一個基本的觀念
系統時間:2024-05-03 8:25:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!