锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧美日韩中文视频,一区二区免费在线视频,国产欧美日韩精品专区 http://m.shnenglu.com/mydriverc/archive/2008/01/08/40739.html鏃呴?/dc:creator>鏃呴?/author>Tue, 08 Jan 2008 08:52:00 GMT http://m.shnenglu.com/mydriverc/archive/2008/01/08/40739.html http://m.shnenglu.com/mydriverc/comments/40739.html http://m.shnenglu.com/mydriverc/archive/2008/01/08/40739.html#Feedback 1 http://m.shnenglu.com/mydriverc/comments/commentRss/40739.html http://m.shnenglu.com/mydriverc/services/trackbacks/40739.html 鎸夌収浜庢笂鐨勪功榪樻湁緗戜笂鐨勬枃绔?br />1 浣跨敤VM寤虹珛涓涓櫄鎷熸満錛屼竴璺痮ther,32M鍐呭瓨鍗沖彲 2 鍦╡dit virtual mathine setting涓垹闄ゆ墍鏈夌殑璁懼錛堥櫎浜?jiǎn)鍐呭瓨锛?jí) 3 閫夋嫨add娣誨姞璁懼 floppy driver->create a blank floppy 4 浣跨敤nasm緙栬瘧涓嬮潰鐨勪唬鐮侊紙浜庢笂涔︿笂鐨勶級(jí) org 07c00h ; 鍛婅瘔緙栬瘧鍣ㄧ▼搴忓姞杞藉埌7c00澶?/p>
聽mov ax, cs
聽mov ds, ax
聽mov es, ax
聽call DispStr ; 璋冪敤鏄劇ず瀛楃涓蹭緥紼?/p>
聽jmp $ ; 鏃犻檺寰幆
DispStr:
聽mov ax, BootMessage
聽mov bp, ax ; es:bp = 涓插湴鍧
聽mov cx, 16 ; cx = 涓查暱搴?/p>
聽mov ax, 01301h ; ah = 13, al = 01h
聽mov bx, 000ch ; 欏靛彿涓?(bh = 0) 榛戝簳綰㈠瓧(bl = 0Ch,楂樹寒)
聽mov dl, 0
聽int 10h ; 10h 鍙蜂腑鏂?/p>
聽ret
BootMessage: db "Hello, OS world!"
times 510-($-$$) db 0 ; 濉厖鍓╀笅鐨勭┖闂達(dá)紝浣跨敓鎴愮殑浜岃繘鍒朵唬鐮佹伆濂?/p>
涓?/p>
; 512瀛楄妭
dw 0xaa55 ; 緇撴潫鏍囧織5 浣跨敤Floppy Writer灝嗙紪璇戣繃鐨勬枃浠跺啓鍏ュ墠闈㈠緩绔嬬殑floppy涓娿?br />6鍚姩铏氭嫙鏈恒?br />鍙互鐪嬪埌鏁堟灉浜?jiǎn)銆?br /> 涓嬩竴姝ヨ鐮旂┒寮曞紼嬪簭浜?/strong>
]]> csdn涓婄殑 鑷繁鍔ㄦ墜鍐欐搷浣滅郴緇?/title> http://m.shnenglu.com/mydriverc/archive/2008/01/07/40636.html鏃呴?/dc:creator>鏃呴?/author>Mon, 07 Jan 2008 09:39:00 GMT http://m.shnenglu.com/mydriverc/archive/2008/01/07/40636.html http://m.shnenglu.com/mydriverc/comments/40636.html http://m.shnenglu.com/mydriverc/archive/2008/01/07/40636.html#Feedback 0 http://m.shnenglu.com/mydriverc/comments/commentRss/40636.html http://m.shnenglu.com/mydriverc/services/trackbacks/40636.html http://book.csdn.net/bookfiles/88/index.html
]]> Linux鎿嶄綔緋葷粺涓嬬殑姹囩紪紼嬪簭璁捐綆浠?/title> http://m.shnenglu.com/mydriverc/archive/2008/01/07/40635.html鏃呴?/dc:creator>鏃呴?/author>Mon, 07 Jan 2008 09:38:00 GMT http://m.shnenglu.com/mydriverc/archive/2008/01/07/40635.html http://m.shnenglu.com/mydriverc/comments/40635.html http://m.shnenglu.com/mydriverc/archive/2008/01/07/40635.html#Feedback 0 http://m.shnenglu.com/mydriverc/comments/commentRss/40635.html http://m.shnenglu.com/mydriverc/services/trackbacks/40635.html
鎽樿錛?/b>鏈枃涓昏璁茶堪浜?jiǎn)Linux涓嬩嬌鐢ㄦ眹緙栫殑鍒╁紛錛屼互鍙?qiáng)甯哥敤姹嚲~栧伐鍏風(fēng)殑浣跨敤鍜岃娉曠壒鐐廣傞噸鐐硅榪頒簡(jiǎn)NASM銆?
寮曡█錛?/b>姹囩紪璇█鏄綆綰ц璦錛屼笌紜歡鍜屾搷浣滅郴緇熺揣瀵嗚仈緋匯備釜浜虹數(shù)鑴戜互鍓嶉兘鏄敤DOS錛岀幇鍦ㄥ彂灞曟垚浜?jiǎn)WINDOWS 98錛岃屽彟涓涓搷浣滅郴緇烲inux涔熸鍦ㄥ礇璧楓備笅闈㈡瘮杈冧竴涓嬭繖涓変釜鎿嶄綔緋葷粺錛?
DOS杈冪ǔ瀹氾紝閫熷害蹇棤娉曞厖鍒嗗彂鎸ヨ綆楁満鎬ц兘錛屾病鏈夊浘褰㈢晫闈㈣緝浣庛?
WINDOWS 98鎿嶄綔綆渚匡紝搴旂敤杞歡澶?紜歡鍏煎鎬уソ錛涗笉紼沖畾錛岀粡甯告鏈猴紝閫熷害鎱㈤珮銆?
Linux鎬ц兘浼樼錛岄潪甯哥ǔ瀹氾紝鐣岄潰緹庤錛屾搷浣滅畝渚匡紱緙轟箯杞歡鍘傚晢鏀寔錛屽簲鐢ㄨ蔣浠跺皯鍏嶈垂銆?
鐢變互涓婄殑姣旇緝鍙煡錛孡inux鎿嶄綔緋葷粺鏈韓鍏鋒湁杈冨ぇ浼樺娍錛屽畠鐨勬櫘鍙?qiáng)搴旇鍙槸鏃堕棿闂锛屾墍浠ュ浣曞湪Linux涓嬪紑鍙戣蔣浠舵槸鎴戜滑璁$畻鏈虹郴瀛︾敓蹇呴』瀛︿範(fàn)涓庣爺絀剁殑涓涓棰樸?
Linux 涓嬬殑涓昏緙栫▼璇█鏄疌錛屽悓鏃禠inux榪樻敮鎸佸叾浠栬澶氱紪紼嬭璦錛屾眹緙栬璦浣滀負(fù)鏈閲嶈鐨勭紪紼嬭璦涔嬩竴錛屽綋鐒朵篃鍖呮嫭鍦ㄥ唴銆傚畠鑳藉瀹屾垚璁稿鍏朵粬璇█鎵涓嶈兘瀹屾垚鐨勫姛鑳姐傝瀛︿範(fàn)Linux緙栫▼錛屽氨蹇呴』瑕佸涔?fàn)Linux涓嬬殑姹囩紪紼嬪簭璁捐銆備笅闈㈡垜灝辨潵浠嬬粛涓涓婰inux涓嬬殑姹囩紪紼嬪簭璁捐銆?
Linux姹囩紪綆浠?/b>
涓銆佹眹緙栬璦鐨勪紭緙虹偣
鐢變簬Linux鏄敤C鍐欑殑錛屾墍浠鑷劧鑰岀劧鐨勫氨鎴愪負(fù)浜?jiǎn)Linux鐨勬爣鍑嗙紪紼嬭璦銆傚ぇ閮ㄥ垎浜洪兘鎶婃眹緙栫粰蹇界暐浜?jiǎn)锛岀敋鑷冲湪鍥犵壒缃戜笂鎵捐祫鏂欓兘鏄潪甯哥殑鍥伴毦锛屽緢澶氶棶棰橀兘闇瑕侀潬鑷繁鏉ュ皾璇曘傛垜璁や負(fù)榪欐牱瀵瑰緟姹囩紪璇█鏄笉鍏鉤鐨勶紝涓嶈兘鍙湅鍒板畠鐨勭己鐐癸紝褰撶劧涔熶笉鑳藉彧鐪嬪埌瀹冪殑浼樼偣錛屼笅闈㈡妸瀹冪殑浼樼己鐐逛綔涓涓瘮杈冿細(xì)
浼樼偣錛氭眹緙栬璦鍙互琛ㄨ揪闈炲父搴曞眰鐨勪笢瑗?
鍙互鐩存帴瀛樺彇瀵勫瓨鍣ㄥ拰I/O錛?
緙栧啓鐨勪唬鐮佸彲浠ラ潪甯哥簿紜殑琚墽琛岋紱
鍙互緙栧啓鍑烘瘮涓鑸紪璇戠郴緇熼珮鏁堢殑浠g爜錛?
鍙互浣滀負(fù)涓嶅悓璇█鎴栦笉鍚屾爣鍑嗙殑鎺ュ彛銆?
緙虹偣錛氭眹緙栬璦鏄竴涓潪甯鎬綆綰х殑璇█
闈炲父鍐楅暱鍗曡皟錛屽湪DOS涓嬬紪紼嬫椂灝卞彲浠ヤ綋浼?xì)鍒板Q?
鏄撳嚭BUG錛屼笖璋冭瘯鍥伴毦錛?
浠g爜涓嶆槗緇存姢錛?
鍏煎鎬т笉濂斤紝涓庣‖浠跺叧緋婚潪甯哥揣瀵嗐?
鎬葷殑鏉ヨ錛屾眹緙栬璦瑕佺敤鍦ㄥ繀欏葷殑鍦版柟錛屽敖閲忓皯鐢ㄦ眹緙栫紪鍐欏ぇ鍨嬬▼搴忥紝澶氶噰鐢╥nline妯″紡銆?
浜屻佹眹緙栬璦宸ュ叿
DOS 涓嬪父鐢ㄧ殑宸ュ叿MASM鍜孴ASM鍒癓inux涓嬪氨鐢ㄤ笉璧鋒潵浜?jiǎn)锛孡inux鏈夎嚜宸辯殑姹囩紪宸ュ叿錛岃屼笖縐嶇被闈炲父鐨勫銆傚叾涓璆as鍙互綆楁槸鏍囧噯閰嶇疆錛屾瘡涓縐?Linux涓兘鍖呮嫭鏈塆as錛屼絾鏄疓AS閲囩敤鐨勪笉鏄垜浠氬父鍦―OS涓嬮噰鐢ㄧ殑姹囩紪璇硶錛屽畠閲囩敤鐨勬槸AT錛員鐨勮娉曟牸寮忥紝涓巌ntel璇硶鏍煎紡鏈夊緢澶х殑涓嶅悓銆?
濡傛灉瑕侀噰鐢ㄤ笌DOS鎺ヨ繎鐨勮娉曟牸寮忥紝灝卞繀欏葷敤鍙︿竴縐嶆眹緙栧伐鍏種ASM錛孨ASM鍩烘湰涓嶮ASM鐩稿悓錛屼絾涔熸湁涓嶅皯鍦版柟鏈夎緝澶у尯鍒紝鐗瑰埆娑夊強(qiáng)鍒版搷浣滅郴緇熷師鐞嗘椂錛屼笌DOS鍙互璇存槸鎴劧涓嶅悓銆?
Linux姹囩紪紼嬪簭璁捐
涓銆丠ello,world!
鍑犱箮鎵鏈夌殑璇█鍏ラ棬綃囬兘鏄互鈥淗ello,world!鈥濅負(fù)渚嬶紝閭d箞鎴戜篃浠ello,world!涓轟緥寮濮嬨?
NASM's standalone Hello-World.asm for Linux
section .text
extern puts
global main
main:
push dword msg ;stash the *** of msg on the stack.
call puts ;call the 'puts' routine (libc?)
add esp, byte 4 ;clean the stack?
ret ;exit.
msg:
db "Hello World!",0
緙栬瘧錛?
nasm 鈥揻 elf hello.asm
gcc 鈥搊 hello hello.o
璇存槑錛氳繖涓▼搴忓疄闄呬笂鏄皟鐢ㄤ簡(jiǎn)錛孡inux緋葷粺鐨刾uts鍑芥暟錛屽師鐞嗕笌璋冪敤DOS涓婥璇█鐨勫嚱鏁扮浉鍚岋紝鍏堢敤Extern澹版槑puts鏄閮ㄥ嚱鏁幫紝鍐嶆妸鍙傛暟錛堝嵆msg鐨勫湴鍧錛夊帇鍏ュ爢鏍堬紝鏈鍚嶤all鍑芥暟瀹炵幇杈撳嚭銆?
鎴戜滑鍐嶆潵鐪嬩竴涓▼搴忥細(xì)
section .text
global main
main:
mov eax,4 ;4鍙瘋皟鐢?
mov ebx,1 ;ebx閫?琛ㄧずstdout
mov ecx,msg ;瀛楃涓茬殑棣栧湴鍧閫佸叆ecx
mov edx,14 ;瀛楃涓茬殑闀垮害閫佸叆edx
int 80h ;杈撳嚭瀛椾覆
mov eax,1 ;1鍙瘋皟鐢?
int 80h ;緇撴潫
msg:
db "Hello World!",0ah,0dh
錛堢紪璇戝悓涓婁竴涓▼搴忥級(jí)
榪欎釜紼嬪簭涓嶥OS紼嬪簭鍗佸垎鐩鎬技錛屽畠鐢ㄧ殑鏄痩inux涓殑80h涓柇錛岀浉褰撲簬DOS涓嬬殑21h涓柇錛屽彧鏄洜涓篖inux鏄?2浣嶆搷浣滅郴緇燂紝鎵浠ラ噰鐢ㄤ簡(jiǎn) EAX銆丒BX絳夊瘎瀛樺櫒銆備絾鏄疞inux浣滀負(fù)涓涓鐢ㄦ埛鐨勬搷浣滅郴緇熶笌DOS鍙堟槸鏈夌潃闈炲父澶х殑鍖哄埆鐨勩傝鍐欏嚭鏈夌壒鑹茬殑紼嬪簭錛屼笉浜?jiǎn)瑙f搷浣溇p葷粺鍜岀‖浠舵槸涓嶈鐨勩備笅闈㈡垜浠嬬粛涓涓婰inux鎿嶄綔緋葷粺銆?
浜屻丩inux鎿嶄綔緋葷粺綆浠?/b>
鎿嶄綔緋葷粺瀹為檯鏄娊璞¤祫婧愭搷浣滃埌鍏蜂綋紜歡鎿嶄綔緇嗚妭涔嬮棿鐨勬帴鍙c傚Linux榪欐牱鐨勫鐢ㄦ埛鎿嶄綔緋葷粺鏉ヨ錛屽畠闇瑕侀伩鍏嶇敤鎴峰紜歡鐨勭洿鎺ヨ闂紝騫墮槻姝㈢敤鎴蜂箣闂寸殑浜掔浉騫叉壈銆傛墍浠inux鎺ョ浜?BIOS璋冪敤鍜岀鍙h緭鍏ヨ緭鍑猴紝鍏充簬绔彛杈撳叆杈撳嚭鏂歸潰璇峰弬闃匧inux IO-Port-Programming HOWTO銆傝岃閫氳繃Linux瀵圭‖浠剁‖浠惰繘琛岃闂氨闇瑕佺敤鍒癝ystem Call錛屽疄闄呬笂鏄澶欳鐨勫嚱鏁幫紝鍙互鍦ㄦ眹緙栫▼搴忎腑璋冪敤錛岃皟鐢ㄦ柟娉曚笌DOS涓嬬殑姹囩紪瀹屽叏鐩稿悓錛岃屼笖鐢ˋSM姹囩紪鏃朵笉鐢ㄩ摼鎺ラ澶栫殑搴撳嚱鏁般?
Linux涓嶥OS鐨勪富瑕佸尯鍒湪浜庡唴瀛樼鐞嗐佽繘紼嬶紙DOS涓嬫棤榪涚▼姒傚康錛夈佹枃浠剁郴緇燂紝鍏朵腑鍐呭瓨綆$悊鍜岃繘紼嬩笌姹囩紪緙栫▼鐨勫叧緋繪瘮杈冨瘑鍒囷細(xì)
1銆佸唴瀛樼鐞?/b>
瀵逛換涓鍙拌綆楁満鑰岃█錛屽叾鍐呭瓨浠ュ強(qiáng)鍏朵粬璧勬簮閮芥槸鏈夐檺鐨勩備負(fù)浜?jiǎn)璁╂湁闄愮殑鐗╃悊鍐呭瓨婊…憶_簲鐢ㄧ▼搴忓鍐呭瓨鐨勫ぇ闇姹傞噺錛孡inux閲囩敤浜?jiǎn)绉颁负鈥滆櫄鎷熷唴瀛樷濈殑鍐呭瓨綆$悊鏂瑰紡銆侺inux灝嗗唴瀛樺垝鍒嗕負(fù)瀹規(guī)槗澶勭悊鐨勨滃唴瀛橀〉鈥濓紝鍦ㄧ郴緇熻繍琛岃繃紼嬩腑錛屽簲鐢ㄧ▼搴忓鍐呭瓨鐨勯渶姹傚ぇ浜庣墿鐞嗗唴瀛樻椂錛孡inux鍙皢鏆傛椂涓嶇敤鐨勫唴瀛橀〉浜ゆ崲鍒扮‖鐩樹笂錛岃繖鏍鳳紝絀洪棽鐨勫唴瀛橀〉鍙互婊¤凍搴旂敤紼嬪簭鐨勫唴瀛橀渶姹傦紝鑰屽簲鐢ㄧ▼搴忓嵈涓嶄細(xì)娉ㄦ剰鍒板唴瀛樹氦鎹㈢殑鍙戠敓銆?
榪涚▼
榪涚▼瀹為檯鏄煇鐗瑰畾搴旂敤紼嬪簭鐨勪竴涓繍琛屽疄浣撱傚湪Linux緋葷粺涓紝鑳藉鍚屾椂榪愯澶氫釜榪涚▼錛孡inux閫氳繃鍦ㄧ煭鐨勬椂闂撮棿闅斿唴杞祦榪愯榪欎簺榪涚▼鑰屽疄鐜扳滃浠誨姟鈥濄傝繖涓鐭殑鏃墮棿闂撮殧縐頒負(fù)鈥滄椂闂寸墖鈥濓紝璁╄繘紼嬭疆嫻佽繍琛岀殑鏂規(guī)硶縐頒負(fù)鈥滆皟搴︹濓紝瀹屾垚璋冨害鐨勭▼搴忕О涓鴻皟搴︾▼搴忋傞氳繃澶氫換鍔℃満鍒訛紝姣忎釜榪哥▼鍙涓哄彧鏈夎嚜宸辯嫭鍗犺綆楁満錛屼粠鑰岀畝鍖栫▼搴忕殑緙栧啓錛屾瘡涓繘紼嬫湁鑷繁鍗曠嫭鐨勫湴鍧絀洪棿錛屽茍涓斿彧鑳界敱榪欎竴榪涚▼璁塊棶錛岃繖鏍鳳紝鎿嶄綔緋葷粺閬垮厤浜?jiǎn)杩浗E嬩箣闂寸殑浜掔浉騫叉壈浠ュ強(qiáng)鈥滃潖鈥濈▼搴忓緋葷粺鍙兘閫犳垚鐨勫嵄瀹熾?
涓轟簡(jiǎn)瀹屾垚鏌愮壒瀹氫換鍔★紝鏈夋椂闇瑕佺患鍚堜袱涓▼搴忕殑鍔熻兘錛屼緥濡備竴涓▼搴忚緭鍑烘枃鏈紝鑰屽彟涓涓▼搴忓鏂囨湰榪涜鎺掑簭銆備負(fù)姝わ紝鎿嶄綔緋葷粺榪樻彁渚涜繘紼嬮棿鐨勯氳鏈哄埗鏉ュ府鍔╁畬鎴愯繖鏍風(fēng)殑浠誨姟銆侺inux涓父瑙佺殑榪涚▼闂撮氳鏈哄埗鏈変俊鍙楓佺閬撱佸叡浜唴瀛樸佷俊鍙烽噺鍜屽鎺ュ瓧絳夈?
涓夈丩inux涓嬬殑姹囩紪宸ュ叿
Linux涓嬬殑姹囩紪宸ュ叿鍙皳鐧懼浜夐福錛屼笉鍍廌OS涓嬮兘瑕佺粰MASM鍜孴ASM緇欐帶鍒朵簡(jiǎn)銆備絾鏄疞inux涓嬫瘡涓縐嶆眹緙栧伐鍏烽兘鏈夊緢澶х殑鍖哄埆錛岃鎯沖叏閮ㄦ帉鎻″嚑涔庢槸涓嶅彲鑳界殑錛屼笅闈㈡垜浠嬬粛鍑犵甯哥敤鐨勬眹緙栧伐鍏鳳紝閲嶇偣浠嬬粛NASM鍙?qiáng)鍏朵娇鐢ㄥ拰璇硶銆?
1銆丟CC
GCC鍏跺疄鏄疓NU鐨凜璇█浜у搧錛屼絾瀹冩敮鎸両nline Assemble錛屽湪GCC涓璱nline assemble浣跨敤灝卞儚瀹忎竴鏍鳳紝浣嗗畠姣斿畯鑳芥洿娓呮鏇村噯紜殑琛ㄨ揪鏈哄櫒鐨勫伐浣滅姸鎬併?
C鏄眹緙栫紪紼嬬殑涓涓珮搴︽鎷紝瀹冨彲浠ュ噺灝戣澶氭眹緙栦腑鐨勯夯鐑?chǔ)锛岀壒鍒槸鍦℅CC榪欎釜C緙栬瘧鍣ㄤ腑錛宎ssemble浼間箮璧蜂笉浜?jiǎn)澶氬ぇ鐨勪綔鐢ㄣ?
2銆丟AS
GAS 鏄疞inux鍚勭増鏈腑鍩烘湰鐨勬眹緙栧伐鍏鳳紝浣嗗畠閲囩敤鐨勬槸AT&T鐨勮娉曟爣鍑嗕笌Intel鐨勮娉曟爣鍑嗘湁寰堝ぇ鐨勪笉鍚岋紝瀵逛簬DOS緙栫▼鐨勬垜浠潵璇達(dá)紝瀛︿範(fàn)璧鋒潵鏄潪甯稿洶闅劇殑銆傚綋鐒跺鏋滆綺鵑歀inux涓嬬殑姹囩紪緙栫▼錛屽涔?fàn)GAS涔熸槸闈炲父蹇呰鐨勶紝鍏蜂綋鐨勮娉曟爣鍑嗗彲浠ュ弬鐪婾sing GNU Assembler銆?
3銆丟ASP
GASP鏄疓AS鐨勬墿灞曪紝瀹冨寮轟簡(jiǎn)GAS瀵瑰畯鐨勬敮鎸併?
4銆丯ASM
NASM鏄痩inux涓娉曚笌DOS鏈涓虹浉鍍忕殑涓縐嶆眹緙栧伐鍏楓傝櫧璇村姝わ紝瀹冧笌MASM涔熸槸鏈夌潃寰堝ぇ鍖哄埆鐨勩?
l NASM鐨勪嬌鐢ㄦ牸寮忓涓嬶細(xì)
Nasm 鈥揻 -o
渚嬪錛?
Nasm -f elf hello.asm
灝嗘妸hello.asm姹囩紪鎴怑LF object鏂囦歡錛岃孨asm -f bin hello.asm -o hello.com浼?xì)鎶奾ello.asm姹囩紪鎴愪簩榪涘埗鍙墽琛屾枃浠秇ello.com.Nasm 鈥揾灝嗕細(xì)鍒楀嚭NASM鍛戒護(hù)琛岀殑瀹屾暣璇存槑銆侼ASM涓嶄細(xì)鏈変換浣曡緭鍑猴紝闄ら潪鏈夐敊璇彂鐢熴?f 鍦↙inux涓嬩富瑕佹湁aout鍜孍LF涓ょ錛屽鏋滀綘涓嶇‘瀹氫綘鐨凩inux緋葷粺搴旇鐢ˋOUT榪樻槸ELF錛屽彲浠ュ湪NASM鐩綍涓緭鍏?File nasm 錛屽鏋滆緭鍑簄asm: ELF 32-bit LSB executable i386 (386 and up) Version 1琛ㄧず鏄疎LF錛屽鏋滆緭鍑簄asm: Linux/i386 demand-paged executable (QMAGIC)琛ㄧず鏄痑out銆?
NASM涓嶮ASM鐨勪富瑕佷笉鍚岋細(xì)
棣栧厛涓巐inux緋葷粺涓鏍鳳紝nasm鏄尯鍒嗗ぇ灝忓啓鐨勶紝Hello涓巋ello灝嗘槸涓嶅悓鐨勬爣璇嗙錛屽鏋滆姹囩紪鍒癉OS鎴朞S/2錛岄渶瑕佸姞鍏PPERCASE鍙傛暟銆?
鍏舵錛宯asm涓唴瀛樻搷浣滄暟閮芥槸浠 ]琛ㄧず銆?
鍦∕ASM涓?
foo equ 1
bar dw 2
mov ax,foo
mov ax,bar
聽
灝嗚姹囩紪鎴愬畬鍏ㄤ笉鍚岀殑鎸囦護(hù)錛岃櫧鐒跺畠浠湪MASM涓殑琛ㄨ揪鏂瑰紡瀹屽叏涓鏍楓傝孨ASM瀹屽叏閬垮厤浜?jiǎn)杩櫩U嶆販涔憋紝瀹冧嬌鐢ㄧ殑鏄繖鏍風(fēng)殑瑙勫垯錛氭墍鏈夊鍐呭瓨鐨勬搷浣滈兘蹇呴』閫氳繃 [ ]鏉ュ疄鐜般備緥濡備笂渚嬩腑瀵筨ar鐨勬搷浣滃氨瑕佸啓鎴愬涓嬪艦寮?mov ax,[bar]銆傜敱姝ゅ彲瑙侊紝nasm涓offset鐨勪嬌鐢ㄤ篃鏄病鏈夊繀瑕佺殑錛坣asm涓棤offset錛夈侼asm瀵筟 ]鐨勪嬌鐢ㄤ笌masm涔熸湁鎵涓嶅悓錛屾墍鏈夌殑琛ㄨ揪寮忛兘蹇呴』鍐欏湪[ ]涓紝涓嬮潰涓句袱涓緥瀛愭潵璇存槑錛?
Masm Nasm
Mov ax,table[di]
Mov ax,[table+di]
Mov ax,es:[di]
Mov ax,[es:di]
Mov ax,[di]+1
Mov ax,[di+1]
Nasm 涓笉瀛樺偍鍙橀噺綾誨瀷錛屽師鍥犲緢綆鍗昺asm涓氳繃[ ]瀵誨潃鏂瑰紡鐨勫彉閲忎篃蹇呴』瑕佹寚瀹氱被鍨嬨侼asm涓笉鏀寔LODS, MOVS, STOS, SCAS, CMPS, INS, OUTS錛屽彧鏀寔lodsb銆乴odsw絳夊凡緇忔寚瀹氱被鍨嬬殑鎿嶄綔銆侼asm涓笉鍐嶆湁assume鎿嶄綔錛屾鍦板潃瀹屽叏鍙栧喅浜庡瓨鍏ユ瀵勫瓨鍣ㄧ殑鍊箋傚叧浜嶯ASM鐨勪嬌鐢ㄦ柟娉曞強(qiáng)璇硶榪樺彲浠ュ弬闃匩ASM浣跨敤鎵嬪唽銆?
緇撹
鎴戣涓轟笉璁烘槸鍦╓indows/DOS涓嬭繕鏄湪Linux涓嬪畬瀹屽叏鍏ㄧ敤姹囩紪緙栦竴涓ぇ鍨嬬▼搴忓凡緇忔槸涓嶅彲鑳戒簡(jiǎn)錛屼篃涓嶄細(xì)鏈変漢鎰挎剰鍘昏繖鏍峰仛銆傚湪windows涓嬫垜浠彲浠ョ敤VC錛屽湪Linux/Xwindows涓嬫垜浠彲浠ョ敤C鐢氳嚦C++ Builder錛屼絾鏄儚VC銆丆++ Builder涔嬬被鐨勫伐鍏峰敖閲忛殣钘忎簡(jiǎn)搴曞眰鐨勮皟鐢紝鍚屾椂涔熼樆闅斾簡(jiǎn)鎴愪負(fù)楂樻墜鐨勬満浼?xì)锛屽洜湄?fù)緙栧嚭鏉ョ殑紼嬪簭鏃犳硶浜?jiǎn)瑙e畠鐨勬墽琛寴q囩▼涔熷氨浣跨紪紼嬩腑鏈閲嶈鐨勨滃彲棰勬祴鈥濇у彉寰楀緢浣庛傛鍥犱負(fù)濡傛姹囩紪鎵嶆湁瀹冨瓨鍦ㄧ殑蹇呰鎬э紝鍚屾椂榪樻湁涓涓洿閲嶈鐨勫師鍥狅紝姝e銆婅秴綰цВ闇搞嬬殑浣滆呮鑲囨柊鎵璇達(dá)細(xì)鈥滅紪紼嬪簭鐨勯噸鐐逛笉鏄滅紪鈥濓紝鑰屾槸璋冭瘯紼嬪簭錛岀悊璁轟笂鐨勫畬緹庡湪瀹炵幇鐨勬椂鍊欎細(xì)閬囧埌寰堝緇嗚妭闂錛岃繖浜涢棶棰樺繀欏昏皟璇曟墠鑳借В鍐熾傛垜鐨勭紪紼嬩範(fàn)鎯槸涓澶╁啓浜斿ぉ璋冭瘯錛屻婅秴綰цВ闇搞嬫槸璋冭瘯鍑烘潵鐨勶紝鑰屼笉鏄啓鍑烘潵鐨勩傝皟璇曞氨娑夊強(qiáng)鍒版眹緙栫殑闂錛屼笉榪涜姹囩紪綰х殑璋冭瘯鏄笉褰誨簳鐨勶紝涔熶笉鑳借浜烘斁蹇?jī)銆?/p>
]]> 涓轟粈涔堟槸NASM http://m.shnenglu.com/mydriverc/archive/2008/01/07/40634.html鏃呴?/dc:creator>鏃呴?/author>Mon, 07 Jan 2008 09:37:00 GMT http://m.shnenglu.com/mydriverc/archive/2008/01/07/40634.html http://m.shnenglu.com/mydriverc/comments/40634.html http://m.shnenglu.com/mydriverc/archive/2008/01/07/40634.html#Feedback 0 http://m.shnenglu.com/mydriverc/comments/commentRss/40634.html http://m.shnenglu.com/mydriverc/services/trackbacks/40634.html
浣犵殑鐤戦棶鏄滀負(fù)浠涔堟槸
NASM
鑰屼笉鏄?/span>
MASM
鈥濓紝閭d箞鐜板湪浣犵殑鐤戦棶鍙兘鍙樻垚浜?jiǎn)鈥滀負(fù)浠涔堟槸
NASM
鑰屼笉鏄?/span>
GAS
鈥濄傚洜涓?/span>
MASM
鍜?/span>
GAS
閮藉お鏋佺浜?jiǎn)锛寴q樻槸
NASM
姣旇緝涓焊錛屽畠鏃㈠彲浠ュ湪
Windows
騫沖彴涓嬩嬌鐢紝鍙堝彲浠ュ湪
Linux
騫沖彴涓嬩嬌鐢ㄣ傝屼笖錛屽鏋滄病鏈夋帴瑙﹁繃
AT&T
鏍煎紡鐨勬眹緙栵紝
GAS
鐪嬩笂鍘誨疄鍦ㄥお濂囨簡(jiǎn)錛屽叆闂ㄦ椂涓瀹氫細(xì)璁╀綘鎰熷埌鏅曞ご杞悜銆?/span>
鍦ㄨ繖閲岋紝鎴戜滑鎬葷粨涓涓嬩嬌鐢?/span>
NASM
鐨勫嚑澶х悊鐢憋細(xì)
鈥?/span>
聽
NASM
鍜?/span>
MASM
鎺ヨ繎錛屽叆闂ㄦ瘮杈冨鏄撱?/span>
鈥?/span>
NASM
鍦ㄤ笉鍚屽鉤鍙頒笅鍧囧彲浣跨敤錛屽彲浠ュ湪
Windows
涓嬬紪鍐欏茍璋冭瘯錛岀劧鍚庢嬁鍒?/span>
Linux
涓嬩嬌鐢ㄣ?/span>
鈥?/span>
鑷甫鍙嶆眹緙栫▼搴忥紝鏂逛究鍙栫敤銆?/span>
鈥?/span>
鏂囨。涓板瘜錛岃嚜甯︾殑鏂囨。鏈?/span>
Word
銆?/span>
PDF
銆?/span>
CHM
涓夌鐗堟湰錛屾绱㈡瀬涓烘柟渚褲?/span>
鈥?/span>
瀹冩槸鍏嶈垂鐨勩?/span>
NASM
瀹夎璧鋒潵涔熷緢綆鍗曪紝鍦?/span>
http://nasm.sourceforge.net/
鍙互鎵懼埌鍚勪釜騫沖彴涓嬬殑瀹夎鍖呭拰鐩稿叧鏂囨。銆?/span>
]]> nasm涓嬭澆鍦板潃 http://m.shnenglu.com/mydriverc/archive/2008/01/07/40633.html鏃呴?/dc:creator>鏃呴?/author>Mon, 07 Jan 2008 09:21:00 GMT http://m.shnenglu.com/mydriverc/archive/2008/01/07/40633.html http://m.shnenglu.com/mydriverc/comments/40633.html http://m.shnenglu.com/mydriverc/archive/2008/01/07/40633.html#Feedback 0 http://m.shnenglu.com/mydriverc/comments/commentRss/40633.html http://m.shnenglu.com/mydriverc/services/trackbacks/40633.html http://nasm.sourceforge.net/
]]> 鍔ㄦ墜緙栧啓鑷繁鐨勬搷浣滅郴緇熲斺旂幆澧冭緗?/title> http://m.shnenglu.com/mydriverc/archive/2008/01/07/40628.html鏃呴?/dc:creator>鏃呴?/author>Mon, 07 Jan 2008 08:32:00 GMT http://m.shnenglu.com/mydriverc/archive/2008/01/07/40628.html http://m.shnenglu.com/mydriverc/comments/40628.html http://m.shnenglu.com/mydriverc/archive/2008/01/07/40628.html#Feedback 0 http://m.shnenglu.com/mydriverc/comments/commentRss/40628.html http://m.shnenglu.com/mydriverc/services/trackbacks/40628.html 鍦ㄧ幇鏈夌殑WindowXP2鎿嶄綔緋葷粺涓嬶紝闇瑕佸畨瑁呯殑杞歡鍒楄〃錛?/p>
1銆乂Mware4.5
聽聽聽聽聽 host涓巊uest鎿嶄綔緋葷粺鐨勫叡浜鍏堥渶瑕佸畨瑁匳Mware Tools錛屾楠ゅ涓嬶細(xì)1錛夊湪鍚姩铏氭嫙鏈鴻繘鍏?strong>鏂囨湰妯″紡(鍚﹀垯瀹夎浼?xì)澶辫?浠ュ悗錛岄紶鏍囦緷嬈″崟鍑籚Mware涓葷晫闈笂鐨勨滆瀹氣濋夊崟鈫掆淰Mware宸ュ叿瀹夎鈥濋夊崟欏癸紝鐒跺悗鍦ㄥ脊鍑虹殑瀵硅瘽妗嗛噷鍗曞嚮鈥淚nstall鈥濓紱[2錛夊湪璇ュ璇濇涓婇変腑鈥淒VD/CD-ROM錛圛DE 1:0錛夆濆垪琛ㄩ」錛屽彲浠ョ湅鍒拌櫄鎷熸満鍏夐┍鏈変袱縐嶈繛鎺ユ柟寮忥紝涓縐嶆槸鐩存帴浣跨敤鐗╃悊椹卞姩鍣紝鍙︿竴縐嶆槸浣跨敤ISO鏄犲儚銆傝繖閲岄変腑鍚庤呫傜劧鍚庡崟鍑燴滄祻瑙堚濇寜閽紝鎸囧畾Linux.iso鏄犲儚鏂囦歡鐨勮礬寰勶紙浣嶄簬VMware鐨勫畨瑁呯洰褰昞VMware\VMware Workstation\Programs\Linux.iso涓嬶級(jí)鍗沖彲銆俔3錛夋鏃跺湪/mnt[/cdrom]鐩綍涓嬶紝浼?xì)鍙戠幇澶氫簡(jiǎn)涓涓枃浠訛細(xì)vmware-linux-tools.tar.gz錛岃繖灝辨槸VMware Tools鐨凩inux瀹夎鍖咃紱4錛夌劧鍚庡啀鎶婅鏂囦歡鎷瘋礉鍒皌mp鐩綍涓嬶紝閿叆鈥渃p ./vmware-linux-tools.tar.gz /tmp鈥濆懡浠ゅ嵆鍙?錛夌幇鍦ㄨ櫄鎷熸満鍏夐┍鐨勪嬌鍛藉畬鎴愪簡(jiǎn)錛屽簲璇ユ妸瀹冨嵏杞斤紝鐢ㄥ懡浠も渦mount /dev/cdrom鈥濆嵆鍙?錛夋帴涓嬫潵搴旇瑙e帇緙﹙mware-linux-tools.tar.gz鏂囦歡銆傞鍏堣繘鍏mp鐩綍錛岀敤鈥渃d /tmp鈥濆懡浠わ紝鐒跺悗鐢ㄢ渢ar zxf vmware-linux-tools.tar.gz鈥濆懡浠ゅ皢鍏惰В鍘嬬緝錛屾妸瀹冮噴鏀懼埌鍚屽悕鐩綍涓嬶紙鍗硋mware-linux-tools鐩綍錛夈?錛夌劧鍚庣敤鈥渃d vmware-linux-tools[鎴栬呭埆鐨勫悕瀛梋鈥濊繘鍏ヨВ鍘嬪悗鐨勭洰褰曪紝鐢ㄢ渓s鈥濆懡浠ゆ樉紺哄叾涓嬬殑鍐呭錛屼粠涓彲浠ョ湅鍒癷nstall.pl鏄疺Mware Tools鐨勫畨瑁呯▼搴忋?錛夋渶鍚庣敤鈥?/install.pl[鍙兘鏄埆鐨勬枃浠跺悕]鈥濆懡浠ゆ潵榪愯璇ュ畨瑁呯▼搴忥紝鐒跺悗鏍規(guī)嵁灞忓箷鎻愮ず涓璺洖杞︺傚埌姝ゆ暣涓畨瑁呰繃紼嬬畻鏄畬鎴愪簡(jiǎn)銆?/p>
聽聽聽聽聽 璁劇疆鏂囦歡鍏變韓(蹇呴』鍏堝畨瑁呭ソVMware Tools)錛歏M鈥斺斻塻etting鈥斺斻塐ptions鈥斺斻塖hared Folders錛宭inux涓搴旂殑鐩綍涓猴細(xì)/mnt/hgfs
聽聽聽聽聽 娣誨姞鍚姩铏氭嫙杞┍錛氬惎鍔ㄨ櫄鎷熸満涔嬪墠鈥斺斻塚M鈥斺斻塻etting鈥斺斻塇ardware鈥斺斻夊鏋渄evice閫夐」涓病鏈塅loppy鐨勮瘽錛屸渁dd鈥濃斺斻塩reate a blank floppy or use a 聽floppy: *.img鈥斺斻?/p>
2銆丩inux9.0
3銆乄inImage8.0錛氬垱寤鴻櫄鎷熻蔣椹?.img鏂囦歡
4銆丗loppyWriter錛氬皢*.bin鏂囦歡鍐欏叆*.img鏂囦歡鐨勫伐鍏?/p>
5銆乤sm姹囩紪緙栬瘧銆佽皟璇曞伐鍏?/p>
nasm錛?a >http://webster.cs.ucr.edu/AsmTools/NASM/index.html
nasm manual錛?a >http://nasm.sourceforge.net/doc/html/nasmdoc0.html
ald(闇瑕佹悳绱?錛?a >http://sourceforge.net/project/showfiles.php?group_id=102112 錛屽畨瑁呰繖涓蔣浠惰繍琛?/configure鐨勬椂鍊欙紝鍥犱負(fù)瑕佷慨鏀規(guī)枃浠跺す鐨勮鍐欏睘鎬э紝濡傛灉娌℃湁瓚沖鐨勬潈闄愭垨鑰呮槸榪愯鍦ㄤ笌host鍏變韓鐨勬枃浠跺す(璇ユ枃浠跺す涓鑸笉鍏佽淇敼璇誨啓灞炴э紝浣嗘槸鍙互璇誨啓鏂囦歡)涓嬶紝鍒欎細(xì)鎶ュ憡鈥?strong>chmod 鈥︹?"710" "700" permited鈥濈被浼肩殑閿欒銆?/p>
gdb鐨勫浘褰㈢増鏈琩dd錛?a >www.gnu.com/ddd
6銆佸畨瑁卾irtualpc鍜孭C-DOS/MS-DOS鈥斺旀病鏈夊繀瑕佽寰蔣鐨勮繖涓牬涓滆タ錛屽湪VMware涓篃鍙互鍜岀‖鐩樺叡浜?/p>
鍒癿icrosoft涓婚〉涓婁笅杞絭irtual pc2004(鐑敭涓洪敭鐩樺彸杈圭殑Alt)錛?a >http://www.microsoft.com/downloads/details.aspx?FamilyId=6D58729D-DFA8-40BF-AFAF-20BCB7F01CD1&displaylang=en
dos鍚姩鐩樹笅杞藉湴鍧錛?a >http://www.cn-dos.net/newdos/doswarea.htm#pcdos
鍏變韓璁劇疆錛岀綉緇滀笂鐩涗紶鐨勬枃浠跺す鍏變韓鏂規(guī)硶鎴戞繪槸涓嶈兘鎴愬姛錛屽ぇ姒傛槸娌℃湁鏉冮檺鍐欍傝繖閲屾湁鍙﹀涓縐嶅姙娉曞彲浠ヨ闂埌鎵鏈夌殑紜洏淇℃伅錛屽彧鏄笉鑳藉啓錛屼絾鏄凍鐭c備富鏈轟笂鍐檃sm紼嬪簭錛宒os铏氭嫙鏈轟笂榪愯瀹炴ā寮忎笅鐨刢om紼嬪簭銆?/p>
鏂板緩涓涓狹S-DOS鐨勮櫄鎷熸満鈥斺斻夋柊寤轟竴涓櫄鎷熺殑hard disk鈥斺斻夊畬鎴愪箣鍚庯紝鐐瑰嚮姝よ櫄鎷熸満鐨剆etting鈥斺斻夊湪hard Disk1涓紝榪愯Virtual Disk鍚戝鈥斺斻夊垱寤轟竴涓柊鐨刅irtual Disk鈥斺斻夊湪Virtual Hard Disk Option閫夐」涓夋嫨鈥淟inked to a hard disk鈥濃斺斻夎繑鍥炲埌姝よ櫄鎷熸満鐨剆etting涓殑Hard Disk 1錛屽皢鍒氬垰鏂板緩鐨刅irtual Disk鍔犺澆鍒癏ard Disk 1涓幓鈥斺斻夎繍琛屾铏氭嫙鏈猴紝鐐瑰嚮鑿滃崟鏍忕殑Floppy涓殑鈥淐apture Floppy Disk Img鈥濓紝鍔犺澆涓嬭澆鐨凪S-DOS/PC-DOS img鏂囦歡銆?/p>
7銆乂irtual PC涓惎鍔═urbo debugger(tasm5 涓寘鍚杞歡)
涓嬭澆鍦板潃錛?a >http://www.begin.org.cn/
姝e紡鐗?.0錛堟帹鑽愶級(jí)錛?a >http://tt.stu.edu.cn/download/Application.htm
铏界劧鍦?涓鍒頒笉鑳藉湪涓庝富鏈哄叡浜殑鏂囦歡澶逛腑榪涜鍐欐搷浣滐紝浣嗘槸鏄彲浠ュ湪铏氭嫙杞┍涓啓鏂囦歡鐨勶紝鎵浠ュ湪VPC鐨刣os涓彲浠ュ皢紼嬪簭瀹夎鍦ˋ鐩樹腑銆傚畨瑁呴紶鏍囬┍鍔ㄤ篃鏄繖涔堝疄鐜扮殑錛屽厛鐢╓inImage灝嗛紶鏍囬┍鍔ㄧ▼搴忓姞杞藉埌dos椹卞姩紼嬪簭涓幓錛屽啀鍦ˋ鐩樹腑鐩存帴榪涜瀹夎
]]> 緙栧啓鑷繁鐨勬搷浣滅郴緇?杞?/title> http://m.shnenglu.com/mydriverc/archive/2008/01/07/40627.html鏃呴?/dc:creator>鏃呴?/author>Mon, 07 Jan 2008 08:28:00 GMT http://m.shnenglu.com/mydriverc/archive/2008/01/07/40627.html http://m.shnenglu.com/mydriverc/comments/40627.html http://m.shnenglu.com/mydriverc/archive/2008/01/07/40627.html#Feedback 0 http://m.shnenglu.com/mydriverc/comments/commentRss/40627.html http://m.shnenglu.com/mydriverc/services/trackbacks/40627.html 緙栧啓鑷繁鐨勬搷浣滅郴緇? -
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
鐪嬬湅鍚?寰堜笉閿欑殑!
鑷敱杞歡紺懼尯鏄竴涓厖婊¤嚜鐢卞拰姊︽兂鐨勫湴鏂癸紝鍦?0浣欏勾鐨勬椂闂撮噷瀹冨垱閫犱簡(jiǎn)涓涓張涓涓榪廣傜劧鑰岋紝榪欎簺濂囪抗鐨勫垱閫犺呬笉鍙槸Stallman錛屼篃涓嶅彧鏄疞inus Torvalds錛岃屾槸媧昏穬鍦ㄤ笘鐣屽悇鍦扮殑涓嶈鍏舵暟鐨勫紑鍙戜漢鍛樸?
浣滆咃細(xì)浼婃
鑷敱杞歡紺懼尯鏄竴涓厖婊¤嚜鐢卞拰姊︽兂鐨勫湴鏂癸紝鍦?0浣欏勾鐨勬椂闂撮噷瀹冨垱閫犱簡(jiǎn)涓涓張涓涓榪廣傜劧鑰岋紝榪欎簺濂囪抗鐨勫垱閫犺呬笉鍙槸Stallman錛屼篃涓嶅彧鏄疞inus Torvalds錛岃屾槸媧昏穬鍦ㄤ笘鐣屽悇鍦扮殑涓嶈鍏舵暟鐨勫紑鍙戜漢鍛樸? 鍦ㄤ嬌鐢ㄥ悇縐嶅姛鑳藉己澶х殑鑷敱杞歡鏃訛紝鎴戞諱細(xì)瀵瑰叾寮鍙?
鑰呭厖婊″磭鏁箣鎯咃紝鏈熺浖鏈夋湞涓鏃ヨ嚜宸變篃鑳芥垚涓轟粬浠腑鐨勪竴鍛樸傚緢澶氬鑷敱紺懼尯鍏呮弧鍚戝線涔嬫儏鐨勪漢錛岃櫧鐒朵篃鎯沖姫鍔涜瀺韜簬鍏朵腑錛屼絾鍙堜笉鐭ヨ鎬庝箞鍋氥傞偅涔堬紝灝辮涓庢垜浠竴璧蜂粠緙栧啓涓涓畝鍗曠殑鎿嶄綔緋葷粺寮濮嬪惂錛? 鎴戜滑瑕佸仛鐨勪簨鎯? 鏈変漢鍙兘鎷呭績(jī)鑷繁鏃㈡病鏈夊榪囪綆楁満鍘熺悊錛屼篃娌℃湁瀛﹁繃鎿嶄綔緋葷粺鍘熺悊錛屾洿涓嶆噦姹囩紪璇█錛屽C璇█涔熶竴鐭ュ崐瑙o紝鑳藉啓鎿嶄綔緋葷粺鍚楋紵絳旀鏄病闂銆傛垜灝嗗甫澶у涓姝ヤ竴姝ュ畬鎴愯嚜宸辯殑鎿嶄綔緋葷粺銆傚綋鐒跺鏋滃涓瀛︿笂榪板唴瀹瑰啀濂戒笉榪囥? 棣栧厛瑕佹槑紜鐞嗗櫒(涔熷氨鏄疌PU)鎺у埗鐫璁$畻鏈恒傚PC鑰岃█錛屽惎鍔ㄧ殑鏃跺欙紝CPU閮藉鍦ㄥ疄妯″紡鐘舵侊紝鐩稿綋浜庡彧鏄竴涓狪ntel 8086澶勭悊鍣ㄣ備篃灝辨槸璇達(dá)紝鍗充嬌浣犵幇鍦ㄦ嫢鏈変竴涓鑵懼鐞嗗櫒錛屽畠鐨勫姛鑳戒篃鍙兘鏄?086綰у埆銆備粠榪欎竴鐐逛笂鏉ヨ錛屽彲浠ヤ嬌鐢ㄤ竴浜涜蔣浠舵妸澶勭悊鍣ㄨ漿鎹㈠埌钁楀悕鐨勪繚鎶ゆā寮忋傚彧鏈夎繖鏍鳳紝鎴戜滑鎵嶅彲浠ュ厖鍒嗗埄鐢ㄥ鐞嗗櫒鐨勫己澶у姛鑳姐? 緙栧啓鎿嶄綔緋葷粺寮濮嬫槸瀵笲IOS鎺у埗錛屽彇鍑哄瓨鍌ㄥ湪ROM閲岀殑紼嬪簭銆侭IOS鏄敤鏉ユ墽琛孭OST(Power On Self Test錛岃嚜媯(gè))鐨勩傝嚜媯(gè)鏄鏌ヨ綆楁満鐨勫畬鏁存?姣斿澶栬鏄惁宸ヤ綔姝e父銆侀敭鐩樻槸鍚﹁繛鎺ョ瓑)銆傝繖涓鍒囧畬鎴愪互鍚庯紝浣犲氨浼?xì)鍚埌PC鍠囧彮鍙戝嚭涓澹版竻鑴嗙殑鍝嶅0銆傚鏋滀竴鍒囨甯革紝BIOS灝變細(xì)閫夋嫨涓涓惎鍔ㄨ澶囷紝騫朵笖璇誨彇璇ヨ澶囩殑絎竴鎵囧尯(鍗沖惎鍔ㄦ墖鍖?錛岀劧鍚庢帶鍒惰繃紼嬪氨浼?xì)铦{縐誨埌鎸囧畾浣嶇疆銆傚惎鍔ㄨ澶囧彲鑳芥槸涓涓蔣鐩樸佸厜鐩樸佺‖鐩橈紝鎴栬呭叾瀹冩墍閫夋嫨鐨勮澶囥傚湪姝ゆ垜浠妸杞洏浣滀負(fù)鍚姩璁懼銆傚鏋滄垜浠凡緇忓湪杞洏鐨勫惎鍔ㄦ墖鍖洪噷鍐欎簡(jiǎn)涓浜涗唬鐮侊紝榪欐椂瀹冨氨琚墽琛屻傚洜姝わ紝鎴戜滑鐨勭洰鐨勫緢鏄庣‘錛屽氨鏄線杞洏鐨勫惎鍔ㄦ墖鍖哄啓涓浜涚▼搴忋? 棣栧厛浣跨敤8086姹囩紪鏉ュ啓涓涓皬紼嬪簭錛岀劧鍚庡皢鍏舵嫹璐濊嚦杞洏鐨勫惎鍔ㄦ墖鍖恒備負(fù)浜?jiǎn)瀹炵幇鎷疯礉锛岃鍐欎竴涓狢紼嬪簭銆傛渶鍚庯紝浣跨敤杞洏鍚姩璁$畻鏈恒? 闇瑕佺殑宸ュ叿 鈼?as86錛氳繖鏄竴涓眹緙栫▼搴忥紝瀹冭礋璐f妸鍐欑殑浠g爜杞崲鎴愮洰鏍囨枃浠躲? 鈼?ld86錛氳繖鏄竴涓繛鎺ュ櫒錛宎s86浜х敓鐨勭洰鏍囦唬鐮佺敱瀹冩潵杞崲鎴愮湡姝g殑鏈哄櫒璇█銆傛満鍣ㄨ璦鏄?086鑳藉瑙h鐨勫艦寮忋? 鈼?GCC錛氳憲鍚嶇殑C緙栫▼鍣ㄣ傚洜涓烘垜浠渶瑕佸啓涓涓狢紼嬪簭灝嗚嚜宸辯殑OS杞Щ鍒拌蔣鐩樹腑銆? 鈼?涓寮犵┖杞洏錛氬畠鐢ㄤ簬瀛樺偍緙栧啓鐨勬搷浣滅郴緇燂紝涔熸槸鍚姩璁懼銆? 鈼?涓鍙拌鏈塋inux鐨勮綆楁満錛氳繖鍙版満鍣ㄥ彲浠ュ緢鏃э紝386銆?86閮藉彲浠ャ? 鍦ㄥぇ閮ㄥ垎鏍囧噯Linux鍙戣鐗堜腑閮戒細(xì)甯︽湁as86鍜宭d86銆傚湪鎴戜嬌鐢ㄧ殑Red Hat 7.3涓氨鍖呭惈鏈夎繖涓や釜宸ュ叿錛屽茍涓斿湪榛樿鐨勬儏鍐典笅錛屽畠宸茬粡瀹夎鍦ㄦ満鍣ㄩ噷銆傚鏋滀嬌鐢ㄧ殑Linux娌℃湁榪欎袱涓伐鍏鳳紝鍙互浠庣綉涓婁笅杞?http: //www.cix.co.uk/~mayday/)錛岃繖涓や釜宸ュ叿閮藉寘鍚湪涓涓悕涓篵in86鐨勮蔣浠跺寘涓傛澶栵紝鏈夊叧鐨勬枃妗d篃鍙互鍦ㄧ綉涓婅幏寰?(www.linux.org/docs/ldp/howto/Assembly-HOWTO/as86.html)銆? 寮濮嬪伐浣? 浣跨敤涓涓綘鍠滄鐨勭紪杈戝櫒杈撳叆浠ヤ笅鍐呭錛? entry start start: mov ax,#0xb800 mov es,ax seg es mov [0],#0x41 seg es mov [1],#0x1f loop1: jmp loop1 榪欐槸as86鍙互璇繪噦鐨勪竴孌墊眹緙栫▼搴忋傜涓涓彞瀛愭寚鏄庝簡(jiǎn)紼嬪簭鐨勫叆鍙g偣錛屽0鏄庢暣涓繃紼嬩粠start澶勫紑濮嬨傜浜岃鎸囨槑浜?jiǎn)start鐨勪綅緗紝璇存槑鏁翠釜紼嬪簭瑕佷粠start澶勫紑濮嬫墽琛屻?xb800鏄樉瀛樼殑寮濮嬪湴鍧銆?琛ㄦ槑鍏跺悗鏄竴涓珛鍗蟲暟銆傛墽琛岃鍙ワ細(xì) mov ax,#oxb800 ax 瀵勫瓨鍣ㄧ殑鍊煎氨鍙樹負(fù)0xb800錛岃繖灝辨槸鏄懼瓨鐨勫湴鍧銆備笅闈㈠啀灝嗚繖涓肩Щ鑷砮s瀵勫瓨鍣紝es鏄檮鍔犳瀵勫瓨鍣ㄣ傝璁頒綇8086鏈変竴涓垎孌電殑浣撶郴緇撴瀯銆傚畠鐨勫悇孌靛瘎瀛樺櫒涓轟唬鐮佹銆佹暟鎹銆佸爢鏍堟鍜岄檮鍔犳錛屽搴旂殑瀵勫瓨鍣ㄥ悕縐板垎鍒負(fù)cs銆乨s銆乻s鍜宔s銆備簨瀹炰笂錛屾垜浠妸鏄懼瓨鍦板潃閫佸叆浜?jiǎn)闄勫姞娈靛Q屽洜姝わ紝浠諱綍閫佸叆闄勫姞孌電殑涓滆タ閮戒細(xì)琚佸埌鏄懼瓨涓? 瑕佸湪灞忓箷涓婃樉紺哄瓧絎︼紝灝遍渶瑕佸悜鏄懼瓨涓啓涓や釜瀛楄妭銆傚墠涓涓槸鎵瑕佹樉紺哄瓧絎︾殑ASC鈪″鹼紝絎簩涓瓧鑺傝〃紺鴻瀛楃鐨勫睘鎬с傚睘鎬у寘鎷瓧絎︾殑鍓嶆櫙鑹層佽儗鏅壊鍙?qiáng)鏄惁闂儊绛壗{夈俿eg es鎸囨槑涓嬩竴涓皢瑕佹墽琛岀殑鎸囦護(hù)鏄寚鍚慹s孌電殑銆傛墍浠ワ紝鎴戜滑鎶婂?x41(鍦ˋSC鈪′腑琛ㄧず鐨勫瓧絎︽槸A)閫佸埌鏄懼瓨鐨勭涓涓瓧鑺備腑銆傛帴涓嬫潵瑕佹妸瀛楃鐨勫睘鎬ч佸埌涓嬩竴涓瓧鑺傚綋涓傚湪姝よ緭鍏ョ殑鏄?x1f錛岃灞炴ф寚鐨勬槸鍦ㄨ摑鑹茶儗鏅笅鏄劇ず鐧借壊鐨勫瓧絎︺傚洜姝わ紝濡傛灉鎵ц榪欎釜紼嬪簭錛屽氨鍙互鍦ㄥ睆騫曚笂寰楀埌鏄劇ず鍦ㄨ摑搴曚笂鐨勪竴涓櫧鑹茬殑 A銆傛帴鐫鏄竴涓驚鐜傚洜涓哄湪鎵ц瀹屾樉紺哄瓧絎︾殑浠誨姟鍚庯紝瑕佷箞璁╃▼搴忕粨鏉燂紝瑕佷箞浣跨敤涓涓驚鐜嬌鍏舵案榪滆繍琛屼笅鍘匯傛妸璇ユ枃浠跺懡鍚嶄負(fù)boot.s錛岀劧鍚庡瓨鐩樸? 姝ゅ鏄懼瓨鐨勬蹇佃寰椾笉鏄緢娓呮錛屾湁蹇呰榪涗竴姝ヨВ閲婁竴涓嬨傚亣璁懼睆騫曠敱80鍒椕?5琛岀粍鎴愶紝閭d箞絎竴琛屽氨闇瑕?60瀛楄妭錛屽叾涓竴涓瓧鑺傜敤浜庤〃紺哄瓧絎︼紝鍙﹀涓涓瓧鑺傜敤浜庤〃紺哄瓧絎︾殑灞炴с傚鏋滆鍦ㄧ涓夎鏄劇ず鏌愪竴瀛楃鐨勮瘽錛屽氨瑕佽煩榪囨樉瀛樼殑絎?鍜?瀛楄妭(瀹冧滑鏄敤浜庢樉紺虹1鍒楃殑)錛岀2鍜?瀛楄妭(瀹冧滑鏄敤浜庢樉紺虹2鍒楃殑)錛岀劧鍚庢妸闇瑕佹樉紺哄瓧絎︾殑ASC鈪$爜鍊煎叆絎?瀛楄妭錛屾妸瀛楃鐨勫睘鎬у啓鍏ョ5瀛楄妭銆? 鎶婄▼搴忓啓鑷沖惎鍔ㄦ墖鍖? 涓嬮潰鍐欎竴涓狢紼嬪簭錛屾妸鎴戠殑鎿嶄綔緋葷粺鍐欏叆杞洏絎竴鎵囧尯銆傜▼搴忓唴瀹瑰涓嬶細(xì) #include /* unistd.h 闇瑕佽繖涓枃浠?*/ #include /* 鍖呭惈鏈塺ead鍜寃rite鍑芥暟 */ #include int main() { char boot_buf[512]; int floppy_desc, file_desc; file_desc = open("./boot", O_RDONLY); read(file_desc, boot_buf, 510); close(file_desc); boot_buf[510] = 0x55; boot_buf[511] = 0xaa; floppy_desc = open("/dev/fd0", O_RDWR); lseek(floppy_desc, 0, SEEK_CUR); write(floppy_desc, boot_buf, 512); close(floppy_desc); } 棣栧厛錛屼互鍙妯″紡鎵撳紑boot鏂囦歡錛岀劧鍚庡湪鎵撳紑鏂囦歡鏃舵妸鏂囦歡鎻忚堪絎﹀鍒跺埌file_desc鍙橀噺涓備粠鏂囦歡涓鍙?10涓瓧絎︼紝鎴栬呰鍙栫洿鍒版枃浠剁粨鏉熴傚湪鏈緥涓敱浜庢枃浠跺緢灝忥紝鎵浠ユ槸璇誨彇鑷蟲枃浠剁粨鏉熴傜劧鍚庡叧闂枃浠躲? 鏈鍚?琛屼唬鐮佹墦寮杞洏椹卞姩璁懼(涓鑸潵璇存槸/dev/fd0)銆備嬌鐢╨seek鎵懼埌鏂囦歡寮濮嬪錛岀劧鍚庝粠緙撳啿涓悜杞洏鍐?12涓瓧鑺傘? 鍦╮ead銆亀rite銆乷pen鍜宭seek鐨勫府鍔╅〉涓紝鍙互鐪嬪埌涓庡嚱鏁版墍鏈夋湁鍏崇殑鍙傛暟鍙?qiáng)鍏朵娇鐢ㄦ栆?guī)硶銆傜▼搴忎腑鏈変袱琛屾瘮杈冮毦鎳傦細(xì) boot_buf[510] = 0x55; boot_buf[511] = 0xaa; 璇ヤ俊鎭槸鐢ㄤ簬BIOS鐨勶紝濡傛灉瀹冭瘑鍒嚭璇ヨ澶囨槸涓涓彲鍚姩鐨勮澶囷紝閭d箞鍦ㄧ510鍜?11鐨勪綅緗紝璇ュ煎氨搴旇鏄?x55鍜?xaa銆傜▼搴忎細(xì)鎶婃枃浠禸oot璇昏嚦鍚嶄負(fù)boot_buf鐨勭紦鍐蹭腑銆傚畠瑕佹眰鏀瑰彉絎?10鍜岀511瀛楄妭錛岀劧鍚庢妸boot_buf鍐欒嚦杞洏涔嬩笂銆傚鏋滄墽琛屼唬鐮侊紝杞洏涓婄殑鍓?12瀛楄妭灝卞寘鍚簡(jiǎn)鍚姩浠g爜銆傛渶鍚庯紝鎶婃枃浠跺瓨涓簑rite.c銆? 緙栬瘧榪愯 浣跨敤涓嬮潰鐨勫懡浠ゆ妸鏂囦歡鍙樹負(fù)鍙墽琛屾枃浠訛細(xì) as86 boot.s -o boot.o ld86 -d boot.o -o boot cc write.c -o write 棣栧厛灝哹oot.s鏂囦歡緙栬瘧鎴愮洰鏍囨枃浠禸oot.o錛岀劧鍚庡皢璇ユ枃浠惰繛鎺ユ垚鏈緇堢殑boot鏂囦歡銆傛渶鍚嶤紼嬪簭緙栬瘧鎴愬彲鎵ц鐨剋rite鏂囦歡銆? 鎻掑叆涓涓┖鐧借蔣鐩橈紝榪愯浠ヤ笅紼嬪簭錛? ./write 閲嶆柊鍚姩鐢?shù)鑴戝Q岃繘琛孊IOS鐨勭晫闈㈣緗紝騫朵笖鎶婅蔣鐩樿涓虹涓涓惎鍔ㄧ殑璁懼銆傜劧鍚庢彃鍏ヨ蔣鐩橈紝鐢?shù)鑴戜粠枋Y鐩樹笂鍚姩銆? 鍚姩瀹屾垚鍚庯紝鍦ㄥ睆騫曚笂鍙互鐪嬪埌涓涓瓧姣岮(钃濆簳鐧藉瓧)錛屽惎鍔ㄩ熷害寰堝揩錛屽嚑涔庢槸鍦ㄧ灛闂村畬鎴愩傝繖灝辨剰鍛崇潃緋葷粺宸茬粡浠庢垜浠埗浣滅殑杞洏涓婂惎鍔ㄤ簡(jiǎn)錛屽茍涓旀墽琛屼簡(jiǎn)鍒氭墠鍐欏叆鍚姩鎵囧尯鐨勭▼搴忋傜幇鍦紝瀹冩澶勫湪涓涓棤闄愬驚鐜殑鐘舵併傛墍浠ワ紝濡傛灉鎯寵繘鍏inux錛屽繀闇鎷挎帀杞洏錛屽茍涓旈噸鍚満鍣ㄣ? 鑷蟲錛岃繖涓搷浣滅郴緇熷氨綆楀畬鎴愪簡(jiǎn)錛岃櫧鐒跺畠娌℃湁瀹炵幇浠涔堝姛鑳斤紝浣嗘槸瀹冨凡緇忓彲浠ュ惎鍔ㄦ満鍣ㄤ簡(jiǎn)銆? 涓嬩竴鏈熸垜灝嗗湪榪欎釜鍚姩鎵囧尯紼嬪簭閲屽姞鍏ヤ竴浜涗唬鐮侊紝浣垮畠鍙互鍋氫竴浜涙瘮杈冨鏉傜殑浜嬫儏(姣斿浣跨敤BIOS涓柇銆佷繚鎶ゆā寮忓垏鎹㈢瓑絳?銆? 鑷繁鍔ㄦ墜鍐欐搷浣滅郴緇?浜? 浣滆咃細(xì)浼婃 涓婁竴鏈燂紝鎴戣榪頒簡(jiǎn)濡備綍鍦ㄨ蔣鐩樼殑鍚姩鎵囧尯鍐欎竴浜涗唬鐮侊紝鐒跺悗鍐嶄粠杞洏鍚姩鐨勮繃紼嬨傚埗浣滃ソ涓涓惎鍔ㄦ墖鍖猴紝鍦ㄥ垏鎹㈠埌淇濇姢妯″紡涔嬪墠錛屾垜浠繕搴旇鐭ラ亾濡備綍浣跨敤BIOS涓柇銆侭IOS涓柇鏄竴浜涚敱BIOS鎻愪緵鐨勩佷負(fù)浜?jiǎn)鋴涉搷浣溇p葷粺鐨勫垱寤烘洿瀹規(guī)槗鐨勪綆綰х▼搴忋傚湪鏈枃涓紝鎴戜滑灝嗗涔?fàn)澶勭悊BIOS鐨勪腑鏂? 涓轟粈涔堣鐢˙IOS BIOS 浼?xì)鎶婂惎鍔ㄦ墖鍖烘嫰偞濊嚦RAM涓紝騫朵笖鎵ц榪欎簺浠g爜銆傞櫎姝や箣澶栵紝BIOS榪樿鍋氬緢澶氬叾瀹冪殑浜嬫儏銆傚綋涓涓搷浣滅郴緇熷垰寮濮嬪惎鍔ㄦ椂錛岀郴緇熶腑騫舵病鏈夋樉鍗¢┍鍔ㄣ佽蔣鐩橀┍鍔ㄧ瓑浠諱綍椹卞姩紼嬪簭銆傚洜姝わ紝鍚姩鎵囧尯涓笉鍙兘鍖呭惈浠諱綍涓涓┍鍔ㄧ▼搴忥紝鎴戜滑瑕侀噰鍙栧叾瀹冪殑閫斿緞銆傝繖涓椂鍊欙紝BIOS灝卞彲浠ュ府鍔╂垜浠簡(jiǎn)銆侭IOS涓寘鍚湁鍚勭鍙互浣跨敤鐨勭▼搴忥紝鍖呮嫭媯(gè)嫻嬪畨瑁呯殑璁懼銆佹帶鍒舵墦鍗版満銆佽綆楀唴瀛樺ぇ灝忕瓑鐢ㄤ簬鍚勭鐩殑鐨勭▼搴忋傝繖浜涚▼搴忓氨鏄墍璇寸殑BIOS涓柇銆? 濡備綍璋冪敤BIOS涓柇 鍦ㄤ竴鑸殑紼嬪簭璁捐璇█涓紝鍑芥暟鐨勮皟鐢ㄦ槸涓浠墮潪甯稿鏄撶殑浜嬫儏銆傛瘮濡傚湪C璇█涓紝濡傛灉鏈変竴涓悕涓篸isplay鐨勭▼搴忥紝瀹冨甫鏈変袱涓弬鏁幫紝鍏朵腑鍙傛暟 noofchar琛ㄧず鏄劇ず鐨勫瓧絎︽暟錛屽弬鏁癮ttr琛ㄧず鏄劇ず瀛楃鐨勫睘鎬с傞偅涔堣璋冪敤瀹冿紝鍙渶緇欏嚭紼嬪簭鐨勫悕縐板嵆鍙傚浜庝腑鏂殑璋冪敤錛屾垜浠嬌鐢ㄧ殑鏄眹緙栬璦涓殑 int鎸囦護(hù)銆? 姣斿錛屽湪C璇█涓鏄劇ず涓浜涗笢瑗挎椂錛屼嬌鐢ㄧ殑鎸囦護(hù)濡備笅鎵紺猴細(xì) display(nofchar錛宎ttr)錛? 鑰屼嬌鐢˙IOS鏃訛紝瑕佸疄鐜扮浉鍚屽姛鑳戒嬌鐢ㄧ殑鎸囦護(hù)濡備笅錛? int 0x10 濡備綍浼犻掑弬鏁? 鍦ㄨ皟鐢˙IOS涓柇涔嬪墠錛屾垜浠渶瑕佸厛寰瀵勫瓨鍣ㄤ腑閫佷竴浜涚壒瀹氱殑鍊箋傚亣璁捐浣跨敤BIOS鐨勪腑鏂?3h錛岃涓柇鐨勫姛鑳芥槸鎶婃暟鎹粠杞洏浼犻佽嚦鍐呭瓨涔嬩腑銆傚湪璋冪敤璇ヤ腑鏂箣鍓嶏紝瑕佸厛鎸囧畾鎷瘋礉鏁版嵁鐨勬鍦板潃錛屾寚瀹氶┍鍔ㄥ櫒鍙楓佺閬撳彿銆佹墖鍖哄彿錛屼互鍙?qiáng)瑕佷紶閫佺殑鎵囧尯鏁扮瓑絳夈傜劧鍚庯紝灝辮寰鐩稿簲鐨勫瘎瀛樺櫒閫佸叆鐩稿簲鐨勫箋傚湪榪涜涓嬮潰鐨勬楠ゅ墠錛岃鑰呮湁蹇呰瀵硅繖涓鐐規(guī)湁姣旇緝鏄庣‘鍦拌璇嗐? 姝ゅ錛屼竴涓瘮杈冮噸瑕佺殑浜嬪疄鏄悓涓涓腑鏂線寰鍙互瀹炵幇鍚勭涓嶅悓鐨勫姛鑳姐備腑鏂墍瀹炵幇鐨勭‘鍒囧姛鑳藉彇鍐充簬鎵閫夋嫨鐨勫姛鑳藉彿錛屽姛鑳藉彿涓鑸兘瀛樺湪ah瀵勫瓨鍣ㄤ箣涓傛瘮濡備腑鏂?3h鍙互鐢ㄤ簬璇葷鐩樸佸啓紓佺洏絳夊姛鑳斤紝濡傛灉鎶?閫佸叆ah瀵勫瓨鍣ㄤ腑錛岄偅涔堜腑鏂夋嫨鐨勫姛鑳藉氨鏄啓紓佺洏錛涘鏋滄妸2閫佸叆ah瀵勫瓨鍣ㄤ腑錛岄夋嫨鐨勫姛鑳藉垯鏄紓佺洏絳夈? 鎴戜滑瑕佸仛鐨勪簨鎯? 榪欐鎴戜滑鐨勬簮浠g爜鐢變袱涓眹緙栬璦紼嬪簭鍜屼竴涓狢紼嬪簭緇勬垚銆傜涓涓眹緙栨枃浠舵槸寮曞鎵囧尯鐨勪唬鐮併傚湪寮曞鎵囧尯涓紝鎴戜滑鍐欑殑浠g爜鏄鎶婅蔣鐩樹腑絎簩鎵囧尯鎷瘋礉鑷沖唴瀛樻鐨?x500澶?鍦板潃鏄?x5000錛屽嵆鍋忕Щ鍦板潃涓?)銆傝繖鏃舵垜浠渶瑕佷嬌鐢˙IOS鐨勪腑鏂?3h銆傝繖鏃跺惎鍔ㄦ墖鍖虹殑浠g爜灝變細(xì)鎶婃帶鍒舵潈杞Щ鑷?x500澶勩傚湪絎簩涓眹緙栨枃浠朵腑錛屼唬鐮佷細(xì)浣跨敤BIOS涓柇 10h鍦ㄥ睆騫曚笂鏄劇ず涓涓俊鎭侰紼嬪簭瀹炵幇鐨勫姛鑳藉垯鏄妸鍙墽琛岀殑鏂囦歡1鎷瘋礉鑷沖惎鍔ㄦ墖鍖猴紝鎶婂彲鎵ц鐨勬枃浠?鎷瘋礉鑷寵蔣鐩樼殑絎簩鎵囧尯銆? 鍚姩鎵囧尯浠g爜 浣跨敤涓柇13h錛屽惎鍔ㄦ墖鍖烘妸杞洏絎簩鎵囧尯閲岀殑鍐呭鍔犺澆鑷沖唴瀛樼殑0x5000澶?孌靛湴鍧涓?x500)銆備笅闈㈢殑浠g爜鏄敤浜庡疄鐜拌繖涓鐩殑鐨勪唬鐮侊紝灝嗗叾淇濆瓨鑷蟲枃浠秙bect.s涓? LOC1=0x500 entry start start: mov ax,#LOC1 mov es,ax mov bx,#0 mov dl,#0 mov dh,#0 mov ch,#0 mov cl,#2 mov al,#1 mov ah,#2 int 0x13 jmpi 0,#LOC1 涓婇潰浠g爜絎竴琛岀被浼間簬涓涓畯銆傛帴涓嬪幓鐨勪袱琛屽垯鏄妸鍊?x500鍔犺澆鑷砮s瀵勫瓨鍣ㄤ腑錛岃繖鏄蔣鐩樹笂絎簩鎵囧尯浠g爜灝嗘嫹璐濆埌鐨勫湴鏂?絎竴鎵囧尯鏄惎鍔ㄦ墖鍖?銆傝繖鏃訛紝鎶婃鍐呯殑鍋忕Щ璁句負(fù)0銆? 鎺ヤ笅鏉ユ妸椹卞姩鍣ㄥ彿閫佸叆dl瀵勫瓨鍣ㄤ腑錛屽叾涓澶村彿閫佸叆dl瀵勫瓨鍣ㄤ腑錛岀閬撳彿閫佸叆ch瀵勫瓨鍣ㄤ腑錛屾墖鍖哄彿閫佸叆cl瀵勫瓨鍣ㄤ腑錛屾墖鍖烘暟閫佸叆al瀵勫瓨鍣ㄤ箣涓傛垜浠兂瑕佸疄鐜扮殑鍔熻兘鏄妸鎵囧尯2銆佺閬撳彿涓?銆侀┍鍔ㄥ櫒鍙蜂負(fù)0鐨勫唴瀹歸佽嚦孌靛湴鍧0x500澶勩傛墍鏈夎繖浜涘弬鏁伴兘鍜?.44MB鐨勮蔣鐩樼浉瀵瑰簲銆? 鎶?閫佸叆ah瀵勫瓨鍣ㄤ腑錛屾槸閫夋嫨浜?jiǎn)鐢变腑鏂?3h鎻愪緵鐨勭浉搴斿姛鑳斤紝鍗沖疄鐜頒粠杞┍杞Щ鏁版嵁鐨勫姛鑳姐? 鏈鍚庤皟鐢ㄤ腑鏂?3h錛屽茍涓旇漿鑷沖亸縐諱負(fù)0鐨勬鍦板潃0x500澶勩? 絎簩涓墖鍖虹殑浠g爜 絎簩涓墖鍖轟腑鐨勪唬鐮佸涓嬫墍紺?鎶婅繖浜涗唬鐮佷繚瀛樿嚦鏂囦歡sbect2.s涔嬩腑)錛? entry start start: mov ah,#0x03 xor bh,bh int 0x10 mov cx,#26 mov bx,#0x0007 mov bp,#mymsg mov ax,#0x1301 int 0x10 loop1: jmp loop1 mymsg: .byte 13,10 .ascii "Operating System is Loading......" 涓婇潰浠g爜灝嗚鍔犺澆鑷蟲鍦板潃涓?x500澶勶紝騫朵笖琚墽琛屻傚湪榪欐浠g爜涓紝浣跨敤浜?jiǎn)涓?0h鏉ヨ幏鍙栫洰鍓嶇殑鍏夋爣浣嶇疆錛岀劧鍚庢樉紺轟俊鎭? 浠庣3琛屽埌絎?琛岀敤浜庡緱鍒扮洰鍓嶅厜鏍囩殑浣嶇疆錛屽湪姝や腑鏂?0h閫夌敤鐨勬槸鍔熻兘3銆傜劧鍚庯紝娓呴櫎浜?jiǎn)bh瀵勫瓨鍣ㄧ殑鍐呭錛屽茍鎶婂瓧絎︿覆閫佽嚦ch瀵勫瓨鍣ㄤ腑銆傚湪bx涓紝鎴戜滑閫佸叆浜?jiǎn)椤电爜鍙?qiáng)鏄劇ず鐨勫睘鎬с傛澶勶紝鎴戜滑鎯寵鍦ㄩ粦鑳屾櫙涓婃樉紺虹櫧鑹茬殑瀛楃銆傜劧鍚庯紝鎶婅鏄劇ず瀛楃鐨勫湴鍧閫佸埌bp涔嬩腑錛屼俊鎭敱涓や釜瀛楄妭緇勬垚錛屽叾鍊煎垎鍒負(fù)13鐨?0錛屽畠浠垎鍒搴斿洖杞﹀拰LF(鎹㈣)鐨凙SC鈪″箋傛帴涓嬫潵鏄竴涓敱29涓瓧絎︾粍鎴愮殑涓詫紱鍦ㄤ笅闈㈠疄鐜扮殑鍔熻兘鏄緭鍑哄瓧絎︿覆鐒跺悗縐誨姩鍏夋爣錛涙渶鍚庢槸璋冪敤涓柇錛岀劧鍚庤繘鍏ュ驚鐜? C紼嬪簭浠g爜 C紼嬪簭鐨勬簮浠g爜濡備笅鎵紺猴紝灝嗗叾瀛樺偍涓簑rite.c鏂囦歡銆? #include /* unistd.h needs this */ #include /* contains read/write */ #include int main() { char boot_buf[512]; int floppy_desc, file_desc; file_desc = open("./bsect", O_RDONLY); read(file_desc, boot_buf, 510); close(file_desc); boot_buf[510] = 0x55; boot_buf[511] = 0xaa; floppy_desc = open("/dev/fd0", O_RDWR); lseek(floppy_desc, 0, SEEK_SET); write(floppy_desc, boot_buf, 512); file_desc = open("./sect2", O_RDONLY); read(file_desc, boot_buf, 512); close(file_desc); lseek(floppy_desc, 512, SEEK_SET); write(floppy_desc, boot_buf, 512); close(floppy_desc); } 鍦ㄤ笂涓鏈熶腑錛屾垜鏇劇粡浠嬬粛榪囧浣曟搷浣滆兘鍚姩鐨勮蔣鐩樸傜幇鍦ㄨ繖涓涓繃紼嬬◢寰湁鐐逛笉鍚岋紝棣栧厛鎶婄敱bsect.s緙栬瘧鍑烘潵鐨勫彲鎵ц鏂囦歡bsect鎷瘋礉鑷寵蔣鐩樼殑鍚姩鎵囧尯銆傜劧鍚庡啀鎶婄敱sect2.s浜х敓鐨勫彲鎵ц鏂囦歡sect2鎷瘋礉鑷寵蔣鐩樼殑絎簩涓墖鍖恒? 鎶婁笂榪版枃浠剁疆浜庡悓涓鐩綍涔嬩笅錛岀劧鍚庡垎鍒鍏惰繘琛岀紪璇戯紝鏂規(guī)硶濡備笅鎵紺猴細(xì) as86 bsect.s -o bsect.o ld86 -d bsect.o -o bsect 瀵箂ect2.s鏂囦歡閲嶅浠ヤ笂鐨勬搷浣滐紝寰楀嚭鍙墽琛屾枃浠秙ect2銆傜紪璇憌rite.c錛屾彃鍏ヨ蔣鐩樺悗鎵цwrite鏂囦歡錛屽懡浠ゅ涓嬫墍紺猴細(xì) cc write.c -o write ./write 涓嬩竴姝ユ垜浠鍋氱殑浜嬫儏 浠庤蔣鐩樺惎鍔ㄤ互鍚庯紝鍙互鐪嬪埌鏄劇ず鍑烘潵鐨勫瓧絎︿覆銆傝繖鏄嬌鐢ㄤ簡(jiǎn)BIOS涓柇鏉ュ畬鎴愮殑銆備笅涓鏈熻鍋氱殑浜嬫儏鏄湪榪欎釜鎿嶄綔緋葷粺涓疄鐜板疄妯″紡鍚戜繚鎶ゆā寮忕殑杞崲銆? 鑷繁鍔ㄦ墜鍐欐搷浣滅郴緇?涓? 浣滆咃細(xì)浼婃 鍦ㄤ笂涓ゆ湡涓紙鑷繁鍔ㄦ墜鍐欐搷浣滅郴緇?錛?錛夛紝鎴戝悜澶у璁茶堪浜?jiǎn)濡備綍鋴社敤Linux 鎻愪緵鐨勫紑鍙戝伐鍏峰湪杞洏鐨勫惎鍔ㄦ墖鍖哄啓涓浜涗唬鐮侊紝浠ュ強(qiáng)濡備綍璋冪敤BIOS鐨勯棶棰樸傜幇鍦紝榪欎釜鎿嶄綔緋葷粺宸茬粡瓚婃潵瓚婃帴榪戝綋騫碙inus Torvalds鐨勯偅涓叿鏈?鍘嗗彶鎰忎箟"鐨凩inux鍐呮牳浜?jiǎn)銆傚洜姝わ紝瑕侀┈涓婃妸榪欎釜緋葷粺鍒囨崲鍒頒繚鎶ゆā寮忎箣涓嬨? 浠涔堟槸淇濇姢妯″紡 鑷粠1969騫存帹鍑虹涓涓井澶勭悊鍣ㄤ互鏉ワ紝Intel澶勭悊鍣ㄥ氨鍦ㄤ笉鏂湴鏇存柊鎹唬錛屼粠8086銆?088銆?0286錛屽埌80386銆?0486銆佸鑵俱佸鑵?鈪°佸鑵?絳夛紝鍏朵綋緋葷粨鏋勪篃鍦ㄤ笉鏂彉鍖栥?0386浠ュ悗錛屾彁渚涗簡(jiǎn)涓浜涙柊鐨勫姛鑳斤紝寮ヨˉ浜?086鐨勪竴浜涚己闄楓傝繖鍏朵腑鍖呮嫭鍐呭瓨淇濇姢銆佸浠誨姟鍙?qiáng)鋴社?40KB浠ヤ笂鐨勫唴瀛樼瓑錛屽茍浠嶇劧淇濇寔鍜?086瀹舵棌鐨勫吋瀹規(guī)с備篃灝辨槸璇?0386浠嶇劧鍏峰浜?086鍜?0286鐨勬墍鏈夊姛鑳斤紝浣嗘槸鍦ㄥ姛鑳戒笂鏈変簡(jiǎn)寰堝ぇ鐨勫寮恒傛棭鏈熺殑澶勭悊鍣ㄦ槸宸ヤ綔鍦ㄥ疄妯″紡涔嬩笅鐨勶紝80286浠ュ悗寮曞叆浜?jiǎn)淇濇姢妯″紡锛岃屽湪80386浠ュ悗淇濇姢妯″紡鍙堣繘琛屼簡(jiǎn)寰堝ぇ鐨勬敼榪涖傚湪80386涓紝淇濇姢妯″紡涓虹▼搴忓憳鎻愪緵浜?jiǎn)鏇村ソ鐨勪繚鎶ゅQ屾彁渚涗簡(jiǎn)鏇村鐨勫唴瀛樸備簨瀹炰笂錛屼繚鎶ゆā寮忕殑鐩殑涓嶆槸涓轟簡(jiǎn)淇濇姢紼嬪簭錛岃屾槸瑕佷繚鎶ょ▼搴忎互澶栫殑鎵鏈夌▼搴忥紙鍖呮嫭鎿嶄綔緋葷粺錛夈? 綆璦涔嬶紝淇濇姢妯″紡鏄鐞嗗櫒鐨勪竴縐嶆渶鑷劧鐨勬ā寮忋傚湪榪欑妯″紡涓嬶紝澶勭悊鍣ㄧ殑鎵鏈夋寚浠ゅ強(qiáng)浣撶郴緇撴瀯鐨勬墍鏈夌壒鑹查兘鏄彲鐢ㄧ殑錛屽茍涓旇兘澶熻揪鍒版渶楂樼殑鎬ц兘銆? 淇濇姢妯″紡鍜屽疄妯″紡 浠庤〃闈笂鐪嬶紝淇濇姢妯″紡鍜屽疄妯″紡騫舵病鏈夊お澶х殑鍖哄埆錛屼簩鑰呴兘浣跨敤浜?jiǎn)鍐呭瓨娈点佷腑鏂拰璁懼椹卞姩鏉ュ鐞嗙‖浠訛紝浣嗕簩鑰呮湁寰堝涓嶅悓涔嬪銆傛垜浠煡閬擄紝鍦ㄥ疄妯″紡涓唴瀛樿鍒掑垎鎴愭錛屾瘡涓鐨勫ぇ灝忎負(fù)64KB錛岃岃繖鏍風(fēng)殑孌靛湴鍧鍙互鐢?6浣嶆潵琛ㄧず銆傚唴瀛樻鐨勫鐞嗘槸閫氳繃鍜屾瀵勫瓨鍣ㄧ浉鍏寵仈鐨勫唴閮ㄦ満鍒舵潵澶勭悊鐨勶紝榪欎簺孌靛瘎瀛樺櫒錛圕S銆丏S銆?SS鍜孍S錛夌殑鍐呭褰㈡垚浜?jiǎn)鐗╃悊鍦板潃鐨勪竴閮ㄥ垎銆傚叿浣撴潵璇達(dá)紝鏈緇堢殑鐗╃悊鍦板潃鏄敱16浣嶇殑孌靛湴鍧鍜?6浣嶇殑孌靛唴鍋忕Щ鍦板潃緇勬垚鐨勩傜敤鍏紡琛ㄧず涓猴細(xì) 鐗╃悊鍦板潃=宸︾Щ4浣嶇殑孌靛湴鍧+鍋忕Щ鍦板潃銆? 鍦ㄤ繚鎶ゆā寮忎笅錛屾鏄氳繃涓緋誨垪琚О涔嬩負(fù)"鎻忚堪絎﹁〃"鐨勮〃鎵瀹氫箟鐨勩傛瀵勫瓨鍣ㄥ瓨鍌ㄧ殑鏄寚鍚戣繖浜涜〃鐨勬寚閽堛傜敤浜庡畾涔夊唴瀛樻鐨勮〃鏈変袱縐嶏細(xì)鍏ㄥ眬鎻忚堪絎﹁〃(GDT)鍜屽眬閮ㄦ弿榪扮琛?LDT)銆侴DT鏄竴涓鎻忚堪絎︽暟緇勶紝鍏朵腑鍖呭惈鎵鏈夊簲鐢ㄧ▼搴忛兘鍙互浣跨敤鐨勫熀鏈弿榪扮銆傚湪瀹炴ā寮忎腑錛屾闀挎槸鍥哄畾鐨?涓?4KB)錛岃屽湪淇濇姢妯″紡涓紝孌甸暱鏄彲鍙樼殑錛屽叾鏈澶у彲杈?GB銆侺DT涔熸槸孌墊弿榪扮鐨勪竴涓暟緇勩備笌GDT涓嶅悓錛孡DT鏄竴涓錛屽叾涓瓨鏀劇殑鏄眬閮ㄧ殑銆佷笉闇瑕佸叏灞鍏變韓鐨勬鎻忚堪絎︺傛瘡涓涓搷浣滅郴緇熼兘蹇呴』瀹氫箟涓涓狦DT錛岃屾瘡涓涓鍦ㄨ繍琛岀殑浠誨姟閮戒細(xì)鏈変竴涓浉搴旂殑LDT銆傛瘡涓涓弿榪扮鐨勯暱搴︽槸8涓瓧鑺傦紝鏍煎紡濡傚浘3鎵紺恒傚綋孌靛瘎瀛樺櫒琚姞杞界殑鏃跺欙紝孌靛熀鍦板潃灝變細(xì)浠庣浉搴旂殑琛ㄥ叆鍙h幏寰椼傛弿榪扮鐨勫唴瀹逛細(xì)琚瓨鍌ㄥ湪涓涓▼搴忓憳涓嶅彲瑙佺殑褰卞儚瀵勫瓨鍣?shadow register)涔嬩腑錛屼互渚夸笅涓嬈″悓涓涓鍙互浣跨敤璇ヤ俊鎭屼笉鐢ㄦ瘡嬈¢兘鍒拌〃涓彁鍙栥傜墿鐞嗗湴鍧鐢?6浣嶆垨鑰?2浣嶇殑鍋忕Щ鍔犱笂褰卞儚瀵勫瓨鍣ㄤ腑鐨勫熀鍧緇勬垚銆傚疄妯″紡鍜屼繚鎶ゆā寮忕殑涓嶅悓鍙互浠庡浘1鍜屽浘2涓緢娓呮鍦扮湅鍑烘潵銆? 鍥? 瀹炴ā寮忕殑瀵誨潃 鍥? 淇濇姢妯″紡涓嬬殑瀵誨潃 鍥? 孌墊弿榪頒刊鐨勬牸寮? 姝ゅ錛岃繕鏈変竴涓腑鏂弿榪扮琛?IDT)銆傝繖浜涗腑鏂弿榪扮浼?xì)鍛婅瘔澶勭悊鍣ㄥ埌閭i噷鍙互鎵惧堫C腑鏂鐞嗙▼搴忋傚拰瀹炴ā寮忎竴鏍鳳紝姣忎竴涓腑鏂兘鏈変竴涓叆鍙o紝浣嗘槸榪欎簺鍏ュ彛鐨勬牸寮忓嵈瀹屽叏涓嶅悓銆傚洜涓哄湪鍒囨崲鍒頒繚鎶ゆā寮忕殑榪囩▼涓病鏈変嬌鐢ㄥ埌IDT錛屾墍浠ュ湪姝ゅ氨涓嶅鍋氫粙緇嶄簡(jiǎn)銆? 榪涘叆淇濇姢妯″紡 80386 鏈?涓?2浣嶆帶鍒跺瘎瀛樺櫒錛屽悕瀛楀垎鍒負(fù)CR0銆丆R1銆丆R2鍜孋R3銆侰R1鏄繚鐣欏湪鏈潵澶勭悊鍣ㄤ腑浣跨敤鐨勶紝鍦?0386涓病鏈夊畾涔夈侰R0鍖呭惈緋葷粺鐨勬帶鍒舵爣蹇楋紝鐢ㄤ簬鎺у埗澶勭悊鍣ㄧ殑鎿嶄綔妯″紡鍜岀姸鎬併侰R2鍜孋R3鏄敤浜庢帶鍒跺垎欏墊満鍒剁殑銆傚湪姝わ紝鎴戜滑鍏蟲敞鐨勬槸CR0瀵勫瓨鍣ㄧ殑PE浣嶆帶鍒訛紝瀹冭礋璐e疄妯″紡鍜屼繚鎶ゆā寮忎箣闂寸殑鍒囨崲銆傚綋P(yáng)E=1鏃訛紝璇存槑澶勭悊鍣ㄨ繍琛屼簬淇濇姢妯″紡涔嬩笅錛屽叾閲囩敤鐨勬鏈哄埗鍜屽墠闈㈡墍榪扮殑鐩稿簲鍐呭瀵瑰簲銆傚鏋淧E=0錛岄偅涔堝鐞嗗櫒灝卞伐浣滃湪瀹炴ā寮忎箣涓嬨? 鍒囨崲鍒頒繚鎶ゆā寮忥紝瀹為檯灝辨槸鎶奝E浣嶇疆涓?銆備負(fù)浜?jiǎn)鎶娋p葷粺鍒囨崲鍒頒繚鎶ゆā寮忥紝榪樿鍋氫竴浜涘叾瀹冪殑浜嬫儏銆傜▼搴忓繀欏昏瀵圭郴緇熺殑孌靛瘎瀛樺櫒鍜屾帶鍒跺瘎瀛樺櫒榪涜鍒濆鍖栥傛妸PE浣嶇疆1鍚庯紝榪樿鎵ц璺寵漿鎸囦護(hù)銆傝繃紼嬬畝榪板涓嬶細(xì) 1.鍒涘緩GDT琛? 2.閫氳繃緗甈E浣嶄負(fù)1榪涘叆淇濇姢妯″紡; 3.鎵ц璺寵漿浠ユ竻闄ゅ湪瀹炴ā寮忎笅璇誨彇鐨勪換浣曟寚浠ゃ? 涓嬮潰浣跨敤浠g爜鏉ュ疄鐜拌繖涓垏鎹㈣繃紼嬨? 闇瑕佺殑涓滆タ 鈼?涓寮犵┖鐧借蔣鐩? 鈼?NASM緙栬瘧鍣? 涓嬮潰鏄暣涓▼搴忕殑婧愪唬鐮侊細(xì) org 0x07c00; 璧峰鍦板潃鏄?000:7c00 jmp short begin_boot ; 璺寵繃鍏跺畠鐨勬暟鎹紝璺寵漿鍒板紩瀵肩▼搴忕殑寮濮嬪 bootmesg db "Our OS boot sector loading ......" pm_mesg db "Switching to protected mode ...." dw 512 ; 姣忎竴鎵囧尯鐨勫瓧鑺傛暟 db 1 ; 姣忎竴綈囩殑鎵囧尯鏁? dw 1 ; 淇濈暀鐨勬墖鍖哄彿 db 2 dw 0x00e0 dw 0x0b40 db 0x0f0 dw 9 dw 18 dw 2 ; 璇誨啓鎵囧尯鍙? dw 0 ; 闅愯棌鎵囧尯鍙? print_mesg : mov ah,0x13 ; 浣跨敤涓柇10h鐨勫姛鑳?3錛屽湪灞忓箷涓婂啓涓涓瓧絎︿覆 mov al,0x00 ; 鍐沖畾璋冪敤鍑芥暟鍚庡厜鏍囨墍澶勭殑浣嶇疆 mov bx,0x0007 ; 璁劇疆鏄劇ず灞炴? mov cx,0x20 ; 鍦ㄦ瀛楃涓查暱搴︿負(fù)32 mov dx,0x0000 ; 鍏夋爣鐨勮搗濮嬭鍜屽垪 int 0x10 ; 璋冪敤BIOS鐨勪腑鏂?0h ret ; 榪斿洖璋冪敤紼嬪簭 get_key : mov ah,0x00 int 0x16 ; Get_key浣跨敤涓柇16h鐨勫姛鑳?錛岃鍙栦笅涓涓瓧絎? ret clrscr : mov ax,0x0600 ; 浣跨敤涓柇10h鐨勫姛鑳?錛屽疄鐜板嵎灞忥紝濡傛灉al=0鍒欐竻灞? mov cx,0x0000 ; 娓呭睆 mov dx,0x174f ; 鍗峰睆鑷?3錛?9 mov bh,0 ; 浣跨敤棰滆壊0鏉ュ~鍏? int 0x10 ; 璋冪敤10h涓柇 ret begin_boot : call clrscr ; 鍏堟竻灞? mov bp,bootmesg ; 鎻愪緵涓插湴鍧 call print_mesg ; 杈撳嚭淇℃伅 call get_key ; 絳夊緟鐢ㄦ埛鎸変笅浠諱竴閿? bits 16 call clrscr ; 娓呭睆 mov ax,0xb800 ; 浣縢s鎸囧悜鏄劇ず鍐呭瓨 mov gs,ax ; 鍦ㄥ疄妯″紡涓嬫樉紺轟竴涓鑹茬殑A mov word [gs:0],0x641 ; 鏄劇ず call get_key ; 璋冪敤Get_key絳夊緟鐢ㄦ埛鎸変笅浠諱竴閿? mov bp,pm_mesg ; 璁劇疆涓叉寚閽? call print_mesg ; 璋冪敤print_mesg瀛愮▼搴? call get_key ; 絳夊緟鎸夐敭 call clrscr ; 娓呭睆 cli ; 鍏充腑鏂? lgdt[gdtr] ; 鍔犺澆GDT mov eax,cr0 or al,0x01 ; 璁劇疆淇濇姢妯″紡浣? mov cr0,eax ; 灝嗘洿鏀瑰悗鐨勫瓧閫佽嚦鎺у埗瀵勫瓨鍣ㄤ腑 jmp codesel:go_pm bits 32 go_pm : mov ax,datasel mov ds,ax ; 鍒濆鍖杁s鍜宔s錛屼嬌鍏舵寚鍚戞暟鎹 mov es,ax mov ax,videosel ; 鍒濆鍖杇s錛屼嬌鍏舵寚鍚戞樉紺哄唴瀛? mov gs,ax mov word [gs:0],0x741 ; 鍦ㄤ繚鎶ゆā寮忎笅鏄劇ず涓涓櫧鑹茬殑瀛楃A spin : jmp spin ; 寰幆 bits 16 gdtr : dw gdt_end-gdt-1 ; gdt鐨勯暱搴? dd gdt ; gdt鐨勭墿鐞嗗湴鍧 gdt nullsel equ $-gdt ; $鎸囧悜褰撳墠浣嶇疆錛屾墍浠ullsel = 0h gdt0 ; 絀烘弿榪扮 dd 0 dd 0 ; 鎵鏈夌殑孌墊弿榪扮閮芥槸64浣嶇殑 codesel equ $-gdt ; 榪欐槸8h涔熷氨鏄痝dt鐨勭浜屼釜鎻忚堪絎? code_gdt dw 0x0ffff ; 孌墊弿榪扮鐨勭晫闄愭槸4Gb dw 0x0000 db 0x00 db 0x09a db 0x0cf db 0x00 datasel equ $-gdt data_gdt dw 0x0ffff dw 0x0000 db 0x00 db 0x092 db 0x0cf db 0x00 videosel equ $-gdt dw 3999 dw 0x8000 ; 鍩哄潃鏄?xb8000 db 0x0b db 0x92 db 0x00 db 0x00 gdt_end times 510-($-$$) db 0 dw 0x0aa55 鎶婁笂闈㈢殑浠g爜瀛樺湪涓涓悕涓篴bc.asm鐨勬枃浠朵箣涓紝浣跨敤鍛戒護(hù)nasm abc.asm錛屽皢寰楀嚭涓涓悕涓篴bc鐨勬枃浠躲傜劧鍚庢彃鍏ヨ蔣鐩橈紝杈撳叆鍛戒護(hù)錛歞d if=abc of=/dev/fd0銆傝鍛戒護(hù)灝嗘妸鏂囦歡abc鍐欏叆鍒拌蔣鐩樼殑絎竴鎵囧尯涔嬩腑銆傜劧鍚庨噸鏂板惎鍔ㄧ郴緇燂紝灝變細(xì)鐪嬪埌濡備笅鐨勪俊鎭細(xì) *Our os booting................ * A (媯曡壊) * Switching to protected mode.... * A (鐧借壊) 瀵逛唬鐮佺殑瑙i噴 涓婇潰緇欏嚭浜?jiǎn)鎵鏈夌殑浠g爜錛屼笅闈㈡垜瀵逛笂榪頒唬鐮佸仛涓浜涜В閲娿? 鈼?浣跨敤鐨勫嚱鏁? 涓嬮潰鏄唬鐮佷腑涓浜涘嚱鏁扮殑璇存槑錛? print_mesg 璇ュ瓙紼嬪簭浣跨敤浜?jiǎn)BIOS涓柇10h鐨勫姛鑳?3h錛屽嵆鍚戝睆騫曞啓涓瀛楃涓層傚睘鎬ф帶鍒舵槸閫氳繃鍚戜竴浜涘瘎瀛樺櫒涓佸叆涓嶅悓鐨勫兼潵瀹炵幇鐨勩備腑鏂?0h鏄敤浜庡悇縐嶅瓧絎︿覆鎿嶄綔錛屾垜浠妸瀛愬姛鑳藉彿13h閫佸埌ah涓紝鐢ㄤ簬鎸囨槑瑕佹墦鍗頒竴涓瓧絎︿覆銆俛l瀵勫瓨鍣ㄤ腑鐨?璇存槑浜?jiǎn)鍏夋爣杩斿洖鐨勮捣濮嬩綅缃Q?琛ㄧず璋冪敤鍑芥暟鍚庡厜鏍囪繑鍥炲埌涓嬩竴琛岀殑琛岄銆傚鏋渁l涓?鍒欒〃紺哄厜鏍囦綅浜庢渶鍚庝竴涓瓧絎﹀銆? 鏄懼瓨琚垎鎴愪簡(jiǎn)鍑犻〉錛屽湪鍚屼竴鏃跺埢鍙兘鏄劇ず鍏朵腑鐨勪竴欏點(diǎn)俠h鎸囨槑鐨勬槸欏靛彿錛沚l鍒欐寚鏄庤鏄劇ず瀛楃鐨勯鑹詫紱cx鎸囨槑瑕佹樉紺哄瓧絎︿覆鐨勯暱搴︼紱dx鎸囨槑鍏夋爣鐨勪綅緗?鍗寵搗濮嬬殑琛屽拰鍒?銆傛墍鏈夌浉鍏沖瘎瀛樺櫒鍒濆鍖栧畬鎴愪互鍚庯紝灝卞彲浠ヨ皟鐢˙IOS涓柇10h浜?jiǎn)銆? get_key 浣跨敤涓柇16h鐨勫瓙鍔熻兘00h錛屼粠灞忓箷寰楀埌涓嬩竴涓瓧絎︺? clrscr 璇ュ嚱鏁頒嬌鐢ㄤ簡(jiǎn)涓柇10h鐨勫彟澶栦竴涓瓙鍔熻兘06h錛岀敤浜庤緭鍑哄紑濮嬪墠娓呭睆銆傚垵濮嬪寲鏃剁粰al涓佸叆0銆傚瘎瀛樺櫒cx鍜宒x鎸囨槑瑕佹竻灞忕殑灞忓箷鑼冨洿錛屽湪鏈緥涓槸鏁翠釜灞忓箷銆傚瘎瀛樺櫒bh鎸囨槑灞忓箷濉厖鐨勯鑹詫紝鍦ㄦ湰渚嬩腑鏄粦鑹層? 鈼?鍏跺畠鍐呭 紼嬪簭涓寮濮嬫槸涓鏉$煭璺寵漿鎸囦護(hù)錛岃煩鍒癰egin_boot澶勩傚湪瀹炴ā寮忎笅錛屽湪姝ゆ墦鍗頒竴涓鑹茬殑"A"錛屽茍涓旇緗竴涓狦DT銆傚垏鎹㈠埌淇濇姢妯″紡錛屽茍涓旀墦鍗頒竴涓櫧鑹茬殑"A"銆傝繖涓ょ妯″紡浣跨敤鐨勯兘鏄嚜宸辯殑瀵誨潃鏂規(guī)硶銆? 鍦ㄥ疄妯″紡涓嬶紝浣跨敤孌靛瘎瀛樺櫒gs鎸囩ず鏄懼瓨浣嶇疆錛屾垜浠嬌鐢ㄧ殑鏄疌GA鏄懼崱(榛樿鍩哄潃鏄?xb8000)銆傚湪浠g爜涓槸涓嶆槸婕忎簡(jiǎn)涓涓?鍛紵娌℃湁錛屽洜涓哄疄妯″紡涓嬩細(xì)鎻愪緵涓涓檮鍔犵殑0銆傝繖縐嶆柟寮忎篃琚?0386緇ф壙涓嬫潵浜?jiǎn)銆侫鐨凙SC鈪℃槸0x41錛?x06鎸囨槑浜?jiǎn)闇瑕佷竴涓鑹茬殑瀛楃銆傝鏄劇ず浼?xì)涓鐩存寔緇洿鑷蟲寜涓嬩換鎰忛敭銆備笅闈㈣鍦ㄥ睆騫曚笂鏄劇ず涓鍙ヨ瘽錛屽憡璇変嬌鐢ㄨ呬笅闈㈤┈涓婅榪涘叆淇濇姢妯″紡浜?jiǎn)銆? 鍚姩鍒頒繚鎶ゆā寮忥紝鍦ㄨ繘琛屽垏鎹㈡椂涓嶅笇鏈涙鏃舵湁涓柇鐨勫獎(jiǎng)鍝嶏紝鏁呰鍏抽棴鎵鏈夌殑涓柇(浣跨敤cli鏉ュ疄鐜?銆傜劧鍚庡GDT鍒濆鍖栥傚湪鏁翠釜鍒囨崲榪囩▼涓紝瀵?涓弿榪扮榪涜浜?jiǎn)鍒濆鍖栥傝繖浜涙弿榪扮瀵逛唬鐮佹(code_gdt)銆佹暟鎹拰鍫嗘爤孌?(data_gdt)錛屼互鍙?qiáng)湄?fù)浜?jiǎn)璁块棶鏄惧瓨鑰屽鏄劇ず孌佃繘琛屽垵濮嬪寲銆傛澶栵紝榪樹細(xì)瀵逛竴涓┖鎻忚堪絎﹁繘琛屽垵濮嬪寲銆? GDT鐨勫熀鍧瑕佸姞杞借嚦GDTR 緋葷粺瀵勫瓨鍣ㄤ箣涓俫dtr孌電殑絎竴涓瓧鍔犺澆鐨勬槸GDT鐨勫ぇ灝忥紝鍦ㄤ笅涓涓弻瀛椾腑鍒欏姞杞界殑鏄熀鍧銆傜劧鍚庯紝lgdt鎸囦護(hù)鎶婃妸gdt孌靛姞杞借嚦GDTR瀵勫瓨鍣ㄤ腑銆傜幇鍦ㄥ凡緇忓仛濂戒簡(jiǎn)鍒囨崲鍒頒繚鎶ゆā寮忓墠鐨勬墍鏈夊噯澶囥傛渶鍚庝竴浠朵簨鎯呭氨鏄妸CR0瀵勫瓨鍣ㄧ殑PE浣嶇疆1銆備笉榪囷紝鍗充嬌榪欐牱榪樻病鏈夊浜庝繚鎶ゆā寮忕姸鎬佷箣涓嬨? 璁劇疆浜?jiǎn)PE浣嶄互鍚庯紝榪橀渶瑕侀氳繃鎵цJMP鎸囦護(hù)鏉ユ竻闄ゅ鐞嗗櫒鎸囦護(hù)棰勫彇闃熷垪銆傚湪80386涓紝浣跨敤鎸囦護(hù)鍓嶆繪槸鍏堝皢鍏朵粠鍐呭瓨涓彇鍑猴紝騫朵笖榪涜瑙g爜鍜屽鍧銆傜劧鑰岋紝褰撹繘鍏ヤ繚鎶ゆā寮忎互鍚庯紝棰勫彇鎸囦護(hù)淇℃伅(瀹冭繕澶勪簬瀹炲湴鍧妯″紡)灝辨棤鏁堜簡(jiǎn)銆備嬌鐢↗MP鎸囦護(hù)鐨勭洰鐨勫氨鏄己榪鐞嗗櫒鏀懼純鏃犳晥鐨勪俊鎭? 鐜板湪錛屽凡緇忓湪淇濇姢妯″紡涓嬩簡(jiǎn)銆傞偅涔堬紝濡備綍媯(gè)嫻嬫槸鍦ㄤ繚鎶ゆā寮忕姸鎬佷箣涓嬪憿錛熻鎴戜滑鏉ョ湅涓鐪嬪睆騫曚笂榪欎釜鐧借壊鐨勫瓧姣岮銆傚湪榪欓噷錛屼嬌鐢ㄤ簡(jiǎn)鏁版嵁孌甸夋嫨絎?datase1)瀵規(guī)暟鎹鍜岄檮鍔犳榪涜浜?jiǎn)鍒濆鍖栧Q屼嬌鐢ㄦ樉紺烘閫夋嫨絎?videose1)瀵筭s榪涜浜?jiǎn)鍒濆鍖栥傚憡紺虹殑瀛楃"A"鍏禔SC鈪″煎拰灞炴т綅浜嶽gs:0000]澶勶紝涔熷氨鏄?b8000:0000澶勩傚驚鐜鍙ヤ嬌寰楄瀛楃涓鐩村湪灞忓箷涓婃樉紺猴紝鐩磋嚦閲嶆柊鍚姩緋葷粺銆?img src ="http://m.shnenglu.com/mydriverc/aggbug/40627.html" width = "1" height = "1" /> ]]> 寮鍙戣嚜宸辯殑鎿嶄綔緋葷粺寮曞紼嬪簭 杞?/title> http://m.shnenglu.com/mydriverc/archive/2008/01/07/40622.html鏃呴?/dc:creator>鏃呴?/author>Mon, 07 Jan 2008 08:11:00 GMT http://m.shnenglu.com/mydriverc/archive/2008/01/07/40622.html http://m.shnenglu.com/mydriverc/comments/40622.html http://m.shnenglu.com/mydriverc/archive/2008/01/07/40622.html#Feedback 0 http://m.shnenglu.com/mydriverc/comments/commentRss/40622.html http://m.shnenglu.com/mydriverc/services/trackbacks/40622.html 寮鍙戣嚜宸辯殑鎿嶄綔緋葷粺寮曞紼嬪簭
銆銆褰撲綘鎵撳紑璁$畻鏈烘椂鍙戠敓浜?jiǎn)浠涔堬紵 銆銆1.鐢墊簮鎵撳紑錛?.BIOS寮濮嬫墽琛岋紱3.寮曞紼嬪簭寮濮嬫墽琛屻? 銆銆寮曞紼嬪簭鐨勮瀹氾細(xì)浣犺鏈変竴涓櫘閫氱殑浜岃繘鍒舵枃浠訛紙COM 鏍煎紡錛夛紱澶у皬鏄?12涓瓧鑺傦紱鏈鍚庝袱涓瓧鑺備竴瀹氭槸0AA55h錛涘畠鑳借杞藉叆鍒板唴瀛樺湴鍧0x7C00銆? 銆銆宸ュ叿錛? 銆銆NASM鈥斺旀槸涓涓厤璐圭殑姹囩紪宸ュ叿錛堟湁DOS/windows/Linux涓夌鐗堟湰錛? 銆銆PARTCOPY2.0鈥斺擠OS涓嬪彲鑷敱寰紓佺洏鎷瘋礉鏁版嵁鐨勮蔣浠? 銆銆涓句緥錛? 銆銆1.Just hang鈥︹? 銆銆榪欎釜綆鍗曠殑寮曞紼嬪簭鍙兘鎸傝搗錛? 銆銆hang: 銆銆jmp hang 銆銆times 512錛?錛勶紞錛勶紕)錛? db 0 銆銆dw 0AA55h 銆銆榪炴帴榪欎釜寮曞紼嬪簭錛? 銆銆nasm 錛峟 bin 錛峯 hang.bin hang.asm 銆銆鐜板湪浣犻渶瑕佷竴寮犳牸寮忓寲紓佺洏錛屼紶閫乭ang.bin鍒扮鐩樼殑寮曞鎵囧尯 銆銆partcopy hang.bin 0 200 錛峟0 銆銆鈥?鈥濈殑鎰忔濇槸鎸囦粠hang.bin鏂囦歡鐨勯《绔紑濮嬩紶閫? 銆銆鈥?00鈥濈殑鎰忔濇槸鎸囨嫹璐?00涓瓧鑺? 銆銆鎻掑叆紓佺洏鍜岄噸鏂板惎鍔ㄦ満鍣紝嫻嬭瘯榪欎釜寮曞紼嬪簭銆? 銆銆2.涓涓疄妯″紡涓嬬殑寮曞紼嬪簭 銆銆涓婇潰鐨勭▼搴忛潪甯哥畝鍗曪紝涓嬮潰浠嬬粛涓涓◢寰鏉備竴鐐圭殑紼嬪簭銆? 銆銆bits 16 銆銆org 0x7C00 銆銆start: 銆銆cli錛涘叧涓柇 銆銆mov ax,0x9000錛涜緗爢鏍堝潃錛?x90000 銆銆mov ss,ax 銆銆mov sp,0 銆銆sti錛涘紑涓柇 銆銆l1:push ds 銆銆mov dl,0錛? 銆銆閲嶆柊璁劇疆紓佺洏鎺у埗鍣? 銆銆mov ax,0 銆銆int 13h 銆銆pop ds 銆銆jc fail 銆銆push es 銆銆mov ax,0x1000錛汦S:BX=10000 銆銆mov es,ax 銆銆mov bx,0 銆銆mov ah,2錛涜紓佺洏鎵囧尯 銆銆mov al,5錛涜鍏?涓墖鍖? 銆銆mov cx,2錛涙煴闈㈠彿=0錛屾墖鍖哄彿=2 銆銆mov dx, 0錛涚澶村彿=0錛岄┍鍔ㄥ櫒鍙?0 銆銆int 13h錛汦S:BX=鏉ヨ嚜紓佺洏涓婄殑鏁版嵁 銆銆pop es 銆銆jc l1 銆銆mov ax,0x10000錛涜緗瀵勫櫒 銆銆mov es,ax 銆銆mov ds,ax 銆銆push ax 銆銆mov ax,0 銆銆push ax 銆銆retf 銆銆fail: 銆銆jmp fail 銆銆times 512錛?錛勶紞錛勶紕)錛? db 0 銆銆dw 0AA55h 銆銆榪炴帴榪欎釜寮曞紼嬪簭錛? 銆銆nasm 錛峟 bin 錛峯 boot.bin boot.asm 銆銆浼犻乥oot.bin鍒扮鐩樼殑寮曞鎵囧尯 銆銆partcopy boot.bin 0 200 錛峟0 銆銆涓轟簡(jiǎn)浣跨▼搴忓彲浠ョ湅鍒幫紝鍦ㄧ紪璇戜笅闈㈢▼搴? 銆銆mov ax,1000h錛涗慨鏀規(guī)瀵勫瓨鍣? 銆銆mov ds,ax 銆銆mov es,ax 銆銆mov si,msg錛涙墦鍗?"JIPPIKAYE!" 銆銆call putstr 銆銆hang:錛涙寕璧? 銆銆jmp hang 銆銆putstr: 銆銆lodsb 銆銆or al,al 銆銆jz short putstrd 銆銆mov ah,0x0E 銆銆mov bx,0x0007 銆銆int 0x10 銆銆jmp putstr 銆銆putstrd: 銆銆retn 銆銆msg db 'JIPPIKAYE!',13,10,0 銆銆榪炴帴鍜屼紶閫侊細(xì) 銆銆nasm 錛峟 bin 錛峯 boot.bin boot.asm 銆銆partcopy boot.bin 0 200 錛峟0 200 銆銆鍦╬artcopy涓渶鍚庝竴涓弬鏁扳?00鈥濇剰鎬濇槸鎸囩鐩樼殑鍋忕Щ鍦板潃鎻掑叆紓佺洏鍜岄噸鏂板惎鍔ㄦ満鍣紝浣犱細(xì)鐪嬪埌鈥淛IPPIKAYE鈥濈劧鍚庢寕璧楓? 鏈枃杞嚜 http://www.woos.cn/bbs/read.php?tid=72 ]]> 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
一区二区国产精品 |
久久嫩草精品久久久精品 |
最新日韩欧美 |
99精品国产在热久久 |
亚洲国产精选 |
久久频这里精品99香蕉 |
欧美日一区二区三区在线观看国产免 |
在线观看一区 |
欧美一区二区三区在线观看视频 |
日韩午夜激情av |
久久婷婷国产综合国色天香 |
国产精品视频第一区 |
亚洲视频网在线直播 |
欧美成人国产 |
噜噜噜噜噜久久久久久91
|
久久综合影视 |
狠狠色丁香婷婷综合久久片 |
亚洲特级片在线 |
一本不卡影院 |
免费毛片一区二区三区久久久 |
韩国一区二区三区美女美女秀 |
亚洲在线观看视频网站 |
巨胸喷奶水www久久久免费动漫 |
欧美中文在线观看国产 |
国产精品久久综合 |
午夜一区二区三区不卡视频 |
日韩视频免费观看高清在线视频 |
欧美日本国产 |
一区二区高清在线 |
亚洲视频精选 |
国产精品亚洲片夜色在线 |
最近看过的日韩成人 |
久久久青草青青国产亚洲免观 |
国产日韩欧美中文在线播放 |
六十路精品视频 |
久久久久久久网站 |
亚洲美女视频在线观看 |
欧美成在线观看 |
欧美日韩成人综合 |
在线视频你懂得一区二区三区 |
国产精品99久久久久久久久 |
国产欧美不卡 |
亚洲激情电影在线 |
欧美激情视频在线播放 |
女主播福利一区 |
亚洲一区国产精品 |
午夜精品久久久 |
亚洲区国产区 |
一本久道久久综合婷婷鲸鱼 |
亚洲精品一区二区三区福利 |
欧美激情网友自拍 |
一区二区三区免费网站 |
午夜视频久久久久久 |
国产日本欧美一区二区三区 |
你懂的视频欧美 |
欧美成人精品福利 |
欧美一区二区三区久久精品茉莉花
|
久久最新视频 |
亚洲欧洲综合 |
亚洲最新中文字幕 |
影音先锋亚洲电影 |
亚洲国产精品一区二区三区 |
国产精品一区二区三区四区 |
久久青草欧美一区二区三区 |
欧美成人亚洲 |
欧美一级片久久久久久久 |
亚洲一区二区三 |
亚洲大片免费看 |
99国内精品 |
久久精品国产综合精品 |
亚洲精选在线观看 |
久久免费视频这里只有精品 |
一本到12不卡视频在线dvd |
久久精品一区二区三区四区 |
日韩视频国产视频 |
久久影音先锋 |
久久高清福利视频 |
亚欧成人精品 |
一区二区高清视频在线观看 |
亚洲经典在线看 |
亚洲福利视频网 |
亚洲欧美日韩国产综合 |
亚洲综合二区 |
欧美激情精品久久久 |
欧美国产欧美亚洲国产日韩mv天天看完整 |
欧美午夜激情视频 |
99精品国产在热久久婷婷 |
亚洲第一福利在线观看 |
久久久青草青青国产亚洲免观 |
亚洲天天影视 |
欧美午夜电影完整版 |
亚洲激情成人 |
日韩午夜黄色 |
欧美成人久久 |
亚洲日本电影 |
亚洲精品一区二区三区不 |
蜜桃久久精品一区二区 |
久久久久亚洲综合 |
欧美三级视频在线播放 |
亚洲国产欧美日韩精品 |
国产亚洲精品久久久久动 |
亚洲专区免费 |
亚洲黄一区二区 |
欧美高清在线一区 |
亚洲大胆在线 |
夜夜嗨av一区二区三区四区
|
久久精品国产一区二区电影
|
午夜欧美理论片 |
国产精品亚洲视频 |
一本久久a久久精品亚洲 |
最新国产成人av网站网址麻豆 |
夜夜夜久久久 |
亚洲少妇中出一区 |
欧美日本一道本 |
91久久精品日日躁夜夜躁国产 |
国产性天天综合网 |
日韩一级黄色av |
亚洲私人影院在线观看 |
欧美日韩亚洲国产一区 |
亚洲一区免费在线观看 |
亚洲欧美日韩综合国产aⅴ |
国产一区二区中文 |
久久精品欧美 |
亚洲蜜桃精久久久久久久 |
一区二区三区四区蜜桃 |
国产日韩欧美视频 |
欧美专区18 |
亚洲日本成人网 |
亚洲一区国产视频 |
国模私拍视频一区 |
美日韩精品免费 |
国产精品99久久久久久久久久久久
|
亚洲视频欧美在线 |
亚洲电影免费观看高清 |
一区二区毛片 |
国产一区二区三区免费在线观看 |
欧美一区二区三区四区在线观看 |
国产精品自在线 |
久久久久久亚洲精品中文字幕
|
一区二区三区精品在线 |
欧美一站二站 |
99视频精品免费观看 |
欧美性一二三区 |
久久亚洲私人国产精品va媚药 |
亚洲国产成人精品女人久久久
|
亚洲一区二区成人在线观看 |
亚洲激情另类 |
国产一区二区av |
欧美综合第一页 |
亚洲一区二区黄色 |
欧美一区二区三区视频在线观看 |
亚洲精品黄色 |
国产嫩草一区二区三区在线观看 |
欧美激情2020午夜免费观看 |
亚洲一级黄色 |
日韩一级在线观看 |
久久久综合精品 |
欧美一级视频免费在线观看 |
在线日韩视频 |
精品99视频 |
女女同性精品视频 |
久久亚洲一区二区 |
一区二区欧美在线 |
亚洲电影下载 |
欧美sm重口味系列视频在线观看 |
亚洲综合精品四区 |
亚洲午夜av |
亚洲精品色图 |
在线观看免费视频综合 |
国产精品久久久久久久7电影
|
午夜精品成人在线 |
亚洲欧洲在线一区 |
欧美国产精品久久 |
久久xxxx精品视频 |
午夜视频在线观看一区二区三区
|
欧美综合国产精品久久丁香 |
亚洲性视频网站 |
亚洲黄色成人 |
亚洲精选成人 |
国产区亚洲区欧美区 |
国产精品视频自拍 |
你懂的视频欧美 |
美女主播视频一区 |
亚洲国产欧美精品 |
亚洲激情精品 |
樱花yy私人影院亚洲 |
国产在线不卡 |
在线日韩欧美 |
亚洲国产精品黑人久久久 |
海角社区69精品视频 |
国产欧美一区二区色老头 |
国产一区深夜福利 |
国产日韩av高清 |
国产精品午夜久久 |
国产精品午夜电影 |
欧美一站二站 |
久久午夜视频 |
欧美精品一区二区精品网 |
欧美大尺度在线观看 |
欧美三级电影大全 |