锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
瀵瑰湪宸茶繛鎺ュ鎺ュ瓧涓婃帴鍙楁帴鍏ユ暟鎹潵璇達紝 r e c v鍑芥暟鏄渶鍩烘湰鐨勬柟寮忋傚畠鐨勫畾涔夊涓嬶細
int recv(
聽聽聽聽聽SOCKET s,
聽聽聽聽聽char FAR * buf,
聽聽聽聽聽int len,
聽聽聽聽聽int flags
聽聽聽聽);
絎竴涓弬鏁皊錛屾槸鍑嗗鎺ユ敹鏁版嵁鐨勯偅涓鎺ュ瓧銆傜浜屼釜鍙傛暟b u f錛屾槸鍗沖皢鏀跺埌鏁版嵁鐨勫瓧絎︾紦鍐詫紝鑰宭 e n鍒欐槸鍑嗗鎺ユ敹鐨勫瓧鑺傛暟鎴朾 u f緙撳啿鐨勯暱搴︺傛渶鍚庯紝 f l a g s鍙傛暟鍙互鏄笅闈㈢殑鍊鹼細 0銆丮 S G _ P E E K鎴朚 S G _ O O B銆傚彟澶栵紝榪樺彲瀵硅繖浜涙爣蹇椾腑鐨勬瘡涓涓繘琛屾寜浣嶅拰榪愮畻銆傚綋鐒訛紝 0琛ㄧず鏃犵壒孌婅涓恒侻 S G _ P E E K浼氫嬌鏈夌敤鐨勬暟鎹鍒跺埌鎵鎻愪緵鐨勬帴鏀剁緙撳啿鍐咃紝浣嗘槸娌℃湁浠庣郴緇熺紦
鍐蹭腑灝嗗畠鍒犻櫎銆傚彟澶栵紝榪樿繑鍥炰簡寰呭彂瀛楄妭鏁般?br />娑堟伅鍙栨暟涓嶅お濂姐傚畠涓嶄粎瀵艱嚧鎬ц兘涓嬮檷錛堝洜涓洪渶瑕佽繘琛屼袱嬈$郴緇熻皟鐢紝涓嬈℃槸鍙栨暟錛屽彟涓嬈℃槸鏃燤 S G _ P E E K鏍囧織鐨勭湡姝e垹闄ゆ暟鎹殑璋冪敤錛夛紝鍦ㄦ煇浜涙儏鍐典笅榪樺彲鑳戒笉鍙潬銆傝繑鍥炵殑鏁版嵁鍙兘娌℃湁鍙嶅皠鍑虹湡姝f湁鐢ㄧ殑鏁伴噺銆備笌姝ゅ悓鏃訛紝鎶婃暟鎹暀鍦ㄧ郴緇熺紦鍐詫紝鍙綰蟲帴鍏ユ暟鎹殑緋葷粺絀洪棿灝變細瓚婃潵瓚婂皯銆傚叾緇撴灉渚挎槸錛岀郴緇熷噺灝戝悇鍙戦佺鐨凾 C P紿楀彛瀹歸噺銆傜敱姝わ紝浣犵殑搴旂敤灝變笉鑳借幏寰楁渶澶х殑嫻侀氥傛渶濂芥槸鎶婃墍鏈夋暟鎹兘澶嶅埗鍒拌嚜宸辯殑緙撳啿涓紝騫跺湪閭i噷璁$畻鏁版嵁銆傚墠闈㈡浘浠嬬粛榪嘙 S G _ O O B鏍囧織銆傛湁鍏寵鎯咃紝鍙傝鍓嶉潰鈥滃甫澶栨暟鎹濈殑鍐呭銆?/p>
鍦ㄩ潰鍚戞秷鎭垨闈㈠悜鏁版嵁鎶ョ殑濂楁帴瀛椾笂浣跨敤r e c v鏃訛紝榪欏嚑鐐瑰簲璇ユ敞鎰忋傚湪寰呭彂鏁版嵁澶т簬鎵鎻愪緵鐨勭紦鍐茶繖涓浜嬩歡涓紝緙撳啿鍐呬細灝介噺鍦板~鍏呮暟鎹傝繖鏃訛紝 r e c v璋冪敤灝變細浜х敓W S A E M S G S I Z E閿欒銆傛敞鎰忥紝娑堟伅闀塊敊璇槸鍦ㄤ嬌鐢ㄩ潰鍚戞秷鎭殑鍗忚鏃跺彂鐢熺殑銆傛祦鍗忚鎶婃帴鍏ョ殑鏁版嵁緙撳瓨涓嬫潵錛?br />騫跺敖閲忓湴榪斿洖搴旂敤鎵瑕佹眰鐨勬暟鎹紝鍗充嬌寰呭彂鏁版嵁鐨勬暟閲忔瘮緙撳啿澶с傚洜姝わ紝瀵規祦寮忎紶杈撳崗璁潵璇達紝灝變笉浼氱鍒癢 S A E M S G S I Z E榪欎釜閿欒銆?br />W S A R e c v鍑芥暟鍦╮ e c v鐨勫熀紜涓婂鍔犱簡涓浜涙柊鐗規с傛瘮濡傝閲嶅彔I / O鍜岄儴鍒嗘暟鎹姤閫氱煡銆?br />W S A R e c v鐨勫畾涔夊涓嬶細
int WSARecv(
聽聽聽聽聽聽聽SOCKET聽s,
聽聽聽聽聽聽聽LPWSABUF lpBuffers,
聽聽聽聽聽聽聽DWORD聽聽 dwBufferCount,
聽聽聽聽聽聽聽LPWORD聽 lpNumberOfBytesRecved,
聽聽聽聽聽聽聽LPWSAOVERLAPPED聽lpOverlapped,
聽聽聽聽聽聽聽LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionROUTINE
聽聽聽聽聽聽);
聽聽聽聽聽聽
鍙傛暟s錛屾槸宸插緩绔嬭繛鎺ョ殑濂楁帴瀛椼傜浜屽拰絎笁涓弬鏁版槸鎺ユ敹鏁版嵁鐨勭紦鍐層俵 p B u ff e r s鍙傛暟鏄竴涓猈 S A B U F緇撴瀯緇勬垚鐨勬暟緇勶紝鑰宒 w B u ff e r C o u n t鍒欒〃鏄庡墠涓涓暟緇勪腑W S A B U F緇撴瀯鐨勬暟鐩?br />濡傛灉鎺ユ敹鎿嶄綔绔嬪嵆瀹屾垚錛?l p N u m b e r O f B y t e s R e c e i v e d鍙傛暟灝變細鎸囧悜鎵ц榪欎釜鍑芥暟璋冪敤鎵鏀跺埌鐨勫瓧鑺傛暟銆俵 p F l a g s鍙傛暟鍙互鏄笅闈換浣曚竴涓鹼細 M S G _ P E E K銆丮 S G _ O O B銆丮 S G _ PA RT I A L鎴栬呭榪欎簺鍊艱繘琛屾寜浣嶅拰榪愮畻涔嬪悗鐨勭粨鏋溿侻 S G _ PA RT I A L鏍囧織浣跨敤鍜屽嚭鐜扮殑鍦版柟涓嶅悓錛屽叾鍚?br />涔変篃涓嶅悓銆傚闈㈠悜娑堟伅鐨勫崗璁潵璇達紝榪欎釜鏍囧織鏄疻 S A R e c v璋冪敤榪斿洖鍚庤緗殑錛堝鏋滃洜涓虹紦鍐茬┖闂翠笉澶熷鑷存暣鏉℃秷鎭湭鑳藉湪榪欐璋冪敤涓繑鍥炵殑璇濓級銆傝繖鏃訛紝鍚庨潰鐨刉 S A R e c v璋冪敤灝變細璁劇疆榪欎釜鏍囧織M A S G _ PA RT I A L錛岀洿鍒版暣鏉℃秷鎭繑鍥烇紝鎵嶆妸榪欎釜鏍囧織娓呴櫎銆傚鏋滆繖涓爣蹇楀綋浣滀竴涓緭鍏ュ弬鏁版姇閫掞紝鎺ユ敹鎿嶄綔搴旇鍦ㄤ竴鏀跺埌鏁版嵁灝辯粨鏉燂紝鍗充嬌瀹冩敹鍒扮殑鍙槸鏁存潯娑堟伅涓殑涓閮ㄥ垎銆?br />M S G _ PA RT I A L鏍囧織鍙殢闈㈠悜娑堟伅鐨勫崗璁竴璧蜂嬌鐢ㄣ傛瘡涓崗璁殑鍗忚鏉$洰閮藉寘鍚竴涓爣蹇楋紝琛ㄦ槑鏄惁鏀寔榪欎竴鐗規с傛湁鍏寵鎯咃紝鍙傝絎?绔犮俵 p O v e r l a p p e d鍜宭 p C o m p l e t i o n R O U T I N E鍙傛暟鐢ㄤ簬閲嶅彔I / O鎿嶄綔
4. WSARecvDisconnect
榪欏嚱鏁頒笌W S A S e n d D i s c o n n e c t鍑芥暟瀵瑰簲錛屽叾瀹氫箟濡備笅錛?br />int WSARecvDisconnect(聽
聽聽聽聽聽聽聽聽聽聽聽聽SOCKET s,
聽聽聽聽聽聽聽聽聽聽聽聽LPWSABUF lpOUTboundDisconnectData
聽聽聽聽聽聽聽聽聽聽聽);
鍜學 S A S e n d D i s c o n n e c t鍑芥暟鐨勫弬鏁頒竴鏍鳳紝璇ュ嚱鏁扮殑鍙傛暟涔熸槸宸插緩绔嬭繛鎺ョ殑濂楁帴瀛楀彞鏌勫拰
涓涓湁鏁堢殑W S A B U F緇撴瀯錛堝甫鏈夋敹鍒扮殑鏁版嵁錛夈傛敹鍒扮殑鏁版嵁鍙互鍙槸鏂紑鏁版嵁銆傝繖涓柇寮鏁版嵁鏄彟涓绔墽琛學 S A S e n d D i s c o n n e c t璋冪敤鍙戝嚭鐨勶紝瀹冧笉鑳界敤浜庢帴鏀舵櫘閫氭暟鎹傚彟澶栵紝涓鏃︽敹鍒拌繖涓暟鎹紝 W S A R e c v D i s c o n n e c t鍑芥暟灝變細鍙栨秷鎺ユ敹榪滅▼閫氫俊鏂圭殑鏁版嵁錛屽叾浣滅敤鍜岃皟鐢ㄥ甫鏈塖 D _ R E C V鐨剆 h u t d o w n鍑芥暟鐩稿悓銆?br />5. WSARecvEx
W S A R e c v E x鍑芥暟鏄井杞笓鏈夌殑Winsock 1鎵╁睍錛岄櫎浜唂 l a g s鍙傛暟鏄寜鍊煎紩鐢ㄥ錛屽叾浣欏拰r e c v鍑芥暟鏄竴鏍風殑銆傚畠鍏佽鍩哄眰鐨勬彁渚涜呰緗甅 S G _ PA RT I A L鏍囧織銆傝鍑芥暟鐨勫師鍨嬪涓嬶細
int PASCAL FAR WSARecvEx(
聽聽聽聽聽聽聽聽聽聽聽聽聽SOCKET s,
聽聽聽聽聽聽聽聽聽聽聽聽聽char FAR * buf,
聽聽聽聽聽聽聽聽聽聽聽聽聽int len,
聽聽聽聽聽聽聽聽聽聽聽聽聽int * flags
聽聽聽聽聽聽聽聽聽聽聽聽);
聽聽聽聽聽聽聽聽聽聽聽聽
濡傛灉鏀跺埌鐨勬暟鎹笉鏄竴鏉″畬鏁寸殑娑堟伅錛?f l a g s鍙傛暟涓氨浼氳繑鍥濵 S G _ PA RT I A L鏍囧織銆傚闈㈠悜娑堟伅鐨勫崗璁紙鍗抽潪嫻佸崗璁級鏉ヨ錛岃繖涓爣蹇楁瘮杈冩湁鐢紙鍗抽潪嫻佸崗璁級銆傚湪M S G _ PA RT I A L鏍囧織琚綋浣渇 l a g s鍙傛暟鐨勪竴閮ㄥ垎鎶曢掞紝鑰屼笖鏀跺埌鐨勬秷鎭張涓嶅畬鏁存椂錛岃皟鐢╓ S A R e c v E x錛屽氨浼氱珛鍗?br />榪斿洖鏀跺埌鐨勯偅涓暟鎹傚鏋滄彁渚涚殑鎺ユ敹緙撳啿瀹圭撼涓嶄笅鏁存潯娑堟伅錛?W S A R e c v E x灝變細澶辮觸錛屽茍鍑虹幇W S A E M S G S I Z E 閿欒錛屽墿涓嬬殑鏁版嵁涔熶細琚埅鎺夈傛敞鎰忥紝 M S G _ PA RT I A L 鏍囧織鍜學 S A E M S G S I Z E閿欒涔嬮棿鐨勭‘鍖哄埆鏄細鏈変簡榪欎釜閿欒錛屽嵆浣挎暣鏉℃秷鎭埌杈炬帴鏀剁錛屼絾鐢變簬鎻?br />渚涚殑鏁版嵁緙撳啿澶皯錛屼篃涓嶈兘瀵瑰畠榪涜鎺ユ敹銆侻 S G _ P E E K 鍜孧 S G _ O O B鏍囧織榪樺彲浠ュ拰W S A R e c v E x涓璧蜂嬌鐢ㄣ?/p>
闅忓悗錛屾垜浠瑙d簡M U P濡備綍璋冪敤涓涓綉緇滄彁渚涜咃紝浠庤屾彮紺哄嚭鎬庢牱閫氳繃涓涓噸瀹氬悜鍣紝鍦ㄢ滄湇鍔″櫒娑堟伅鍧椻濓紙Server Message Block, SMB錛夊崗璁殑甯姪涓嬶紝鍦ㄤ笉鍚岀殑璁$畻鏈轟箣闂村緩绔嬫暟鎹氫俊銆?/p>
鏈鍚庯紝鎴戜滑鎺㈣浜嗙綉緇滃畨鍏ㄦ柟闈㈢殑涓浜涢棶棰樸備嬌鐢ㄥ熀鏈殑鏂囦歡I / O鎿嶄綔錛岄氳繃緗戠粶鏉ヨ闂枃浠舵椂錛岃繖浜涘畨鍏ㄩ棶棰樻槸蹇呴』鑰冭檻鍒扮殑銆?/p>
2.1 閫氱敤鍛藉悕瑙勮寖
鈥淯 N C璺緞鈥? 涓虹綉緇滄枃浠跺強璁懼鐨勮闂緩绔嬩簡涓濂楃粺涓鐨勮鑼冦傚畠鏈澶х殑鐗圭偣渚挎槸涓嶅繀鎸囧畾鎴栧紩鐢ㄤ竴涓凡鏄犲皠鍒拌繙紼嬫枃浠剁郴緇熺殑鏈湴椹卞姩鍣ㄥ瓧姣嶃?/p>
U N C鍚嶅瓧瀹屽叏瑙e喅浜嗚繖浜涢棶棰橈紝瀹冪殑鏍煎紡濡備笅錛?br />\ \ [鏈嶅姟鍣╙ \ [鍏變韓鍚峕 \ [璺緞]
絎竴閮ㄥ垎鏄痋 \ [鏈嶅姟鍣╙錛屽繀欏諱互涓や釜鍙嶆枩鏉犲紑澶達紝绱ц窡鐫涓涓湇鍔″櫒鍚嶅瓧銆?br />絎簩閮ㄥ垎鏄痋 [鍏變韓鍚峕錛屽畠瀵瑰簲鐫榪滅▼鏈嶅姟鍣ㄤ笂鐨勪竴涓滃叡浜叆鍙b濇垨鑰呪滃叡浜綅緗濄?br />銆傝岀涓夐儴鍒哱 [璺緞] 瀵瑰簲鐨勬槸鍏變韓浣嶇疆涓嬬殑鏌愪釜鍏蜂綋鐩綍錛堟垨瀛愮洰褰曪級
絎?绔犻偖妲?/p>
涓縐嶇畝鍗曠殑鍗曞悜鈥滆繘紼嬮棿閫氫俊鈥濓紙interprocess communication,I P C錛夋満鍒躲傝繖涓満鍒剁殑鍚嶅瓧闈炲父鍙ゆ紝鍙綔鈥滈偖妲解濓紙M a i l s l o t錛夈傜敤鏈綆鍗曠殑璇濇潵璇達紝閫氳繃
閭Ы錛屽鎴鋒満榪涚▼鍙皢娑堟伅浼犻佹垨騫挎挱緇欎竴涓垨澶氫釜鏈嶅姟鍣ㄨ繘紼嬨傚湪鍚屼竴鍙拌綆楁満鐨勪笉鍚岃繘紼嬩箣闂達紝鎴栧湪璺ㄨ秺鏁翠釜緗戠粶鐨勪笉鍚岃綆楁満鐨勮繘紼嬩箣闂達紝鍗忓姪榪涜娑堟伅鐨勪紶杈撱傜敤閭Ы鏉ュ紑鍙戝簲鐢ㄧ▼搴忔槸涓浠墮潪甯哥畝鍗曠殑浜嬫儏錛屼笉瑕佹眰瀵筎 C P / I P鎴朓 P X榪欐牱鐨勫熀灞傜綉緇滀紶閫佸崗璁湁鐫闈炲父娣卞叆鐨勪簡瑙c傜敱浜庨偖妲芥槸鍥寸粫涓涓箍鎾氫俊浣撶郴璁捐鍑烘潵鐨勶紝鎵浠ュ綋鐒朵笉鑳芥寚鏈涜兘閫氳繃瀹冨疄鐜版暟鎹殑鈥滃彲闈犫濅紶杈撱?/p>
閭Ы鏈澶х殑涓涓己鐐逛究鏄彧鍏佽浠庡鎴鋒満鍒版湇鍔″櫒錛屽緩绔嬩竴縐嶄笉鍙潬鐨勫崟鍚戞暟鎹氫俊銆?br />鑰屽彟涓鏂歸潰錛岄偖妲芥渶澶х殑涓涓紭鐐瑰湪浜庯紝瀹冧滑浣垮鎴鋒満搴旂敤鑳藉闈炲父瀹規槗鍦板皢騫挎挱娑堟伅鍙戦佺粰涓涓垨澶氫釜鏈嶅姟鍣ㄥ簲鐢ㄣ?/p>
3.1 閭Ы瀹炴柦緇嗚妭
閭Ы鏄洿緇昗i n d o w s鏂囦歡緋葷粺鎺ュ彛璁捐鍑烘潵鐨勩傚鎴鋒満鍜屾湇鍔″櫒搴旂敤闇瑕佷嬌鐢ㄦ爣鍑嗙殑Wi n 3 2鏂囦歡緋葷粺I / O錛堣緭鍏ワ紡杈撳嚭錛夊嚱鏁幫紝姣斿R e a d F i l e鍜學r i t e F i l e絳夌瓑錛屼互渚垮湪閭Ы涓婃敹鍙戞暟鎹紝鍚屾椂鍒╃敤Wi n 3 2鏂囦歡緋葷粺鐨勫懡鍚嶈鍒欍傞偖妲藉繀欏諱緷璧朩i n d o w s閲嶅畾鍚戝櫒錛岄氳繃涓涓滈偖妲芥枃浠剁郴緇熲濓紙Mailslot File System, MSFS錛夛紝鏉ュ垱寤哄強鏍囪瘑閭Ы銆?/p>
3.1.1 閭Ы鐨勫悕瀛?br />瀵歸偖妲借繘琛屾爣璇嗘椂錛岄渶閬靛畧涓嬭堪鍛藉悕瑙勫垯錛?br />\ \ s e r v e r \ M a i l s l o t \ [ p a t h ] n a m e
璇峰皢涓婅堪瀛椾覆鍒嗕負涓夋鏉ョ湅錛?\ \ s e r v e r銆乗 M a i l s l o t鍜孿 [ p a t h ] n a m e銆傜涓閮ㄥ垎\ \ s e r v e r瀵瑰簲浜庢湇鍔″櫒鐨勫悕瀛楋紝鎴戜滑瑕佸湪涓婇潰鍒涘緩閭Ы錛屽茍鍦ㄥ湪涓婇潰榪愯鏈嶅姟鍣ㄧ▼搴忋傜浜岄儴鍒哱 M a i l s l o t鏄竴涓滅‖緙栫爜鈥濈殑鍥哄畾瀛椾覆錛岀敤浜庡憡璇夌郴緇熻繖涓枃浠跺悕浠庡睘浜嶮 S F S銆傝岀涓夐儴鍒哱 [ p a t h ] n a m e鍒?br />鍏佽搴旂敤紼嬪簭鐙竴鏃犱簩鍦板畾涔夊強鏍囪瘑涓涓偖妲藉悕銆傚叾涓紝鈥減 a t h鈥濅唬琛ㄨ礬寰勶紝鍙寚瀹氬綰х洰褰曘?br />涓句釜渚嬪瓙鏉ヨ錛屽涓涓偖妲借繘琛屾爣璇嗘椂錛屼笅闈㈣繖浜涘艦寮忕殑鍚嶅瓧閮芥槸鍚堟硶鐨勶紙娉ㄦ剰M a i l s l o t涓嶅緱鍙樺寲錛屽繀欏誨師鏂囩収杈擄紝浜﹀嵆鎵璋撶殑鈥滅‖緙栫爜鈥濓級錛?br />鐢變簬閭Ы瑕佷緷璧朩i n d o w s鏂囦歡緋葷粺鏈嶅姟鍦ㄧ綉涓婃潵鍒涘緩鍜屼紶杈撴暟鎹紝鎵浠ユ帴鍙f槸鈥滀笌鍗忚鏃犲叧鈥濈殑銆?br />瑕佹兂淇濊瘉鍚勭Wi n d o w s騫沖彴涔嬮棿鑳藉瀹屽叏姝e父鍦伴氫俊錛屽己鐑堝緩璁皢娑堟伅闀垮害闄愬埗鍦? 2 4瀛楄妭錛屾垨鑰呮洿鐭傚鏋滆繘琛岄潰鍚戣繛鎺ョ殑浼犺緭錛屽彲鑰冭檻浣跨敤鍛藉悕綆¢亾錛岃屼笉鏄畝鍗曠殑閭Ы銆?/p>
3.5 灝忕粨
鏈珷璁茶В浜嗛偖妲斤紙 M a i l s l o t錛夌綉緇滅紪紼嬫妧鏈傚埄鐢ㄨ繖涓鎶鏈紝搴旂敤紼嬪簭鍙互鍦╓i n d o w s閲嶅畾鍚戝櫒鐨勫府鍔╀笅錛屽疄鐜扮畝鍗曠殑鍗曞悜榪涚▼闂存暟鎹氫俊銆傚閭Ы鏉ヨ錛屽畠鏈鏈変環鍊肩殑涓欏瑰姛鑳戒究鏄氳繃緗戠粶錛屽皢涓鏉℃秷鎭箍鎾粰涓鍙版垨澶氬彴璁$畻鏈恒傜劧鑰岋紝閭Ы騫舵湭鎻愪緵瀵規暟鎹彲闈犱紶杈撶殑淇濋殰銆傚亣濡傚笇鏈涚敤Wi n d o w s閲嶅畾鍚戝櫒瀹炵幇鈥滃彲闈犫濈殑鏁版嵁閫氫俊錛岃鑰冭檻浣跨敤鍛藉悕綆¢亾錛岃繖鏄笅涓绔犵殑涓婚錛?/p>
netBIOS鍚嶅瓧
鍦╓i n 3 2鐜涓紝閽堝姣忎釜鍙敤鐨凩 A N A緙栧彿錛屾瘡
涓繘紼嬮兘浼氫負鍏剁淮鎸佷竴寮燦 e t B I O S鍚嶅瓧琛ㄣ傝嫢涓篖ANA 0澧炴坊涓涓悕瀛楋紝鎰忓懗鐫浣犵殑搴旂敤紼嬪簭
鍙兘鍦↙ANA 0涓婂悓瀹㈡埛鏈哄緩绔嬭繛鎺ャ傚姣忎釜L A N A鏉ヨ錛岃兘澶熸坊鍔犵殑鍚嶅瓧鐨勬渶澶ф暟閲忔槸2 5 4錛?br />緙栧彿浠?鍒? 5 4錛?鍜? 5 5鐢辯郴緇熶繚鐣欙級
錛孨 e t B I O S鍚嶅瓧鍏辨湁涓や釜鎬ц川錛氬敮涓鍚嶅瓧鍜岀粍鍚?br />寰蔣緗戠粶涓殑鏈哄櫒鍛藉悕灝辨槸NetBIOS鍛藉悕銆?br />鈥滅粍鍚嶁濈殑浣滅敤鏄皢鏁版嵁鍚屾椂鍙戠粰澶氫釜鎺ユ敹鑰咃紱鎴栬呯浉鍙嶏紝鎺ユ敹鍙戠粰澶氫釜
鎺ユ敹鑰呯殑鏁版嵁銆傜粍鍚嶅茍闈炰竴瀹氳鈥滅嫭涓鏃犱簩鈥濓紝瀹冧富瑕佺敤浜庡鎾紙澶氱偣鍙戦侊級鏁版嵁閫氫俊
鑻ユ湁鈥渨indows浜掕仈緗戝懡鍚嶆湇鍔″櫒鈥濆嵆wins錛屽垯鏈夊畠綆$悊錛岃嫢鏃犲垯鍙戝箍鎾帰嫻嬫槸鍚﹂噸鍚嶃?/p>
1.1.3 NetBIOS鐗規?/p>
N e t B I O S鍚屾椂鎻愪緵浜嗏滈潰鍚戣繛鎺モ濇湇鍔′互鍙娾滄棤榪炴帴鈥濇湇鍔°?/p>
1.2 NetBIOS緙栫▼鍩虹
NetBIOS API鐨勮緗紝鍙湁涓涓嚱鏁幫細
UCHAR Netbios(PNCB pNCB);
鐢ㄤ簬N e t B I O S鐨勬墍鏈夊嚱鏁板0鏄庛佸父鏁扮瓑絳夊潎鏄湪澶存枃浠禢 b 3 0 . h鍐呭畾涔夌殑銆傝嫢鎯寵繛鎺?br />N e t B I O S搴旂敤錛屽敮涓闇瑕佺殑搴撴槸N e t a p i 3 2 . l i b銆?br />璋冪敤N e t b i o s鍑芥暟鏃訛紝鍙夋嫨榪涜鍚屾璋冪敤錛岃繕鏄繘琛屽紓姝ヨ皟鐢ㄣ傛墍鏈塏 e t B I O S鍛戒護鏈韓鍧囨槸鍚屾鐨勩傝鎯沖紓姝ヨ皟鐢ㄤ竴涓懡浠わ紝闇瑕佽N e t B I O S鍛戒護鍚孉 S Y N C H鏍囧織榪涜涓嬈¢昏緫O R錛堟垨錛夎繍綆椼傚鎸囧畾浜咥 S Y N C H鏍囧織錛岄偅涔堝繀欏誨湪n c b _ p o s t瀛楁涓寚瀹氫竴涓悗渚嬬▼錛圥ost Routine錛夛紝鎴栧繀欏誨湪n c b _e v e n t瀛楁涓寚瀹氫竴涓簨浠跺彞鏌勩傛墽琛屼竴涓紓姝ュ懡浠ゆ椂錛屼粠N e t b i o s榪斿洖鐨勫兼槸N R C _ G O O D R E T( 0 x 0 0 )錛屼絾n c b _ c m d _ c p l t瀛楁浼氳涓篘 R C _ P E N D I N G ( 0 x F F )銆傞櫎姝や互澶栵紝 N e t b i o s鍑芥暟榪樹細灝哊 C B緇撴瀯鐨刵 c b _ c m d _ c p l t瀛楁璁句負N R C _ P E N D I N G錛堝緟鍐籌級錛岀洿鍒板懡浠ゅ畬鎴愪負姝€傚懡浠ゅ畬鎴愬悗錛宯 c b _ c m d _ c p l t瀛楁浼氳涓鴻鍛戒護鐨勮繑鍥炲箋侼 e t b i o s涔熶細鍦ㄥ畬鎴愬悗灝唍 c b _ r e t c o d e瀛楁璁句負鍛戒護鐨勮繑鍥炲箋?br />
1.4 鏁版嵁鎶ョ殑宸ヤ綔鍘熺悊
鈥滄暟鎹姤鈥濓紙D a t a g r a m錛夊睘浜庝竴縐嶁滄棤榪炴帴鈥濈殑閫氫俊鏂規硶銆備綔涓哄彂閫佹柟錛屽彧闇鐢ㄧ洰鏍?br />N e t B I O S鍚嶅瓧涓哄彂鍑虹殑姣忎釜鍖呭畾鍧錛岀劧鍚庣畝鍗曞湴閫佸嚭浜嗕簨銆傛鏃訛紝涓嶄細鎵ц浠諱綍媯鏌ワ紝浠ョ‘
淇濇暟鎹殑瀹屾暣鎬с佹姷杈鵑『搴忔垨鑰呬紶杈撶殑鍙潬鎬х瓑絳夈?/p>
鍙戝嚭涓涓暟鎹姤鍏辨湁涓夌鏂瑰紡銆?br />絎竴縐嶆槸鎸囨尌鏁版嵁鎶ユ姷杈句竴涓壒瀹氱殑錛堟垨鍞竴鐨勶級緇勫悕銆傝繖鎰忓懗鐫鍙兘鏈変竴涓繘紼嬭礋璐f暟鎹姤鐨勬帴鏀垛斾害鍗蟲敞鍐屼簡鐩爣鍚嶅瓧鐨勯偅涓繘紼嬨?br />絎簩縐嶆槸灝嗘暟鎹姤鍙戠粰涓涓粍鍚嶃傚彧鏈夋敞鍐屼簡鎸囧畾緇勫悕鐨勯偅浜涜繘紼嬫墠鏈夋潈鎺ユ敹娑堟伅銆?br />鏈鍚庯紝絎笁縐嶆柟寮忔槸灝嗘暟鎹姤騫挎挱鍒版暣涓綉緇溿?/p>
聽聽聽 鍘熶唬鍙蜂負鈥淩oyale鈥濈殑MacromediaFlex杞歡灝嗘妸鏈嶅姟鍣ㄨ蔣浠躲佸紑鍙戞寚鍗楀拰鍏朵粬宸ュ叿緇勫悎鍦ㄤ竴璧鳳紝浣夸紶緇熺殑緗戠粶搴旂敤寮鍙戜漢鍛樿兘澶熺敤Macromedia鍏徃鐨凢lash鏍煎紡鍒涗綔杞歡鍗曞厓銆傚浠庡墠鎶ラ亾鐨勯偅鏍鳳紝璇ヤ駭鍝佺殑閲嶇偣鏄閭d簺浣跨敤Sun寰郴緇熷叕鍙哥殑Java2浼佷笟鐗?J2EE)鐨勫紑鍙戜漢鍛樿兘澶熷垱浣滃嚭鏇存湁鍚稿紩鍔涖佹洿瀹規槗瀵艱埅鐨凧2EE搴旂敤杞歡鎺ュ彛銆?o:p>
聽聽聽 Flex灝嗕嬌J2EE寮鍙戜漢鍛樹嬌鐢ㄦ爣鍑嗙殑鏂囨湰寮忓紑鍙戝伐鍏鋒潵鍒朵綔Flash搴旂敤紼嬪簭錛岃屼笉蹇呬嬌鐢∕acromedia鍏徃浠ュ墠鍑哄敭鐨勫鏉傜殑璁捐宸ュ叿銆侻acromedia鍏徃浠庝粖騫村勾鍒濆紑濮嬶紝鍔姏鎵╁ぇFlash鏍煎紡瀵逛簬涓繪祦寮鍙戝晢鐨勫惛寮曞姏錛屽叾鐩爣鏄墿澶lash鐨勭敤閫旓紝浣垮叾鎴愪負鎻愪緵浜掕仈緗戝簲鐢ㄥ拰寤虹珛浜や簰寮忕綉绔欑殑鍩虹銆?o:p>
聽聽聽 Macromedia鍏徃璁″垝鍦?004騫翠笂鍗婂勾鎺ㄥ嚭Flex鏈嶅姟鍣ㄨ蔣浠訛紝璇ヨ蔣浠剁殑浠鋒牸鐩墠榪樻病鏈夌‘瀹氥傚畠鐨勫垵綰х増鏈皢榪愯浜嶫2EE涓紝騫惰鍒掗殢鍚庢帹鍑烘敮鎸佸井杞殑.Net鏍煎紡鐨勭増鏈傛渶鍒濈殑鏀寔鑰呭寘鎷琁BM鍏徃錛屽畠灝嗛殢鑷繁鐨刉ebSphere杞歡涓璧鋒帹騫縁lex鐨勫簲鐢ㄣ?
聽聽聽 闇瑕佷簡瑙f洿澶欶lex鎶鏈殑鏈嬪弸鍙互璁塊棶Flex鐨勪富欏碉細
聽聽聽 http://www.macromedia.com/software/flex/聽
Thinlet
聽聽聽 Thinlet鏄竴涓噰鐢ˋpplet瑙f瀽XUL騫舵彁渚涚浉搴旂晫闈㈢殑瑙f瀽鍣紝鍦ㄤ簨浠跺彂鐢熸椂錛岃皟鐢ㄧ敤鎴瘋嚜宸辯殑浜嬩歡澶勭悊紼嬪簭(java 紼嬪簭)錛岄渶瑕佸鎴風嫻忚鍣ㄦ敮鎸丄pplet銆傛洿澶氫俊鎭彲浠ュ弬鑰冦http://www.thinlet.com/
鍏蜂綋閫氫俊鏈哄埗璧勬枡璇瘋鑰呭弬鑰冪綉涓婂唴瀹瑰拰閫忔槑浜?004騫?鏈熴婄▼搴忓憳銆嬫潅蹇椾腑銆婄帇鏈濆杈熻繕鏄蕩鐏噸鐢熴嬩竴鏂囥?o:p>
Rich Client
寮婧愬紑鍙戝鉤鍙?/b>
Laszlo
Laszlo鏄竴涓紑婧愮殑Rich client寮鍙戠幆澧冦備嬌鐢↙aszlo騫沖彴鏃訛紝寮鍙戣呭彧闇緙栧啓鍚嶄負LZX鐨勬弿榪拌璦錛堝叾涓暣鍚堜簡XML鍜孞avaScript錛夛紝榪愯鍦↗2EE搴旂敤鏈嶅姟鍣ㄤ笂鐨凩aszlo騫沖彴浼氬皢鍏剁紪璇戞垚FLASH鏂囦歡騫朵紶杈撶粰瀹㈡埛绔睍紺恒傚崟浠庤繍琛屽師鐞嗘潵璇達紝Laszlo涓嶺UL錛?a class="Channel_KeyLink" >XML鐢ㄦ埛鎺ュ彛璇█錛屄犅犅?XML User interface Language錛夈乆AML錛堚淟onghorn鈥濓級鏍囪璇█寰堢被浼箋備絾瀹冪殑鏈澶т紭鍔垮湪浜庯細瀹冩妸鎻忚堪璇█緙栬瘧鎴怓LASH錛岃孎LASH鏄換浣曟祻瑙堝櫒閮芥敮鎸佺殑灞曠ず褰㈠紡錛屼粠鑰屼竴涓捐В鍐充簡嫻忚鍣ㄤ箣闂寸殑縐繪闂銆傝屼笖錛屽湪鏈潵鐨勮鍒掍腑錛孡aszlo榪樺彲浠ュ皢LZX緙栬瘧鎴怞ava鎴?NET鏈湴浠g爜錛屼粠鑰屽ぇ澶ф彁楂樿繍琛屾晥鐜囥?o:p>
鍏蜂綋璇峰弬鑰僪ttp://www.openlaszlo.org銆?o:p>
IBM AlphaWorks緗戠珯榪戞棩鍙戝竷浜嗙敤浜庡紑鍙慙aszlo搴旂敤紼嬪簭鐨勯泦鎴愬紑鍙戠幆澧冿紙瀹為檯涓婃槸涓涓狤clipse鎻掍歡錛夛紝浣縅2EE寮鍙戣呰兘澶熷湪浠栦滑鐔熸倝鐨凟clipse鐜涓揩閫熷紑鍙戝熀浜嶭aszlo鐨剅ich client搴旂敤紼嬪簭銆傚彲浠ュ湪涓嬪垪鍦板潃涓嬭澆璇ユ彃浠訛細
http://alphaworks.ibm.com/tech/ide4laszlo
姝ゅ錛孉lphaWorks緗戠珯榪樻彁渚涗簡涓涓敤Laszlo寮鍙戠殑紺轟緥搴旂敤錛屽睍紺轟簡鍦‥clispe鐜涓嬪紑鍙慙aszlo搴旂敤鐨勮繃紼嬨俤emo鐨勫湴鍧濡備笅錛?o:p>
http://dl.alphaworks.ibm.com/technologies/rcb/demo.html
FLEX
聽聽聽 Flex鏄疢acromedia鍏徃寮鍙戠殑錛岀敤浜嶳ich client寮鍙戠殑鐜錛屽叾鍘熺悊鏄皢MXML(the Macromedia Flex Markup Language)鏂囦歡錛岀紪璇戞垚SWF鏂囦歡錛岀劧鍚庢樉紺哄湪嫻忚鍣ㄤ腑,騫跺埄鐢╓eb Service鎶鏈拰鏈嶅姟鍣ㄩ氫俊銆備粠鑰屽埄鐢‵lash鐨勫己澶у姛鑳斤紝甯︽潵鏇翠赴瀵岀殑鐢ㄦ埛浣撻獙銆?/p>
CORBA鍜孯MI鏈変竴涓叡鍚岀殑緙洪櫡錛氶氬父涓嶄細鍦ㄧ郴緇?0绔彛鎻愪緵鏈嶅姟錛屾墍浠ヨ繖鍦ㄥ叿澶囩綉緗楅槻鐏鐨勬儏鍐典笅鏄懼緱闈炲父琚姩銆?o:p>
XML-RPC
涓轟簡瑙e喅鍦ㄧ郴緇熺殑80绔彛鎻愪緵RPC鐨勬湇鍔★紝鑰屽張涓嶅獎鍝嶆鍦ㄦ墽琛岀殑WEB鏈嶅姟錛屼漢浠兂鍑轟簡鐢℉TTP鍗忚浼犺緭RPC鍖呯殑鍔炴硶銆傚浜庡嚑涔庢槸涓撻棬鐢ㄤ簬浼犺緭鏂囨湰鐨凥TTP鍗忚錛岃鍦ㄥ叾涓婁紶杈揜PC灝佸寘錛屾渶鏂逛究鐨勬柟娉曡帿榪囦簬鎶奟PC灝佸寘緙栫爜鎴愭枃鏈艦寮忊斺斾緥濡?a class="Channel_KeyLink" >XML鏂囦歡銆?o:p>
XML-RPC錛坔ttp://www.xml-rpc.com錛夋槸鐢辯編鍥経serLand鍏徃鎸囧畾鐨勪竴涓猂PC鍗忚銆傚畠灝哛PC淇℃伅灝佸寘緙栫爜涓?a class="Channel_KeyLink" >XML錛岀劧鍚庨氳繃HTTP浼犺緭灝佸寘錛涘畠鏄竴涓畝鍗曠殑RPC鍗忚錛屽彧鏀寔涓浜涘熀鏈暟鎹被鍨嬶紝涓嶆敮鎸佸璞℃ā鍨嬶紝榪欏娍蹇呮帲鑲樺湪瀹㈡埛绔拰鏈嶅姟鍣ㄧ涔嬮棿浼犺緭澶嶆潅鐨勫璞°?o:p>
SOAP
聽聽聽聽聽 SOAP鍗砈imple Object Access Protocol(綆鍗曞璞¤闂崗璁?鏄湪鍒嗘暎鎴栧垎甯冨紡鐨勭幆澧冧腑浜ゆ崲淇℃伅鐨勭畝鍗曠殑鍗忚錛屾槸涓涓熀浜?a class="Channel_KeyLink" >XML鐨勫崗璁傚畠鍏佽鎵鏈夌殑鎿嶄綔鍦?0绔彛涓婅繘琛岋紝浠庤屼篃緇曡繃浜嗛槻鐏絳夐棶棰樸?o:p>
銆銆SOAP瑙勮寖涓湁涓変釜鍩烘湰緇勬垚閮ㄥ垎錛歋OAP灝佽錛岀紪鐮佽鍒欙紝浠ュ強鍦ㄨ姹傚拰鍝嶅簲涔嬮棿鐨勪氦浜掓柟寮忋?o:p>
銆銆鐩墠宸叉湁鐨勫熀浜嶫AVA鎻愪緵SOAP鍔熻兘鐨勪駭鍝佹湁錛欰pache SOAP, IBM SOAP4J絳?o:p>
聽聽聽 瑕佷簡瑙f洿澶氬叧浜嶴OAP鐨勪俊鎭紝鍙互璁塊棶 http://www.w3.org/TR/SOAP
涓嶅緱涓嶈鐨勬槸錛屽甯︾綉緇滅殑鍑虹幇鍦ㄦ煇縐嶆剰涔変績鎴愪簡Rich Client鐨勮癁鐢熴傞氳繃蹇嵎鐨勫彂甯冿紝鐗瑰畾鐨勯氳鍗忚鏍囧噯錛孯ich Client姝d互涓嶅彲闃繪尅鐨勬皵鍔垮悜浜轟滑閲嶇幇鐫C/S妯″紡涓嬪鎴風紼嬪簭鐨勪紭鍔褲?o:p>
Rich Client鐨勫彂甯?/b>
C/S鏋舵瀯涓嬶紝瀹㈡埛绔▼搴忓彂甯冧笌緇存姢涓鐩存瘮杈冨洶闅懼拰綣佺悙銆傚湪鐗堟湰鏇存柊浠ュ悗錛岄渶瑕佸瀹㈡埛鐨勫鎴風紼嬪簭榪涜閫愪釜涓嬭澆瀹夎鍙婇厤緗洿鏂幫紝榪欐槸涓涓綋鍔涙椿錛岃岃繖涔熶竴鐩存槸浣跨敤鎴峰ぇ閲忛夋嫨WEB紼嬪簭鐨勫洜绱犱箣涓銆?o:p>
鍦≧ich Client鏃朵唬錛岀敱浜庡甯︾綉緇滅殑渚垮埄錛屽湪瀹㈡埛绔敖灝介渶瑕佷粠鏈嶅姟鍣ㄧ涓嬭澆宸茬粡鏇存柊濂界殑紼嬪簭榪愯錛岃屼笉蹇呯悊浼氱箒鐞愮殑涓嬭澆銆佸畨瑁呭拰閰嶇疆鐨勮繃紼嬨?o:p>
榪欓噷涓嶅緱涓嶆彁Java鐨勬槸WebStart鎶鏈?o:p>
WebStart鏄鐢ㄦ埛鍙渶鍦ㄧ綉欏典笂鐐瑰嚮涓涓秴綰ч摼鎺ュ氨鑳借繍琛屼竴涓狫ava妗岄潰搴旂敤鐨勬妧鏈傚浜庝竴涓嫢鏈塛ebStart鑳藉姏鐨凧ava搴旂敤鏉ヨ錛岀敤鎴蜂嬌鐢ㄥ畠灝卞拰浣跨敤WEB搴旂敤涓鏍風殑綆鍗曪紝浣嗗畠鎵鍏鋒湁鐨勭晫闈㈣兘鍔涘拰鏈湴澶勭悊鑳藉姏鍗存槸WEB搴旂敤鏃犳硶鏈涘叾欏硅儗鐨勩?o:p>
鍏蜂綋鐨勫簲鐢ㄧ殑鎶鏈煡璇嗗彲浠ヤ粠http://java.sun.com涓鎵劇浉鍏蟲枃妗o紝榪欓噷涓嶄竴涓璧樿堪銆?o:p>
Rich Client鐨勯氫俊鏈哄埗
闄や簡蹇嵎鏂逛究鐨勫彂甯冨錛孯ich Client榪橀渶瑕佷笌鏈嶅姟鍣ㄧ寤虹珛涓縐嶅揩閫熴佸彲闈犮佸己澶с佹槗鐢ㄧ殑閫氫俊浜や簰鏈哄埗銆備絾鎴戜滑寮鍙慦EB搴旂敤鏃訛紝琛ㄧ幇灞傚拰涓氬姟鏈嶅姟灞傚父甯稿彧鏄悓涓涓繘紼嬩腑鐨勪笉鍚屽璞★紝瀹冧滑涔嬮棿鐨勪氦浜掍笉榪囨槸Java鐨勬柟娉曡皟鐢ㄨ屽凡錛屽綋琛ㄧ幇灞傞昏緫琚垎鍙戝埌涓栫晫鍚勫湴鐨勮綆楁満涓婏紝瀹㈡埛绔拰鏈嶅姟鍣ㄤ箣闂寸殑浜や簰灝辨垚浜嗕竴涓ぇ闂鈥斺斾粠鍓嶇殑C/S琚窐姹幫紝寰堝ぇ紼嬪害涓婂綊鍜庝簬socket閫氫俊鐨勫鏉傛с?o:p>
鐜板湪錛屽艦褰㈣壊鑹茬殑RPC錛堣繙紼嬭繃紼嬭皟鐢紝Remote Procedure Call錛夋妧鏈互鐙壒鐨勪紭鍔挎壆婕旇搗浜嗕俊浣跨殑瑙掕壊銆備互涓嬪垪涓懼嚑縐峈ich Client鍙互閲囩敤鐨勯氫俊鏈哄埗銆?o:p>
CORBA鍜?/b>RMI
CORBA錛堥氱敤瀵硅薄璇鋒眰浠g悊浣撶郴緇撴瀯錛孋ommon Object Request Broker Architecture錛夋浘緇忕孩鏋佷竴鏃訛紝瀹冭兘澶熷吋瀹瑰悇縐嶆搷浣滅郴緇熷鉤鍙扮殑璇█錛屽己澶х殑鐨勫彲鎵╁睍鎬ф墍甯︽潵鐨勮礋闈㈠獎鍝嶅氨鏄疄鐜扮殑澶嶆潅鍜岀箒鐞愩傚鏋滄湇鍔″櫒绔拰瀹㈡埛绔兘閲囩敤Java寮鍙戯紝閭d箞CORBA鎵闇瑕佺殑璇█鏃犲叧鐨処DL灝卞畬鍏ㄥ彉鎴愪簡鐢昏泧娣昏凍銆傚綋鐒訛紝瀵逛簬闇瑕侀泦鎴愬ぇ閲忎紒涓氬唴閬楃暀鐨勭郴緇熺殑EAI錛堜紒涓氬簲鐢ㄩ泦鎴愶級欏圭洰涓紝瀹冧竴鐩存槸棣栭夌殑鎶鏈?/p>
鍩烘湰姒傚康
Windows 2000 浣跨敤鍩轟簬鍒嗛〉鏈哄埗鐨勮櫄鎷熷唴瀛樸傛瘡涓繘紼嬫湁4GB鐨勮櫄鎷熷湴鍧絀洪棿銆傚熀浜庡垎欏墊満鍒訛紝榪?GB鍦板潃絀洪棿鐨勪竴浜涢儴鍒嗚鏄犲皠浜嗙墿鐞嗗唴瀛橈紝涓浜涢儴鍒嗘槧灝勭‖鐩樹笂鐨勪氦鎹㈡枃浠訛紝涓浜涢儴鍒嗕粈涔堜篃娌℃湁鏄犲皠銆傜▼搴忎腑浣跨敤鐨勯兘鏄?GB鍦板潃絀洪棿涓殑铏氭嫙鍦板潃銆傝岃闂墿鐞嗗唴瀛橈紝闇瑕佷嬌鐢ㄧ墿鐞嗗湴鍧銆?BR>
涓嬮潰鎴戜滑鐪嬬湅浠涔堟槸鐗╃悊鍦板潃錛屼粈涔堟槸铏氭嫙鍦板潃銆?BR>
鐗╃悊鍦板潃 (physical address): 鏀懼湪瀵誨潃鎬葷嚎涓婄殑鍦板潃銆傛斁鍦ㄥ鍧鎬葷嚎涓婏紝濡傛灉鏄錛岀數璺牴鎹繖涓湴鍧姣忎綅鐨勫煎氨灝嗙浉搴斿湴鍧鐨勭墿鐞嗗唴瀛樹腑鐨勬暟鎹斁鍒版暟鎹葷嚎涓紶杈撱傚鏋滄槸鍐欙紝鐢佃礬鏍規嵁榪欎釜鍦板潃姣忎綅鐨勫煎氨灝嗙浉搴斿湴鍧鐨勭墿鐞嗗唴瀛樹腑鏀懼叆鏁版嵁鎬葷嚎涓婄殑鍐呭銆傜墿鐞嗗唴瀛樻槸浠ュ瓧鑺?8浣?涓哄崟浣嶇紪鍧鐨勩?BR>
铏氭嫙鍦板潃 (virtual address): 4G铏氭嫙鍦板潃絀洪棿涓殑鍦板潃錛岀▼搴忎腑浣跨敤鐨勯兘鏄櫄鎷熷湴鍧銆?BR>
濡傛灉CPU瀵勫瓨鍣ㄤ腑鐨勫垎欏墊爣蹇椾綅琚緗紝閭d箞鎵ц鍐呭瓨鎿嶄綔鐨勬満鍣ㄦ寚浠ゆ椂錛孋PU浼氳嚜鍔ㄦ牴鎹〉鐩綍鍜岄〉琛ㄤ腑鐨勪俊鎭紝鎶婅櫄鎷熷湴鍧杞崲鎴愮墿鐞嗗湴鍧錛屽畬鎴愯鎸囦護銆傛瘮濡?mov eax,004227b8h 錛岃繖鏄妸鍦板潃004227b8h澶勭殑鍊艱祴緇欏瘎瀛樺櫒鐨勬眹緙栦唬鐮侊紝004227b8榪欎釜鍦板潃灝辨槸铏氭嫙鍧銆侰PU鍦ㄦ墽琛岃繖琛屼唬鐮佹椂錛屽彂鐜板瘎瀛樺櫒涓殑鍒嗛〉鏍囧織浣嶅凡緇忚璁懼畾錛屽氨鑷姩瀹屾垚铏氭嫙鍦板潃鍒扮墿鐞嗗湴鍧鐨勮漿鎹紝浣跨敤鐗╃悊鍦板潃鍙栧嚭鍊鹼紝瀹屾垚鎸囦護銆傚浜嶪ntel CPU 鏉ヨ錛屽垎欏墊爣蹇椾綅鏄瘎瀛樺櫒CR0鐨勭31浣嶏紝涓?琛ㄧず浣跨敤鍒嗛〉錛屼負0琛ㄧず涓嶄嬌鐢ㄥ垎欏點傚浜庡垵濮嬪寲涔嬪悗鐨?Win2k 鎴戜滑瑙傚療 CR0 錛屽彂鐜扮31浣嶄負1銆傝〃鏄嶹in2k鏄嬌鐢ㄥ垎欏電殑銆?BR>
浣跨敤浜嗗垎欏墊満鍒朵箣鍚庯紝4G鐨勫湴鍧絀洪棿琚垎鎴愪簡鍥哄畾澶у皬鐨勯〉錛屾瘡涓欏墊垨鑰呰鏄犲皠鍒扮墿鐞嗗唴瀛橈紝鎴栬呰鏄犲皠鍒扮‖鐩樹笂鐨勪氦鎹㈡枃浠朵腑錛屾垨鑰呮病鏈夋槧灝勪換浣曚笢瑗褲傚浜庝竴鑸▼搴忔潵璇達紝4G鐨勫湴鍧絀洪棿錛屽彧鏈変竴灝忛儴鍒嗘槧灝勪簡鐗╃悊鍐呭瓨錛屽ぇ鐗囧ぇ鐗囩殑閮ㄥ垎鏄病鏈夋槧灝勪換浣曚笢瑗褲傜墿鐞嗗唴瀛樹篃琚垎欏碉紝鏉ユ槧灝勫湴鍧絀洪棿銆傚浜?2bit鐨刉in2k錛岄〉鐨勫ぇ灝忔槸4K瀛楄妭銆侰PU鐢ㄦ潵鎶婅櫄鎷熷湴鍧杞崲鎴愮墿鐞嗗湴鍧鐨勪俊鎭瓨鏀懼湪鍙仛欏電洰褰曞拰欏佃〃鐨勭粨鏋勯噷銆?BR>
鐗╃悊鍐呭瓨鍒嗛〉錛屼竴涓墿鐞嗛〉鐨勫ぇ灝忎負4K瀛楄妭錛岀0涓墿鐞嗛〉浠庣墿鐞嗗湴鍧 0x00000000 澶勫紑濮嬨傜敱浜庨〉鐨勫ぇ灝忎負4KB錛屽氨鏄?x1000瀛楄妭錛屾墍浠ョ1欏典粠鐗╃悊鍦板潃 0x00001000 澶勫紑濮嬨傜2欏典粠鐗╃悊鍦板潃 0x00002000 澶勫紑濮嬨傚彲浠ョ湅鍒扮敱浜庨〉鐨勫ぇ灝忔槸4KB錛屾墍浠ュ彧闇瑕?2bit鐨勫湴鍧涓珮20bit鏉ュ鍧鐗╃悊欏點?/FONT>
欏佃〃錛屼竴涓〉琛ㄧ殑澶у皬涓?K瀛楄妭錛屾斁鍦ㄤ竴涓墿鐞嗛〉涓傜敱1024涓?瀛楄妭鐨勯〉琛ㄩ」緇勬垚銆傞〉琛ㄩ」鐨勫ぇ灝忎負4涓瓧鑺?32bit)錛屾墍浠ヤ竴涓〉琛ㄤ腑鏈?024涓〉琛ㄩ」銆傞〉琛ㄤ腑鐨勬瘡涓欏圭殑鍐呭錛堟瘡欏?涓瓧鑺?32bit錛夐珮20bit鐢ㄦ潵鏀句竴涓墿鐞嗛〉鐨勭墿鐞嗗湴鍧錛屼綆12bit鏀劇潃涓浜涙爣蹇椼?BR>
欏電洰褰曪紝涓涓〉鐩綍澶у皬涓?K瀛楄妭錛屾斁鍦ㄤ竴涓墿鐞嗛〉涓傜敱1024涓?瀛楄妭鐨勯〉鐩綍欏圭粍鎴愩傞〉鐩綍欏圭殑澶у皬涓?涓瓧鑺?32bit)錛屾墍浠ヤ竴涓〉鐩綍涓湁1024涓〉鐩綍欏廣傞〉鐩綍涓殑姣忎竴欏圭殑鍐呭錛堟瘡欏?涓瓧鑺傦級楂?0bit鐢ㄦ潵鏀句竴涓〉琛紙欏佃〃鏀懼湪涓涓墿鐞嗛〉涓級鐨勭墿鐞嗗湴鍧錛屼綆12bit鏀劇潃涓浜涙爣蹇椼?/FONT>
瀵逛簬x86緋葷粺錛岄〉鐩綍鐨勭墿鐞嗗湴鍧鏀懼湪CPU鐨凜R3瀵勫瓨鍣ㄤ腑銆?BR>
CPU鎶婅櫄鎷熷湴鍧杞崲鎴愮墿鐞嗗湴鍧錛?BR> 涓涓櫄鎷熷湴鍧錛屽ぇ灝?涓瓧鑺?32bit)錛屽寘鍚潃鎵懼埌鐗╃悊鍦板潃鐨勪俊鎭紝鍒嗕負3涓儴鍒嗭細絎?2浣嶅埌絎?1浣嶈繖10浣嶏紙鏈楂?0浣嶏級鏄〉鐩綍涓殑绱㈠紩錛岀12浣嶅埌絎?1浣嶈繖10浣嶆槸欏佃〃涓殑绱㈠紩錛岀0浣嶅埌絎?1浣嶈繖12浣嶏紙浣?2浣嶏級鏄〉鍐呭亸縐匯傚浜庝竴涓杞崲鎴愮墿鐞嗗湴鍧鐨勮櫄鎷熷湴鍧錛孋PU棣栧厛鏍規嵁CR3涓殑鍊鹼紝鎵懼埌欏電洰褰曟墍鍦ㄧ殑鐗╃悊欏點傜劧鍚庢牴鎹櫄鎷熷湴鍧鐨勭22浣嶅埌絎?1浣嶈繖10浣嶏紙鏈楂樼殑10bit)鐨勫間綔涓虹儲寮曪紝鎵懼埌鐩稿簲鐨勯〉鐩綍欏?PDE,page directory entry),欏電洰褰曢」涓湁榪欎釜铏氭嫙鍦板潃鎵瀵瑰簲欏佃〃鐨勭墿鐞嗗湴鍧銆傛湁浜嗛〉琛ㄧ殑鐗╃悊鍦板潃錛屾牴鎹櫄鎷熷湴鍧鐨勭12浣嶅埌絎?1浣嶈繖10浣嶇殑鍊間綔涓虹儲寮曪紝鎵懼埌璇ラ〉琛ㄤ腑鐩稿簲鐨勯〉琛ㄩ」(PTE,page table entry),欏佃〃欏逛腑灝辨湁榪欎釜铏氭嫙鍦板潃鎵瀵瑰簲鐗╃悊欏電殑鐗╃悊鍦板潃銆傛渶鍚庣敤铏氭嫙鍦板潃鐨勬渶浣?2浣嶏紝涔熷氨鏄〉鍐呭亸縐伙紝鍔犱笂榪欎釜鐗╃悊欏電殑鐗╃悊鍦板潃錛屽氨寰楀埌浜嗚铏氭嫙鍦板潃鎵瀵瑰簲鐨勭墿鐞嗗湴鍧銆?/FONT>
涓涓〉鐩綍鏈?024欏癸紝铏氭嫙鍦板潃鏈楂樼殑10bit鍒氬ソ鍙互绱㈠紩1024欏癸紙2鐨?0嬈℃柟絳変簬1024錛夈備竴涓〉琛ㄤ篃鏈?024欏癸紝铏氭嫙鍦板潃涓棿閮ㄥ垎鐨?0bit錛屽垰濂界儲寮?024欏廣傝櫄鎷熷湴鍧鏈浣庣殑12bit錛?鐨?2嬈℃柟絳変簬4096錛夛紝浣滀負欏靛唴鍋忕Щ錛屽垰濂藉彲浠ョ儲寮?KB錛屼篃灝辨槸涓涓墿鐞嗛〉涓殑姣忎釜瀛楄妭銆?/FONT>
涓涓櫄鎷熷湴鍧杞崲鎴愮墿鐞嗗湴鍧鐨勮綆楄繃紼嬪氨鏄紝澶勭悊鍣ㄩ氳繃CR3鎵懼埌褰撳墠欏電洰褰曟墍鍦ㄧ墿鐞嗛〉錛屽彇铏氭嫙鍦板潃鐨勯珮10bit,鐒跺悗鎶婅繖10bit鍙崇Щ2bit錛堝洜涓烘瘡涓〉鐩綍欏?涓瓧鑺傞暱錛屽彸縐?bit鐩稿綋浜庝箻4錛夊緱鍒板湪璇ラ〉涓殑鍦板潃錛屽彇鍑鴻鍦板潃澶凱DE錛?涓瓧鑺傦級錛屽氨鎵懼埌浜嗚铏氭嫙鍦板潃瀵瑰簲欏佃〃鎵鍦ㄧ墿鐞嗛〉錛屽彇铏氭嫙鍦板潃絎?2浣嶅埌絎?1浣嶈繖10浣嶏紝鐒跺悗鎶婅繖10bit鍙崇Щ2bit錛堝洜涓烘瘡涓〉琛ㄩ」4涓瓧鑺傞暱錛屽彸縐?bit鐩稿綋浜庝箻4錛夊緱鍒板湪璇ラ〉涓殑鍦板潃錛屽彇鍑鴻鍦板潃澶勭殑PTE錛?涓瓧鑺傦級錛屽氨鎵懼埌浜嗚铏氭嫙鍦板潃瀵瑰簲鐗╃悊欏電殑鍦板潃錛屾渶鍚庡姞涓?2bit鐨勯〉鍐呭亸縐誨緱鍒頒簡鐗╃悊鍦板潃銆?BR>
32bit鐨勪竴涓寚閽堬紝鍙互瀵誨潃鑼冨洿0x00000000-0xFFFFFFFF,4GB澶у皬銆備篃灝辨槸璇翠竴涓?2bit鐨勬寚閽堝彲浠ュ鍧鏁翠釜4GB鍦板潃絀洪棿鐨勬瘡涓涓瓧鑺傘備竴涓〉琛ㄩ」璐熻矗4K鐨勫湴鍧絀洪棿鍜岀墿鐞嗗唴瀛樼殑鏄犲皠錛屼竴涓〉琛?024欏癸紝涔熷氨鏄礋璐?024*4k=4M鐨勫湴鍧絀洪棿鐨勬槧灝勩備竴涓〉鐩綍欏癸紝瀵瑰簲涓涓〉琛ㄣ備竴涓〉鐩綍鏈?024欏癸紝涔熷氨瀵瑰簲鐫1024涓〉琛紝姣忎釜欏佃〃璐熻矗4M鍦板潃絀洪棿鐨勬槧灝勩?024涓〉琛ㄨ礋璐?024*4M=4G鐨勫湴鍧絀洪棿鏄犲皠銆備竴涓繘紼嬫湁涓涓〉鐩綍銆傛墍浠ヤ互欏典負鍗曚綅錛岄〉鐩綍鍜岄〉琛ㄥ彲浠ヤ繚璇?G鐨勫湴鍧絀洪棿涓殑姣忛〉鍜岀墿鐞嗗唴瀛樼殑鏄犲皠銆?BR>
姣忎釜榪涚▼閮芥湁鑷繁鐨?G鍦板潃絀洪棿錛屼粠 0x00000000-0xFFFFFFFF 銆傞氳繃姣忎釜榪涚▼鑷繁鐨勪竴濂楅〉鐩綍鍜岄〉琛ㄦ潵瀹炵幇銆傜敱浜庢瘡涓繘紼嬫湁鑷繁鐨勯〉鐩綍鍜岄〉琛紝鎵浠ユ瘡涓繘紼嬬殑鍦板潃絀洪棿鏄犲皠鐨勭墿鐞嗗唴瀛樻槸涓嶄竴鏍風殑銆備袱涓繘紼嬬殑鍚屼竴涓櫄鎷熷湴鍧澶勶紙濡傛灉閮芥湁鐗╃悊鍐呭瓨鏄犲皠錛夌殑鍊間竴鑸槸涓嶅悓鐨勶紝鍥犱負浠栦滑寰寰瀵瑰簲涓嶅悓鐨勭墿鐞嗛〉銆?BR>
4G鍦板潃絀洪棿涓綆2G錛?x00000000-0x7FFFFFFF 鏄敤鎴峰湴鍧絀洪棿錛?G鍦板潃絀洪棿涓珮2G錛?BR>0x80000000-0xFFFFFFFF 鏄郴緇熷湴鍧絀洪棿銆傝闂郴緇熷湴鍧絀洪棿闇瑕佺▼搴忔湁ring0鐨勬潈闄愩?/FONT>
浣滆? JIURL
鍦ㄥ墠闈㈢殑绔犺妭涓紝鎴戜滑宸茬粡浜嗚В浜嗗瘎瀛樺櫒鐨勫熀鏈嬌鐢ㄦ柟娉曘傝屾濡傜粨灝炬彁鍒扮殑閭f牱錛屼粎浠呬嬌鐢ㄥ瘎瀛樺櫒鍋氫竴鐐硅繍綆楁槸娌℃湁浠涔堝お澶ф剰涔夌殑錛屾瘯绔熷畠浠笉鑳戒繚瀛樺お澶氱殑鏁版嵁錛屽洜姝わ紝瀵圭紪紼嬩漢鍛樿岃█錛屼粬鑲畾榪垏鍦板笇鏈涜闂唴瀛橈紝浠ヤ繚瀛樻洿澶氱殑鏁版嵁銆?/P>
鎴戝皢鍒嗗埆浠嬬粛濡備綍鍦ㄤ繚鎶ゆā寮忓拰瀹炴ā寮忔搷浣滃唴瀛橈紝鐒惰屽湪姝や箣鍓嶏紝鎴戜滑鍏堢啛鎮変竴涓嬭繖涓ょ妯″紡涓唴瀛樼殑緇撴瀯銆?/P>
浜嬪疄涓婏紝鍦ㄥ疄妯″紡涓紝鍐呭瓨姣斾繚鎶ゆā寮忎腑鐨勭粨鏋勬洿浠や漢鍥版儜銆傚唴瀛樿鍒嗗壊鎴愭錛屽茍涓旓紝鎿嶄綔鍐呭瓨鏃訛紝闇瑕佹寚瀹氭鍜屽亸縐婚噺銆備笉榪囷紝鐞嗚В榪欎簺姒傚康鏄潪甯稿鏄撶殑浜嬫儏銆傝鐪嬩笅闈㈢殑鍥撅細 孌?瀵勫瓨鍣ㄨ繖縐嶆牸灞鏄棭鏈熺‖浠剁數璺檺鍒剁暀涓嬬殑涓涓激鐤ゃ傚湴鍧鎬葷嚎鍦ㄥ綋鏃舵湁20-bit銆?/P>
鐒惰?0-bit鐨勫湴鍧涓嶈兘鏀懼埌16-bit鐨勫瘎瀛樺櫒閲岋紝榪欐剰鍛崇潃鏈?-bit蹇呴』鏀懼埌鍒殑鍦版柟銆傚洜姝わ紝涓轟簡璁塊棶鎵鏈夌殑鍐呭瓨錛屽繀欏諱嬌鐢ㄤ袱涓?6-bit瀵勫瓨鍣ㄣ?/P>
榪欎竴璁捐涓婄殑鎶樿》鏂規瀵艱嚧浜嗕粖澶╃殑孌?鍋忕Щ閲忔牸灞銆傛渶鍒濈殑璁捐涓紝鍏朵腑涓涓瘎瀛樺櫒鍙湁4-bit鏈夋晥錛岀劧鑰屼負浜嗙畝鍖栫▼搴忥紝涓や釜瀵勫瓨鍣ㄩ兘鏄?6-bit鏈夋晥錛屽茍鍦ㄦ墽琛屾椂姹傚嚭鍔犳潈鍜屾潵鏍囪瘑20-bit鍦板潃銆?/P>
鍋忕Щ閲忔槸16-bit鐨勶紝鍥犳錛屼竴涓鏄?4KB銆備笅闈㈢殑鍥懼彲浠ュ府鍔╀綘鐞嗚В20-bit鍦板潃鏄浣曞艦鎴愮殑錛?/P>
孌?鍋忕Щ閲忔爣璇嗙殑鍦板潃閫氬父璁板仛 孌?鍋忕Щ閲?鐨勫艦寮忋?/P>
鐢變簬榪欐牱鐨勭粨鏋勶紝涓涓唴瀛樻湁澶氫釜瀵瑰簲鐨勫湴鍧銆備緥濡傦紝0000:0010鍜?001:0000鎸囩殑鏄悓涓鍐呭瓨鍦板潃銆傚張濡傦紝 0000:1234 = 0123:0004 = 0120:0034 = 0100:0234 浣滀負璐熼潰褰卞搷涔嬩竴錛屽湪孌典笂鍔?鐩稿綋浜庡湪鍋忕Щ閲忎笂鍔?6錛岃屼笉鏄竴涓滃叏鏂扳濈殑孌點傚弽涔嬶紝鍦ㄥ亸縐婚噺涓婂姞16涔熷拰鍦ㄦ涓婂姞1絳変環銆傛煇浜涙椂鍊欙紝鎹璁や負孌電殑鈥滅矑搴︹濇槸16瀛楄妭銆?/P>
緇冧範棰?BR>灝濊瘯涓涓嬪皢涓嬮潰鐨勫湴鍧杞寲涓?0bit鐨勫湴鍧錛?/P>
紼嶉珮涓浜涚殑瑕佹眰鏄紝鍐欎竴涓▼搴忓皢孌典負AX銆佸亸縐婚噺涓築X鐨勫湴鍧杞崲涓?0bit鐨勫湴鍧錛屽茍淇濆瓨浜嶦AX涓?/P>
[涓婇潰涔犻鐨勭瓟妗?/SPAN>] 鎴戜滑鐜板湪鍙互鍐欎竴涓湡姝g殑紼嬪簭浜嗐?/P>
緇忓吀紼嬪簭錛欻ello, world 銆 閭d箞錛屾垜浠渶瑕佽В閲婂緢澶氫笢瑗褲?/P>
棣栧厛錛屼綔涓烘眹緙栬璦鐨勬娊璞★紝C璇█鎷ユ湁鈥滄寚閽堚濊繖涓暟鎹被鍨嬨傚湪姹囩紪璇█涓紝鍑犱箮鎵鏈夊鍐呭瓨鐨勬搷浣滈兘鏄敱瀵圭粰瀹氬湴鍧鐨勫唴瀛樿繘琛岃闂潵瀹屾垚鐨勩傝繖鏍鳳紝鍦ㄦ眹緙栬璦涓紝緇濆ぇ澶氭暟鎿嶄綔閮借鍜屾寚閽堜駭鐢熸垨澶氭垨灝戠殑鑱旂郴銆?/P>
榪欓噷鎴戞兂寮鴻皟鐨勬槸錛岀敱浜庤繖涓鐗規э紝姹囩紪璇█涓悓鏍蜂細鍑虹幇C紼嬪簭涓父瑙佺殑緙撳啿鍖烘孩鍑洪棶棰樸傚鏋滀綘姝e湪璁捐涓涓笌瀹夊叏鏈夊叧鐨勭郴緇燂紝閭d箞鏈濂芥槸浠旂粏媯鏌ヤ綘鐢ㄥ埌鐨勬瘡涓涓覆錛屼緥濡傦紝瀹冧滑鏄惁涓瀹氳兘澶熶互浣犻鏈熺殑鏂瑰紡緇撴潫錛屼互鍙婏紙濡傛灉浣跨敤鐨勮瘽錛変綘鐨勭紦鍐插尯鏄惁鑳戒繚璇佸疄闄呭彲鑳借緭鍏ョ殑鏁版嵁涓嶈鍐欏叆鍒板畠浠ュ鐨勫湴鏂廣備綔涓轟竴涓眹緙栬璦紼嬪簭鍛橈紝浣犳湁涔夊姟媯鏌ユ瘡涓琛屼唬鐮佺殑鍙敤鎬с?/P>
紼嬪簭涓殑equ浼寚浠ゆ槸瀹忔眹緙栫壒鏈夌殑錛屽畠鐨勬剰鎬濇帴榪戜簬C鎴朠ascal涓殑const錛堝父閲忥級銆傚鏁版儏鍐典笅錛宔qu浼寚浠ゅ茍涓嶄負絎﹀彿鍒嗛厤絀洪棿銆?/P>
姝ゅ錛屾眹緙栫▼搴忔墽琛屼竴欏規搷浣滄槸闈炲父綣佺悙鐨勶紝閫氬父錛屽湪瀵逛笌鏁堢巼瑕佹眰涓嶉珮鐨勫湴鏂癸紝鎴戜滑涔犳儻浣跨敤緋葷粺鎻愪緵鐨勪腑鏂湇鍔℃潵瀹屾垚浠誨姟銆備緥濡傛湰渚嬩腑鐨勪腑鏂?1h錛屽畠鏄疍OS鏃朵唬鐨勪腑鏂湇鍔★紝鍦╓indows涓紝瀹冧篃琚涓烘槸Windows API鐨勪竴閮ㄥ垎錛堣繖涓鐐瑰彲浠ュ湪Microsoft鐨勬枃妗d腑鏌ュ埌錛夈備腑鏂彲浠ヨ鐞嗚В涓洪珮綰ц璦涓殑瀛愮▼搴忥紝浣嗗張涓嶅畬鍏ㄤ竴鏍封斺斾腑鏂嬌鐢ㄧ郴緇熸爤鏉ヤ繚瀛樺綋鍓嶇殑鏈哄櫒鐘舵侊紝鍙互鐢辯‖浠跺彂璧鳳紝閫氳繃淇敼鏈哄櫒鐘舵佸瓧鏉ュ弽棣堜俊鎭紝絳夌瓑銆?/P>
閭d箞錛屾渶鍚庝竴孌甸氳繃DB瀛樻斁鐨勬暟鎹埌搴曚繚瀛樺湪鍝噷浜嗗憿錛熺瓟妗堟槸绱ф尐鐫浠g爜瀛樻斁銆傚湪姹囩紪璇█涓紝DB鍜屾櫘閫氱殑鎸囦護鐨勫湴浣嶆槸鐩稿悓鐨勩傚鏋滀綘鐨勬眹緙栫▼搴忓茍涓嶇煡閬撴柊鐨勫姪璁扮錛堜緥濡傦紝鏂扮殑澶勭悊鍣ㄤ笂鐨凜PUID鎸囦護錛夛紝鑰屼綘寰堟竻妤氾紝閭d箞鍙互鐢―B 鏈哄櫒鐮佺殑鏂瑰紡寮鴻鍐欎笅鎸囦護銆傝繖鎰忓懗鐫錛屼綘鍙互瓚呰秺姹囩紪鍣ㄧ殑鑳藉姏鎾板啓姹囩紪紼嬪簭錛岀劧鑰岋紝鐩存帴鐢ㄦ満鍣ㄧ爜緙栫▼鏄嚑涔庤偗瀹氭槸涓浠惰垂鍔涗笉璁ㄥソ鐨勪簨鈥斺旀眹緙栧櫒鍘傚晢浼氱粡甯告洿鏂板畠鎵鏀寔鐨勬寚浠ら泦浠ラ傚簲甯傚満闇瑕侊紝鑰屼笖錛屼綘鍙互鏈熷緟浣犵殑姹囩紪鍏惰兘澶熶駭鐢熸紜殑浠g爜錛屽洜涓烘満鍣ㄦ煡琛ㄦ槸涓嶄細鍑洪敊鐨勩傛棦鐒舵満鍣ㄨ兘澶熷府鎴戜滑鍋氬皢紼嬪簭杞崲涓轟唬鐮佽繖浠朵簨鎯咃紝閭d箞涓轟粈涔堜笉璁╁畠鏉ュ仛鍛紵 緇嗗績鐨勮鑰呬笉闅懼彂鐜幫紝鍦ㄧ▼搴忎腑鎴戜滑娌℃湁瀵笵S榪涜璧嬪箋傞偅涔堬紝榪欐槸鍚︽剰鍛崇潃紼嬪簭鐨勭粨鏋滃皢鏄笉鍙嫻嬬殑鍛紵絳旀鏄惁瀹氱殑銆侱OS錛堟垨Windows涓殑MS-DOS VM錛夊湪鍔犺澆.com鏂囦歡鐨勬椂鍊欙紝浼氬瀵勫瓨鍣ㄨ繘琛屽緢澶氬垵濮嬪寲銆?com鏂囦歡琚檺鍒朵負灝忎簬64KB錛岃繖鏍鳳紝瀹冪殑浠g爜孌點佹暟鎹閮借瑁呭叆鍚屾牱鐨勬暟鍊鹼紙鍗籌紝鍒濆鐘舵佷笅DS=CS錛夈?/P>
涔熻浼氭湁浜鴻錛屸滃樋錛岃繖鍚搗鏉ヤ笉澶ソ錛屼竴涓?4KB鐨勭▼搴忚兘鍋氬緱浜嗕粈涔堝憿錛熻繕鏈夛紝浣犲惞寰楀ぉ鑺變貢鍧犵殑鍫嗘爤孌靛湪浠涔堝湴鏂癸紵鈥濋偅涔堬紝鎴戜滑鏉ョ湅鐪嬩笅闈㈣繖涓柊鐨凥ello world紼嬪簭錛屽畠鏄竴涓狤XE鏂囦歡錛屽湪DOS瀹炴ā寮忎笅榪愯銆?/P>
; 閲囩敤鈥淪MALL鈥濆唴瀛樻ā鍨?BR>; 鍫嗘爤孌?/FONT> ; 鍥炶濺 ; 瀹氫箟鏁版嵁孌?/FONT> ; 瀹氫箟鏄劇ず涓?/FONT> ; 瀹氫箟浠g爜孌?/FONT> ; 璁劇疆DX 561瀛楄妭錛熷疄鐜扮浉鍚屽姛鑳界殑紼嬪簭澶т簡榪欎箞澶氾紒涓轟粈涔堝憿錛熸垜浠湅鍒幫紝紼嬪簭鎷ユ湁浜嗗畬鏁寸殑鍫嗘爤孌點佹暟鎹銆佷唬鐮佹錛屽叾涓爢鏍堟瓚寵凍鍗犳帀浜?12瀛楄妭錛屽叾浣欑殑鍩烘湰涓婃病浠涔堝彉鍖栥?/P>
鍒嗘垚澶氫釜孌墊湁浠涔堝ソ澶勫憿錛熼鍏堬紝瀹冭紼嬪簭鏄懼緱鏇村姞娓呮櫚鈥斺斾綘鑲畾鏇存効鎰忕湅涓涓粨鏋勬竻妤氱殑紼嬪簭錛屼唬鐮佷腑hard-coded鐨勫瓧絎︿覆銆佹暟鎹浜鴻寰楄垂瑙c傛瘮濡傦紝mov dx, 0152h鑲畾涓嶅mov dx, offset Message鏉ョ殑浜插垏銆傛澶栵紝閫氳繃鍒嗘浣犲彲浠ヤ嬌鐢ㄦ洿澶氱殑鍐呭瓨錛屾瘮濡傦紝浠g爜孌佃吘鍑虹殑絀洪棿鍙互鍋氭洿澶氱殑浜嬫儏銆俥xe鏂囦歡鍙︿竴涓惛寮曚漢鐨勫湴鏂規槸瀹冭兘澶熷疄鐜扳滈噸瀹氫綅鈥濄傜幇鍦ㄤ綘涓嶉渶瑕佹寚瀹氱▼搴忓叆鍙g偣鐨勫湴鍧浜嗭紝鍥犱負緋葷粺浼氭壘鍒頒綘鐨勭▼搴忓叆鍙g偣錛岃屼笉鏄鏉跨殑100h銆?/P>
紼嬪簭涓殑絎﹀彿涔熶細鍦ㄧ郴緇熷姞杞界殑鏃跺欓噸鏂拌祴浜堟柊鐨勫湴鍧銆俥xe紼嬪簭鑳藉淇濊瘉浣犵殑璁捐瀹規槗鍦拌瀹炵幇錛屼笉闇瑕佽冭檻澶鐨勭粏鑺傘?/P>
褰撶劧錛屾垜浠殑涓昏鐩殑鏄皢姹囩紪璇█浣滀負楂樼駭璇█鐨勪竴涓湁鐢ㄧ殑琛ュ厖銆傚鎴戝湪寮濮嬫彁鍒扮殑閭f牱錛岀湡姝e畬鍏ㄧ敤姹囩紪璇█瀹炵幇鐨勭▼搴忎笉涓瀹氬氨濂斤紝鍥犱負瀹冧笉渚夸簬緇存姢錛岃屼笖錛岀敱浜庣粨鏋勭殑鍘熷洜錛屼綘涔熶笉澶鏄撶‘淇濆畠鏄紜殑錛涙眹緙栬璦鏄竴縐嶉潪緇撴瀯鍖栫殑璇█錛岃皟璇曚竴涓簿蹇冭璁$殑姹囩紪璇█紼嬪簭錛屽嵆浣垮浜庝竴涓佹墜鏉ヨ涔熶笉鍟繪槸涓鍦烘伓姊︼紝鍥犱負浣犲緢鍙兘鎺夊埌鍒漢棰勮鐨勨滈櫡闃扁濅腑鈥斺旇繖浜涙妧宸х‘瀹炴彁楂樹簡浠g爜鎬ц兘錛岀劧鑰屼綘寰堝彲鑳戒笉鐞嗚В瀹冿紝浜庢槸浣犳妸瀹冩敼鎺夛紝鎺ョ潃灝卞彂鐜扮▼搴忓交搴曡觸鎺変簡銆備嬌鐢ㄦ眹緙栬璦鍔犲己楂樼駭璇█紼嬪簭鏃訛紝浣犺鍋氱殑閫氬父鍙槸浣跨敤姹囩紪鎸囦護錛岃屼笉蹇呮惌寤哄畬鏁寸殑姹囩紪紼嬪簭銆傜粷澶у鏁幫紙涔熸槸鐩墠鎴戦亣鍒扮殑鍏ㄩ儴錛塁/C++緙栬瘧鍣ㄩ兘鏀寔鍐呭祵姹囩紪錛屽嵆鍦ㄧ▼搴忎腑浣跨敤姹囩紪璇█錛岃屼笉蹇呮挵鍐欏崟鐙殑姹囩紪璇█紼嬪簭鈥斺旇繖鍙互鑺傜渷浣犵殑涓嶅皯綺懼姏錛屽洜涓哄墠闈㈣榪扮殑閭d簺浼寚浠わ紝濡俥qu絳夛紝閮藉彲浠ョ敤浣犵啛鎮夌殑楂樼駭璇█鏂瑰紡鏉ョ紪鍐欙紝緙栬瘧鍣ㄤ細鎶婂畠杞崲涓洪傚綋鐨勫艦寮忋?/P>
闇瑕佽鏄庣殑鏄紝鍦ㄩ珮綰ц璦涓竴瀹氳娉ㄦ剰緙栬瘧緇撴灉銆傜紪璇戝櫒浼氬浣犵殑姹囩紪紼嬪簭鍋氫竴浜涗慨鏀癸紝榪欎笉涓瀹氱鍚堜綘鐨勮姹傦紙闄勫甫璇翠竴鍙ワ紝鏈夋椂緙栬瘧鍣ㄤ細寰堣仾鏄庡湴璋冩暣鎸囦護欏哄簭鏉ユ彁楂樻ц兘錛岃繖縐嶆儏鍐典笅鏈濂芥祴璇曚竴涓嬪摢縐嶅啓娉曠殑鏁堟灉鏇村ソ錛夛紝姝ゆ椂闇瑕佸仛涓浜涙洿娣卞叆鐨勪慨鏀癸紝鎴栬呯敤db鏉ュ己鍒剁紪鐮併?/P>
瀹炴ā寮忕殑涓滆タ璇村緱澶浜嗭紝灝界鎴戝凡緇忓垹鎺変簡璁稿涓滆タ錛屽茍鎶婁竴浜涘師鍒欐х殑闂鎷垮埌浜嗚繖涓鑺傝璁恒傝繖鏍峰仛涓嶆槸娌℃湁鐞嗙敱鐨勨斺斾繚鎶ゆā寮忔墠鏄幇鍦ㄧ殑紼嬪簭錛堥櫎浜嗘搷浣滅郴緇熺殑搴曞眰鍚姩浠g爜錛夋渶甯哥敤鐨凜PU妯″紡銆備繚鎶ゆā寮忔彁渚涗簡寰堝浠や漢鑰崇洰涓鏂扮殑鍔熻兘錛屽寘鎷唴瀛樹繚鎶わ紙榪欐槸淇濇姢妯″紡榪欎釜鍚嶅瓧鐨勬潵婧愶級銆佽繘紼嬫敮鎸併佹洿澶х殑鍐呭瓨鏀寔錛岀瓑絳夈?/P>
瀵逛簬涓涓紪紼嬩漢鍛樻潵璇達紝鑳解滃伔鎳掆濇槸涓浠朵護浜烘剦蹇殑浜嬫儏銆傝繖閲屸滃伔鎳掆濇槸璇存妸鈥滃簲璇モ濈敱緋葷粺鍋氱殑浜嬫儏鍋氱殑浜嬫儏鍏ㄩ兘浜ょ粰緋葷粺銆備負浠涔堝憿錛熻繖鍑鴻嚜涓涓熀鏈濇兂鈥斺斾漢鎬繪湁鐘敊璇殑鏃跺欙紝鐒惰岃鍒欎笉浼氾紝姝g‘鍦頒簡瑙h鍒欎箣鍚庯紝浣犲彲浠ユ湡寰呭畠鍍忎綘鎵浜嗚В鐨勯偅鏍鋒墽琛屻傚浜嶤紼嬪簭鏉ヨ錛屼綘鑷繁鐢–璇█鍐欑殑瀹炵幇鐩稿悓鍔熻兘鐨勫嚱鏁伴氬父娌℃湁緋葷粺鎻愪緵鐨勫嚱鏁版ц兘濂斤紙闄ら潪浣犵敤浜嗘瘮鍑芥暟搴撳ソ寰堝鐨勭畻娉曪級錛屽洜涓虹郴緇熺殑鍑芥暟寰寰浣跨敤浜嗘洿濂界殑浼樺寲錛岀敋鑷沖彲鑳戒笉鏄敤C璇█鐩存帴緙栧啓鐨勩?/P>
褰撶劧錛屸滃伔鎳掆濈殑鎰忔濇槸璇達紝鎶婇偅浜涘簲璇ヨ鏈哄櫒鍋氱殑浜嬫儏浜ょ粰璁$畻鏈烘潵鍋氾紝鍥犱負瀹冨仛寰楁洿濂姐傛垜浠簲璇ユ妸綺懼姏闆嗕腑鍒拌璁$畻娉曪紝鑰屼笉鏄紪鍐欐簮浠g爜鏈韓涓婏紝鍥犱負緙栬瘧鍣ㄥ嚑涔庡彧鑳藉仛絳変環浼樺寲錛岃屽疄鐜扮浉鍚屽姛鑳斤紝浣嗕嬌鐢ㄦ洿濂界畻娉曠殑紼嬪簭瀹炵幇錛屽垯鍑犱箮鍙兘鐢變漢鑷繁瀹屾垚銆?/P>
涓句釜渚嬪瓙錛岃繖鏍蜂竴涓嚱鏁幫細 鍦ㄦ煇縐嶇紪璇戞ā寮廩DEBUG]涓嬭緙栬瘧涓?/P>
; 璧扮潃 ; 鎭㈠鐜板満 銆 ; 榪斿洖 鑰屽湪鍙︿竴縐嶆ā寮廩RELEASE/MINSIZE]涓嬪嵈琚紪璇戜負 ; a=0; 濡傛灉璁╂垜鏉ュ啓錛屽鍗婁細鍐欐垚 ; return 499500 涓轟粈涔堣繖鏍峰啓鍛紵鎴戜滑鐪嬪埌錛宨鏄竴涓鐣屼笉鑳藉獎鍝嶃佷篃鏃犳硶鑾風煡鐨勫唴閮ㄧ姸鎬侀噺銆備綔涓鴻繖孌電▼搴忔潵璇達紝瀵瑰畠鐨勮綆楀浜庣粨鏋滃茍娌℃湁鐩存帴鐨勫獎鍝嶁斺斿畠鐨勫瓨鍦ㄤ笉榪囨槸鏂逛究綆楁硶鎻忚堪鑰屽凡銆傚茍涓旀垜浠湅鍒扮殑錛岃繖孌電▼搴忓疄闄呬笂鏃犺鎵ц澶氬皯嬈★紝鍏剁粨鏋滈兘涓嶄細鍙戠敓鍙樺寲錛屽洜姝わ紝鐩存帴榪斿洖璁$畻緇撴灉灝卞彲浠ヤ簡錛岃綆楁槸澶氫綑鐨勶紙濡傛灉璇翠竴瀹氳綆楋紝閭d箞搴旇鏄紪璇戝櫒鍦ㄧ紪璇戣繃紼嬩腑瀹屾垚瀹冿級銆?/P>
鏇磋繘涓姝ワ紝鎴戜滑鐢氳嚦甯屾湜緙栬瘧鍣ㄨ兘澶熺洿鎺ユ妸榪欎釜鍑芥暟鍙樻垚涓涓鍙峰父閲忥紝榪欐牱榪炴搷浣滃爢鏍堢殑榪囩▼涔熺渷鎺変簡銆?/P>
絎笁縐嶇粨鏋滃睘浜庘滅瓑鏁堚濅唬鐮侊紝鑰屼笉鏄滅瓑浠封濅唬鐮併備綔涓虹敤鎴鳳紝寰堝鏃跺欐槸甯屾湜緙栬瘧鍣ㄨ繖鏍峰仛鐨勶紝鐒惰岀敱浜庣洰鍓嶇殑鎶鏈皻涓嶆垚鐔燂紝鏈夋椂榪欑鍋氭硶浼氶犳垚涓浜涢棶棰橈紙gcc鍜実++鐨勯《綰т紭鍖栧彲浠ラ犳垚緙栬瘧鍑虹殑FreeBSD鍐呮牳琛屼負寮傚父錛岃繖鏄垜鍦‵reeBSD涓婇亣鍒扮殑鍞竴涓嬈¤蔣浠跺師鍥犵殑kernel panic錛夛紝鍥犳錛屽茍涓嶆槸鎵鏈夌殑緙栬瘧鍣ㄩ兘榪欐牱鍋氾紙鍙︿竴鏂歸潰鐨勫師鍥犳槸錛屽鏋滅紪璇戝櫒鍦ㄨ繖鏂歸潰鍋氱殑澶繃鐏紝渚嬪鑷姩姹傝В鍏ㄩ儴鈥滃浐瀹氣濋棶棰橈紝閭d箞濡傛灉浣犵殑紼嬪簭鏄В鍐沖浐瀹氱殑闂鈥滃緢澶р濓紝濡傛眰瑙h糠瀹紝閭d箞鍦ㄧ紪璇戣繃紼嬩腑浣犲氨浼氭壘閿ゅ瓙鏉ョ牳璁$畻鏈轟簡錛夈傜劧鑰岋紝浣滀負緙栬瘧鍣ㄥ埗閫犲晢錛屼負浜嗘彁楂樿嚜宸辯殑浜у搧鐨勭珵浜夊姏錛屽線寰浼氫嬌鐢ㄧ涓夌浠g爜鏉ュ仛鍑芥暟搴撱傛濡傚墠闈㈡墍鎻愬埌鐨勯偅鏍鳳紝榪欑浼樺寲寰寰涓嶆槸緙栬瘧鍣ㄦ湰韜殑浣滅敤錛屽敖綆$幇浠g紪璇戠▼搴忔嫢鏈夌紪璇戞墽琛屻佸驚鐜唬鐮佸鎻愩佹棤鐢ㄤ唬鐮佸幓闄ょ瓑璇稿浼樺寲鍔熻兘錛屼絾瀹冮兘涓嶈兘淇濊瘉紼嬪簭鏈浼樸傛渶鍚庝竴縐嶄唬鐮佹亹鎬曞緢灝戞湁緙栬瘧鍣ㄨ兘澶熷仛鍒幫紝涓嶄俊浣犲彲浠ョ敤鑷繁甯哥敤鐨勭紪璇戝櫒鍔犱笂鍚勭浼樺寲閫夐」璇曡瘯:) 鍙戠幇浠涔堜簡鍚楋紵涓夌浠g爜涓紝瀵逛簬鍐呭瓨鐨勮闂竴涓瘮涓涓皯銆傝繖鏍峰仛鐨勭悊鐢辨槸錛屽敖鍙兘鍦板埄鐢ㄥ瘎瀛樺櫒騫跺噺灝戝鍐呭瓨鐨勮闂紝鍙互鎻愰珮浠g爜鎬ц兘銆傚湪鏌愪簺鎯呭喌涓嬶紝浣夸唬鐮佹棦灝忓張蹇槸鍙兘鐨勩?/P>
涔﹀綊姝d紶錛屾垜浠潵璇磋淇濇姢妯″紡鐨勫唴瀛樻ā鍨嬨備繚鎶ゆā寮忕殑鍐呭瓨鍜屽疄妯″紡鏈夊緢澶氬叡鍚屼箣澶勩?/P>
姣棤鐤戦棶錛屼互'protected mode'(淇濇姢妯″紡), 'global descriptor table'(鍏ㄥ眬鎻忚堪絎﹁〃), 'local descriptor table'(鏈湴鎻忚堪絎﹁〃)鍜?selector'(閫夋嫨鍣?鎼滅儲錛屼綘浼氬緱鍒板畬鏁翠粙緇嶅畠浠殑澶ч噺淇℃伅銆?/P>
淇濇姢妯″紡涓庡疄妯″紡鐨勫唴瀛樼被浼鹼紝鐒惰岋紝瀹冧滑涔嬮棿鏈澶х殑鍖哄埆灝辨槸淇濇姢妯″紡鐨勫唴瀛樻槸鈥滅嚎鎬р濈殑銆?/P>
鏂扮殑璁$畻鏈轟笂錛?2-bit鐨勫瘎瀛樺櫒宸茬粡涓嶆槸浠涔堟柊椴滀簨錛堝鏋滀綘鍝ぉ鍚浣犵殑CPU鐨勫瘎瀛樺櫒涓嶆槸32-bit鐨勶紝閭d箞瀹冣斺旂畝鐩村彲浠ヨ偗瀹氬湴璇粹斺旂殑瀛楅暱瑕佹瘮32-bit榪樿澶氥傛柊鐨勪釜浜烘満涓婂凡緇忓紑濮嬮愭閲囩敤64-bit鐨凜PU浜嗭級錛屾崲璦涔嬶紝瀹為檯涓婃/鍋忕Щ閲忚繖涓鏍煎眬宸茬粡涓嶅啀闇瑕佷簡銆傚敖綆″姝わ紝鍦ㄧ戶緇湅淇濇姢妯″紡鍐呭瓨緇撴瀯鏃訛紝浠嶈璁頒綇孌?鍋忕Щ閲忕殑姒傚康銆備笉濡ㄦ妸孌靛瘎瀛樺櫒鐪嬩綔瀵逛簬淇濇姢妯″紡涓殑閫夋嫨鍣ㄧ殑涓涓ā鎷熴傞夋嫨鍣ㄦ槸鍏ㄥ眬鎻忚堪絎﹁〃(Global Descriptor Table, GDT)鎴栨湰鍦版弿榪扮琛?Local Descriptor Table, LDT)鐨勪竴涓寚閽堛?/P>
濡傚浘鎵紺猴紝GDT鍜孡DT鐨勬瘡涓涓」鐩兘鎻忚堪涓鍧楀唴瀛樸備緥濡傦紝涓涓」鐩腑鍖呭惈浜嗘煇鍧楄鎻忚堪鐨勫唴瀛樼殑鐗╃悊鐨勫熀鍦板潃銆侀暱搴︼紝浠ュ強鍏朵粬涓浜涚浉鍏充俊鎭?/P>
淇濇姢妯″紡鏄竴涓潪甯擱噸瑕佺殑姒傚康錛屽悓鏃朵篃鏄洰鍓嶆挵鍐欏簲鐢ㄧ▼搴忔椂錛屾渶甯哥敤鐨凜PU妯″紡錛堣繍琛屽湪鏂扮殑璁$畻鏈轟笂鐨勬搷浣滅郴緇熷緢灝戞湁鍦ㄥ疄妯″紡涓嬭繍琛岀殑錛夈?/P>
涓轟粈涔堝彨淇濇姢妯″紡鍛紵瀹冣滀繚鎶も濅簡浠涔堬紵絳旀鏄繘紼嬬殑鍐呭瓨銆備繚鎶ゆā寮忕殑涓昏鐩殑鍦ㄤ簬鍏佽澶氫釜榪涚▼鍚屾椂榪愯錛屽茍淇濇姢瀹冧滑鐨勫唴瀛樹笉鍙楀叾浠栬繘紼嬬殑渚電姱銆傝繖鏈夌偣綾諱技浜嶤++涓殑鏈哄埗錛岀劧鑰屽畠鐨勫己鍒跺姏瑕佸ぇ寰楀銆傚鏋滀綘鐨勮繘紼嬪湪淇濇姢妯″紡涓嬩互涓嶆伆褰撶殑鏂瑰紡璁塊棶浜嗗唴瀛橈紙渚嬪錛屽啓浜嗏滃彧璇燴濆唴瀛橈紝鎴栬浜嗕笉鍙鐨勫唴瀛橈紝絳夌瓑錛夛紝閭d箞CPU灝變細浜х敓涓涓紓甯搞傝繖涓紓甯稿皢浜ょ粰鎿嶄綔緋葷粺澶勭悊錛岃岃繖縐嶅鐞嗭紝鍋囧浣犵殑紼嬪簭娌℃湁鐗瑰埆璇存槑鎿嶄綔緋葷粺璇ュ浣曞鐞嗙殑璇濓紝涓鑸氨鏄潃鎺夊仛閿欎簡浜嬫儏鐨勮繘紼嬨?/P>
鎴戝儚榪欐牱鐨勫璇濇澶у涓瀹氶潪甯哥啛鎮夛紙涓存椂鍐欎簡涓涓▼搴忔晠鎰忛犳垚鐨勯敊璇級錛?/P>
濂界殑錛屽彧鏄竴涓▼搴忓穿婧冧簡錛岃屾搷浣滅郴緇熺殑鍏朵粬榪涚▼鐓у父榪愯錛堝悓鏍風殑紼嬪簭鍦―OS涓嚑涔庢槸鏉夸笂閽夐拤鐨勬鏈猴紝鍥犱負NULL鎸囬拡鐨勪綅緗伆濂芥槸涓柇鍚戦噺琛級錛屼綘鐢氳嚦榪樺彲浠ヨ皟璇曞畠銆?/P>
淇濇姢妯″紡榪樻湁鍏朵粬寰堝濂藉錛屽湪姝ゅ氨涓嶄竴涓璧樿堪浜嗐傚疄妯″紡鍜屼繚鎶ゆā寮忎箣闂寸殑鍒囨崲闂鎴戞墦綆楁斁鍦ㄥ悗闈㈢殑鈥滈珮綰ф妧宸р濅竴绔犳潵璁詫紝鍥犱負澶氭暟紼嬪簭騫朵笉娑夊強榪欎釜銆?/P>
浜嗚В浜嗗唴瀛樼殑鏍煎眬錛屾垜浠氨鍙互榪涘叆涓嬩竴鑺傗斺旀搷浣滃唴瀛樹簡銆?/P>
鍓嶄袱鑺備腑錛屾垜浠粙緇嶄簡瀹炴ā寮忓拰淇濇姢妯″紡涓嬌鐢ㄧ殑涓嶅悓鐨勫唴瀛樻牸灞銆傜幇鍦ㄥ紑濮嬭В閲婂浣曚嬌鐢ㄨ繖浜涚煡璇嗐?/P>
鍥炲繂涓涓嬪墠闈㈡垜浠榪囩殑錛屽瘎瀛樺櫒鍙互鐢ㄤ綔鍐呭瓨鎸囬拡銆傜幇鍦紝鏄粬浠彂鎸ヤ綔鐢ㄧ殑鏃跺欎簡銆?/P>
鍙互灝嗗唴瀛樻兂璞′負涓涓『搴忕殑瀛楄妭嫻併備嬌鐢ㄦ寚閽堬紝鍙互浠繪剰鍦版搷浣滐紙璇誨啓錛夊唴瀛樸?/P>
鐜板湪鎴戜滑闇瑕佷竴浜涘叾浠栫殑鎸囦護鏍煎紡鏉ユ弿榪板浜庡唴瀛樼殑鎿嶄綔銆傛搷浣滃唴瀛樻椂錛岄鍏堥渶瑕佺殑灝辨槸瀹冪殑鍦板潃銆?/P>
璁╂垜浠潵鐪嬬湅涓嬮潰鐨勪唬鐮侊細 鏂規嫭鍙瘋〃紺猴紝閲岄潰鐨勮〃杈懼紡鎸囧畾鐨勪笉鏄珛鍗蟲暟錛岃屾槸鍋忕Щ閲忋傚湪瀹炴ā寮忎腑錛孌S:0涓殑閭d釜瀛楋紙16-bit闀匡級灝嗚瑁呭叆AX銆?/P>
鐒惰?鏄竴涓父鏁幫紝濡傛灉闇瑕佸湪榪愯鐨勬椂鍊欏姞浠ユ敼鍙橈紝灝遍渶瑕佷竴浜涚壒孌婄殑鎶宸э紝姣斿紼嬪簭鑷慨鏀廣傛眹緙栨敮鎸佽繖涓壒鎬э紝鐒惰屾垜涓漢騫朵笉鎺ㄨ崘榪欑鏂規硶鈥斺旇嚜淇敼澶уぇ闄嶄綆紼嬪簭鐨勫彲璇繪э紝騫朵笖榪橀檷浣庣ǔ瀹氭э紝鎬ц兘榪樹笉涓瀹氬ソ銆傛垜浠渶瑕佸彟澶栫殑鎶鏈?/P>
鐪嬭搗鏉ヨ垝鏈嶄簡涓浜涳紝涓嶆槸鍚楋紵BX瀵勫瓨鍣ㄧ殑鍐呭鍙互闅忔椂鏇存敼錛岃屼笉闇瑕佺敤鍐楅暱鐨勪唬鐮佸幓淇敼鑷韓錛屾洿涓嶇敤鎷呭績鐢辨甯︽潵鐨勪笉紼沖畾闂銆?/P>
鍚屾牱鐨勶紝mov鎸囦護涔熷彲浠ユ妸鏁版嵁淇濆瓨鍒板唴瀛樹腑錛?/P>
鍦ㄥ瓨鍌ㄥ櫒涓庡瘎瀛樺櫒涔嬮棿浜ゆ崲鏁版嵁搴旇瓚沖娓呮浜嗐?/P>
鏈変簺鏃跺欐垜浠細闇瑕佹搷浣滅鏉ユ弿榪板唴瀛樻暟鎹殑瀹藉害錛?/P>
渚嬪錛屽湪DS:100h澶勪繚瀛?234h錛屼互瀛楀瓨鏀撅細 浜庢槸鎴戜滑灝唌ov鎸囦護鎵╁睍涓猴細 闇瑕佽鏄庣殑鏄紝鍔犲噺鍚屾牱涔熷彲浠ュ湪[]涓嬌鐢紝渚嬪錛?/P>
絳夌瓑銆傛垜浠湅鍒幫紝瀵逛簬鍐呭瓨鐨勬搷浣滐紝鍗充嬌浣跨敤MOV鎸囦護錛屼篃鏈夎澶氱鍙兘鐨勬柟寮忋備笅涓鑺備腑錛屾垜浠皢浠嬬粛濡備綍鎿嶄綔涓層?/P>
鎰熻阿 緗戝弸 姘存潐 鎸囧嚭姝ょ瓟妗堜腑鐨勪竴澶勯敊璇?BR>鎰熻阿 Heallven 鎸囧嚭.COM紼嬪簭瀹炰緥緙栬瘧澶辮觸鐨勯棶棰?/P> 2EA8:D678 -> 鐗╃悊鐨?3C0F8 緙栫▼3.1 瀹炴ā寮?/H3>
0001:1234 = 0124:0004 = 0120:0044 = 0100:0244
2EA8:D678 26CF:8D5F 453A:CFAD 2933:31A6 5924:DCCF
694E:175A 2B3C:D218 728F:6578 68E1:A7DC 57EC:AEEA
;;; 搴旇寰楀埌涓涓?9瀛楄妭鐨?com鏂囦歡
.MODEL TINY
.CODE
CR equ 13
LF equ 10
TERMINATOR equ '$'
ORG 100h
Main PROC
mov dx,offset sMessage
mov ah,9
int 21h
mov ax,4c00h
int 21h
Main ENDP
sMessage:
DB 'Hello, World!'
DB CR,LF,TERMINATOR
END Main
; .COM鏂囦歡鐨勫唴瀛樻ā鍨嬫槸鈥楾INY鈥?BR>; 浠g爜孌靛紑濮?BR>
; 鍥炶濺
; 鎹㈣
; DOS瀛楃涓茬粨鏉熺
; 浠g爜璧峰鍦板潃涓篊S:0100h
; 浠S:DX鎸囧悜Message
; int 21h(DOS涓柇)鍔熻兘9 -
; 鏄劇ず瀛楃涓插埌鏍囧噯杈撳嚭璁懼
; int 21h鍔熻兘4ch -
; 緇堟紼嬪簭騫惰繑鍥濧L鐨勯敊璇唬鐮?BR>銆
; 紼嬪簭緇撴潫鐨勫悓鏃舵寚瀹氬叆鍙g偣涓篗ain
;;; 搴旇寰楀埌涓涓?61 瀛楄妭鐨凟XE鏂囦歡
.MODEL SMALL
.STACK 200h
CR equ 13
LF equ 10
TERMINATOR equ '$'
.DATA
Message DB 'Hello, World !'
DB CR,LF,TERMINATOR
.CODE
Main PROC
mov ax, DGROUP
mov ds, ax
mov dx, offset Message
mov ah, 9
int 21h
mov ax, 4c00h
int 21h
Main ENDP
END main銆
; 鎹㈣
; DOS瀛楃涓茬粨鏉熺
; 灝嗘暟鎹
; 鍔犺澆鍒癉S瀵勫瓨鍣?/FONT>
; 鏄劇ず
; 緇堟紼嬪簭3.2 淇濇姢妯″紡
int fun(){
int a=0;
register int i;
for(i=0; i<1000; i++) a+=i;
return a;
}
push ebp
mov ebp,esp
sub esp,48h
push ebx
push esi
push edi
lea edi,[ebp-48h]
mov ecx,12h
mov eax,0CCCCCCCCh
rep stos dword ptr [edi]
mov dword ptr [ebp-4],0
mov dword ptr [ebp-8],0
jmp fun+31h
mov eax,dword ptr [ebp-8]
add eax,1
mov dword ptr [ebp-8],eax
cmp dword ptr [ebp-8],3E8h
jge fun+45h
mov ecx,dword ptr [ebp-4]
add ecx,dword ptr [ebp-8]
mov dword ptr [ebp-4],ecx
jmp fun+28h
mov eax,dword ptr [ebp-4]
pop edi
pop esi
pop ebx
mov esp,ebp
pop ebp
ret; 瀛愮▼搴忓叆鍙?/FONT>
; 淇濇姢鐜板満
; 鍒濆鍖栧彉閲?璋冭瘯鐗堟湰鐗規湁銆?BR>; 鏈川鏄湪鍫嗕腑鎸栦竴鍧楀湴鍎匡紝瀛楥CCCCCCC銆?BR>; 鐢ㄤ覆鎿嶄綔榪涜錛岃繖灝嗗彂鎸ntel澶勭悊鍣ㄤ紭鍔?BR>; 鈥榓=0鈥?BR>; 鈥榠=0鈥?/FONT>
; i++
; i<1000?
; a+=i;
; return a;
xor eax,eax
xor ecx,ecx
add eax,ecx
inc ecx
cmp ecx,3E8h
jl fun+4
ret
; i=0;
; a+=i;
; i++;
; i<1000?
; 鏄?>緇х畫緇х畫
; return a
mov eax, 079f2ch
ret
3.3 鎿嶄綔鍐呭瓨
mov ax,[0]
mov bx,0
mov ax,[bx]
mov [0],ax
鎿嶄綔絎?/FONT>
鎰忎箟
byte ptr
涓涓瓧鑺?8-bit, 1 byte)
word ptr
涓涓瓧(16-bit)
dword ptr
涓涓弻瀛?32-bit)
mov word ptr [100h],01234h
mov reg(8,16,32), mem(8,16,32)
mov mem(8,16,32), reg(8,16,32)
mov mem(8,16,32), imm(8,16,32)
mov ax,[bx+10]
mov ax,[bx+si]
mov ax,es:[di+bp]
694E:175A -> 鐗╃悊鐨?6AC4A
26CF:8D5F -> 鐗╃悊鐨?2FA4F
2B3C:D218 -> 鐗╃悊鐨?385E8
453A:CFAD -> 鐗╃悊鐨?5235D
728F:6578 -> 鐗╃悊鐨?78E68
2933:31A6 -> 鐗╃悊鐨?2C4D6
68E1:A7DC -> 鐗╃悊鐨?735FC
shl eax,4
add eax,bx
鍦ㄥ墠涓鑺備腑鐨剎86鍩烘湰瀵勫瓨鍣ㄧ殑浠嬬粛錛屽浜庝竴涓眹緙栬璦緙栫▼浜哄憳鏉ヨ鏄笉鍙垨緙虹殑銆傜幇鍦ㄤ綘鐭ラ亾錛屽瘎瀛樺櫒鏄鐞嗗櫒鍐呴儴鐨勪竴浜涗繚瀛樻暟鎹殑瀛樺偍鍗曞厓銆備粎浠呬簡瑙h繖浜涙槸涓嶈凍浠ュ啓鍑轟竴涓彲鐢ㄧ殑姹囩紪璇█紼嬪簭鐨勶紝浣嗕綘宸茬粡鍙互澶ц嚧璇繪噦涓鑸眹緙栬璦紼嬪簭浜嗭紙涓嶅繀鎯婅錛屽洜涓烘眹緙栬璦鐨勭璁扮鍜岃嫳鏂囧崟璇嶉潪甯告帴榪戯級錛屽洜涓轟綘宸茬粡浜嗚В浜嗗叧浜庡熀鏈瘎瀛樺櫒鐨勭粷澶у鏁扮煡璇嗐?/P>
鍦ㄦ寮忓紩鍏ョ涓涓眹緙栬璦紼嬪簭涔嬪墠錛屾垜綺楃暐鍦頒粙緇嶄竴涓嬫眹緙栬璦涓笉鍚岃繘鍒舵暣鏁扮殑琛ㄧず鏂規硶銆傚鏋滀綘涓嶄簡瑙e崄榪涘埗浠ュ鐨勫叾浠栬繘鍒訛紝璇鋒妸榧犳爣縐誨姩鍒?SPAN class=tip id=oRadixes>榪欓噷銆?/P>
闇瑕佽鏄庣殑鏄紝榪欎簺鏂規硶鏄拡瀵瑰畯姹囩紪鍣紙渚嬪錛孧ASM銆乀ASM銆丯ASM錛夎鐨勶紝璋冭瘯鍣ㄩ粯璁や嬌鐢ㄥ崄鍏繘鍒惰〃紺烘暣鏁幫紝騫朵笖涓嶉渶瑕佺壒鍒殑澹版槑錛堜緥濡傦紝鍦ㄨ皟璇曞櫒涓洿鎺ョ敤FFFF琛ㄧず鍗佽繘鍒剁殑65535錛岀敤10琛ㄧず鍗佽繘鍒剁殑16錛夈?/P>
鐜板湪鎴戜滑鏉ュ啓涓灝忔姹囩紪紼嬪簭錛屼慨鏀笶AX銆丒BX銆丒CX銆丒DX鐨勬暟鍊箋?/P>
鎴戜滑鍋囧畾紼嬪簭鎵ц涔嬪墠錛屽瘎瀛樺櫒涓殑鏁板兼槸鍏?錛?/P>
姝e鍓嶉潰鎻愬埌鐨勶紝EAX鐨勯珮16bit鏄病鏈夊姙娉曠洿鎺ヨ闂殑錛岃孉X瀵瑰簲瀹冪殑浣?6bit錛孉H銆丄L鍒嗗埆瀵瑰簲AX鐨勯珮銆佷綆8bit銆?/P>
鍒欐墽琛屼笂榪扮▼搴忔涔嬪悗錛屽瘎瀛樺櫒鐨勫唴瀹瑰彉涓猴細 閭d箞錛屼綘宸茬粡浜嗚В浜唌ov榪欎釜鎸囦護錛坢ov鏄痬ove鐨勭緝鍐欙級鐨勪竴縐嶇敤娉曘傚畠鍙互灝嗘暟閫佸埌瀵勫瓨鍣ㄤ腑銆傛垜浠潵鐪嬬湅涓嬮潰鐨勪唬鐮侊細 鍒欏瘎瀛樺櫒鍐呭鍙樹負錛?/P>
鎴戜滑鍙互鐪嬪埌錛屸渕ove鈥濅箣鍚庯紝鏁版嵁渚濈劧淇濆瓨鍦ㄥ師鏉ョ殑瀵勫瓨鍣ㄤ腑銆備笉濡ㄦ妸mov鎸囦護鐞嗚В涓衡滈佸叆鈥濓紝鎴栤滆鍏モ濄?/P>
緇冧範棰?/B> 鎶婂瘎瀛樺櫒鎭㈠鎴愰兘涓哄叏0鐨勭姸鎬侊紝鐒跺悗鎵ц涓嬮潰鐨勪唬鐮侊細 鎬濊冿細姝ゆ椂錛孍AX鐨勫唴瀹瑰皢鏄灝戯紵[絳旀] 涓嬮潰鎴戜滑灝嗕粙緇嶄竴浜涙寚浠ゃ傚湪浠嬬粛鎸囦護涔嬪墠錛屾垜浠害瀹氾細 鍦ㄥ瘎瀛樺櫒涓澆鍏ュ彟涓瀵勫瓨鍣紝鎴栫珛鍗蟲暟鐨勫鹼細 mov reg32, (reg32 | imm8 | imm16 | imm32) 渚嬪錛宮ov eax, 010h琛ㄧず錛屽湪eax涓澆鍏?0000010h銆傞渶瑕佹敞鎰忕殑鏄紝濡傛灉浣犲笇鏈涘湪瀵勫瓨鍣ㄤ腑瑁呭叆0錛屽垯鏈変竴縐嶆洿蹇殑鏂規硶錛屽湪鍚庨潰鎴戜滑灝嗘彁鍒般?/P>
浜ゆ崲瀵勫瓨鍣ㄧ殑鍐呭錛?/P>
渚嬪錛寈chg ebx, ecx錛屽垯ebx涓巈cx鐨勬暟鍊煎皢琚氦鎹€傜敱浜庣郴緇熸彁渚涗簡榪欎釜鎸囦護錛屽洜姝わ紝閲囩敤鍏朵粬鏂規硶浜ゆ崲鏃訛紝閫熷害灝嗕細杈冩參錛屽茍闇瑕佸崰鐢ㄦ洿澶氱殑瀛樺偍絀洪棿錛岀紪紼嬫椂瑕侀伩鍏嶈繖縐嶆儏鍐碉紝鍗籌紝灝介噺鍒╃敤緋葷粺鎻愪緵鐨勬寚浠わ紝鍥犱負澶氭暟鎯呭喌涓嬶紝榪欐剰鍛崇潃鏇村皬銆佹洿蹇殑浠g爜錛屽悓鏃朵篃鏉滅粷浜嗛敊璇紙濡傛灉璇碔ntel鐨凜PU鍦ㄤ氦鎹㈠瘎瀛樺櫒鍐呭鐨勬椂鍊欎篃浼氬嚭閿欙紝閭d箞瀹冨氨涓嶇敤鍗朇PU浜嗐傝屽浜庝綘鏉ヨ錛屾鏌ヤ竴琛屼唬鐮佺殑姝g‘鎬т篃鏄劇劧姣旀鏌ユ洿澶氫唬鐮佺殑姝g‘鎬ц瀹規槗錛夊垰鎵嶇殑涔犻鐨勭▼搴忕敤涓嬮潰鐨勪唬鐮佸皢鏇存湁鏁堬細 閫掑鎴栭掑噺瀵勫瓨鍣ㄧ殑鍊鹼細 榪欎袱涓寚浠ゅ線寰鐢ㄤ簬寰幆涓鎸囬拡鐨勬搷浣溿傞渶瑕佽鏄庣殑鏄紝鏌愪簺鏃跺欐垜浠湁鏇村ソ鐨勬柟娉曟潵澶勭悊寰幆錛屼緥濡備嬌鐢╨oop鎸囦護錛屾垨rep鍓嶇紑銆傝繖浜涘皢鍦ㄥ悗闈㈢殑绔犺妭涓粙緇嶃?/P>
灝嗗瘎瀛樺櫒鐨勬暟鍊間笌鍙︿竴瀵勫瓨鍣紝鎴栫珛鍗蟲暟鐨勫肩浉鍔狅紝騫跺瓨鍥炴瀵勫瓨鍣細 add reg32, reg32 / imm(8,16,32) 渚嬪錛宎dd eax, edx錛屽皢eax+edx鐨勫煎瓨鍏ax銆傚噺娉曟寚浠ゅ拰鍔犳硶綾諱技錛屽彧鏄皢add鎹㈡垚sub銆?/P>
闇瑕佽鏄庣殑鏄紝涓庨珮綰ц璦涓嶅悓錛屾眹緙栬璦涓紝濡傛灉瑕佽綆椾袱鏁頒箣鍜岋紙宸佺Н銆佸晢錛屾垨涓鑸湴璇達紝榪愮畻緇撴灉錛夛紝閭d箞蹇呯劧鏈変竴涓瘎瀛樺櫒琚敤鏉ヤ繚瀛樼粨鏋溿傚湪PASCAL涓紝鎴戜滑鍙互鐢╪A := nB + nC鏉ヨnA淇濆瓨nB+nC鐨勭粨鏋滐紝鐒惰岋紝姹囩紪璇█騫朵笉鎻愪緵榪欑鏂規硶銆傚鏋滀綘甯屾湜淇濇寔瀵勫瓨鍣ㄤ腑鐨勭粨鏋滐紝闇瑕佺敤鍙﹀鐨勬寚浠ゃ傝繖涔熶粠鍙︿竴涓晶闈㈠弽鏄犱簡鈥滃瘎瀛樺櫒鈥濊繖涓悕瀛楃殑鎰忎箟銆傛暟鎹彧鏄滃瘎瀛樷濆湪閭i噷銆傚鏋滀綘闇瑕佷繚瀛樻暟鎹紝閭d箞闇瑕佸皢瀹冩斁鍒板唴瀛樻垨鍏朵粬鍦版柟銆?/P>
綾諱技鐨勬寚浠よ繕鏈塧nd銆乷r銆亁or錛堜笌錛屾垨錛屽紓鎴栵級絳夌瓑銆傚畠浠繘琛岀殑鏄昏緫榪愮畻銆?/P>
鎴戜滑縐癮dd銆乵ov銆乻ub銆乤nd絳夌О涓轟負鎸囦護鍔╄絎︼紙榪欎箞鍙槸鍥犱負瀹冩瘮鏈哄櫒璇█瀹規槗璁板繂錛岃岃搗浣滅敤灝辨槸鏂逛究浜鴻蹇嗭紝鏌愪簺璧勬枡涓篃縐頒負鎸囦護銆佹搷浣滅爜銆乷pcode[operation code]絳夛級錛涘悗闈㈢殑鍙傛暟鎴愪負鎿嶄綔鏁幫紝涓涓寚浠ゅ彲浠ユ病鏈夋搷浣滄暟錛屼篃鍙互鏈変竴涓や釜鎿嶄綔鏁幫紝閫氬父鏈変竴涓搷浣滄暟鐨勬寚浠わ紝榪欎釜鎿嶄綔鏁板氨鏄畠鐨勬搷浣滃璞★紱鑰屼袱涓弬鏁扮殑鎸囦護錛屽墠涓涓搷浣滄暟涓鑸槸淇濆瓨鎿嶄綔緇撴灉鐨勫湴鏂癸紝鑰屽悗涓涓槸闄勫姞鐨勫弬鏁般?/P>
鎴戜笉鎵撶畻鍦ㄨ繖浠芥暀紼嬩腑鐢ㄥぇ閲忕殑綃囧箙浠嬬粛鎸囦護鈥斺斿緢澶氫漢鍋氬緱姣旀垜鏇村ソ錛岃屼笖鎸囦護鏈韓騫朵笉鏄噸鐐癸紝濡傛灉浣犲浼氫簡濡備綍緇勭粐璇彞錛岄偅涔堝彧瑕佺◢鍔犲涔犲氨鑳借交鏄撴帉鎻″叾浠栨寚浠ゃ傛洿澶氱殑鎸囦護鍙互鍙傝?A >Intel鎻愪緵鐨勮祫鏂欍傜紪鍐欑▼搴忕殑鏃跺欙紝涔熷彲浠ュ弬鑰冧竴浜涘湪綰垮弬鑰冩墜鍐屻俆ech!Help鍜孒elpPC 2.10灝界宸茬粡寰堟棫錛屼絾瓚充互搴斾粯緇濆ぇ澶氭暟闇瑕併?/P>
鑱槑鐨勮鑰呬篃璁稿凡緇忓彂鐜幫紝浣跨敤sub eax, eax錛屾垨鑰厁or eax, eax錛屽彲浠ュ緱鍒頒笌mov eax, 0綾諱技鐨勬晥鏋溿傚湪楂樼駭璇█涓紝浣犲ぇ姒備笉浼氶夋嫨鐢╝=a-a鏉ョ粰a璧嬪鹼紝鍥犱負嫻嬭瘯浼氬憡璇変綘榪欎箞鍋氭洿鎱紝綆鐩村氨鏄湪鑷壘楹葷儲錛岀劧鑰屽湪姹囩紪璇█涓紝浣犱細寰楀埌鐩稿弽鐨勭粨璁猴紝澶氭暟鎯呭喌涓嬶紝浠ョ敱蹇埌鎱㈢殑閫熷害鎺掑垪錛岃繖涓夋潯鎸囦護灝嗘槸xor eax, eax銆乻ub eax, eax鍜宮ov eax, 0銆?/P>
涓轟粈涔堝憿錛熷鐞嗗櫒鍦ㄦ墽琛屾寚浠ゆ椂錛岄渶瑕佺粡榪囧嚑涓笉鍚岀殑闃舵錛氬彇鎸囥佽瘧鐮併佸彇鏁般佹墽琛屻?/P>
鎴戜滑鍙嶅寮鴻皟錛屽瘎瀛樺櫒鏄疌PU鐨勪竴閮ㄥ垎銆備粠瀵勫瓨鍣ㄥ彇鏁幫紝鍏墮熷害寰堟樉鐒惰姣斾粠鍐呭瓨涓彇鏁板揩銆傞偅涔堬紝涓嶉毦鐞嗚В錛寈or eax, eax瑕佹瘮mov eax, 0鏇村揩涓浜涖?/P>
閭d箞錛屼負浠涔坅=a-a閫氬父瑕佹瘮a=0鎱竴浜涘憿錛熻繖鍜岀紪璇戝櫒鐨勪紭鍖栨湁涓瀹氬叧緋匯傚鏁扮紪璇戝櫒浼氭妸a=a-a緲昏瘧鎴愮被浼間笅闈㈢殑浠g爜(閫氬父錛岄珮綰ц璦閫氳繃ebp鍜屽亸縐婚噺鏉ヨ闂眬閮ㄥ彉閲忥紱紼嬪簭涓紝x涓篴鐩稿浜庢湰鍦板爢鐨勫亸縐婚噺錛屽湪鍙寘鍚竴涓?2-bit鏁村艦鍙橀噺鐨勭▼搴忎腑錛岃繖涓奸氬父鏄?)錛?/P>
mov eax, dword ptr [ebp-x] 鑰屾妸a=0緲昏瘧鎴?/P>
mov dword ptr [ebp-x], 0 涓婇潰鐨勭炕璇戝彧鏄ず鎰忔х殑錛岀暐鍘諱簡寰堝蹇呰鐨勬楠わ紝濡備繚鎶ゅ瘎瀛樺櫒鍐呭銆佹仮澶嶇瓑絳夈傚鏋滀綘瀵逛笌緙栬瘧紼嬪簭鐨勫疄鐜拌繃紼嬫劅鍏磋叮錛屽彲浠ュ弬鑰冪浉搴旂殑涔︾睄銆傚鏁扮紪璇戝櫒錛堢壒鍒槸C/C++緙栬瘧鍣紝濡侻icrosoft Visual C++錛夐兘鎻愪緵浜嗕粠婧愪唬鐮佸埌瀹忔眹緙栬璦紼嬪簭鐨勯檮鍔犵紪璇戣緭鍑洪夐」銆傝繖縐嶆儏鍐典笅錛屼綘鍙互寰堟柟渚垮湴浜嗚В緙栬瘧紼嬪簭鎵ц鐨勮緭鍑虹粨鏋滐紱濡傛灉緙栬瘧紼嬪簭娌℃湁鎻愪緵榪欐牱鐨勫姛鑳戒篃娌℃湁鍏崇郴錛岃皟璇曞櫒浼氳浣犵湅鍒扮紪璇戝櫒鐨勭紪璇戠粨鏋溿?/P>
濡傛灉浣犳槑紜湴鐭ラ亾緙栬瘧鍣ㄧ紪璇戝嚭鐨勭粨鏋滀笉鏄渶浼樼殑錛岄偅灝卞彲浠ョ潃鎵嬬敤姹囩紪璇█鏉ラ噸鍐欓偅孌典唬鐮佷簡銆傛庝箞紜鏄惁搴旇鐢ㄦ眹緙栬璦閲嶅啓鍛紵 鏇劇粡鍦ㄤ竴浠芥潅蹇椾笂鐪嬪埌榪囨湁浜虹敤綰満鍣ㄨ璦緙栧啓紼嬪簭銆備笉娓呮鍒板簳榪欐槸涓嶆槸緙栬緫鐨勫け璇紝鍥犱負涓涓ご鑴戞甯哥殑浜烘亹鎬曚笉浼氳繖涔堝仛紼嬪簭錛屽嵆浣垮畠涓嶉暱銆佷篃涓嶅鏉傘傞鍏堬紝姹囩紪鍣ㄨ兘澶熷畬鎴愭煇浜涘皝鍖呮搷浣滐紝鍗充嬌涓嶈錛屼篃鍙互鐢╠b浼寚浠ゆ潵鍐欐寚浠わ紱鐢ㄦ眹緙栬璦鍐欑▼搴忓彲浠ラ槻姝㈠緢澶氶敊璇殑鍙戠敓錛屽悓鏃訛紝瀹冭繕鍑忚交浜嗕漢鐨勮礋鎷咃紝寰堟樉鐒訛紝鈥滃畬鍏ㄧ敤鏈哄櫒璇█鍐欑▼搴忊濇槸瀹屽叏娌℃湁蹇呰鐨勶紝鍥犱負姹囩紪璇█鍙互鍋氬嚭瀹屽叏涓鏍風殑浜嬫儏錛屽茍涓斾綘鍙互渚濊禆瀹冿紝鍥犱負璁$畻鏈轟笉浼氬嚭閿欙紝鑰屼漢鎬繪湁鍑洪敊鐨勬椂鍊欍傛澶栵紝濡傚墠闈㈡墍璦錛屽鏋滅敤楂樼駭璇█瀹炵幇紼嬪簭鐨勪唬浠蜂笉澶э紙渚嬪錛岃繖孌典唬鐮佸湪紼嬪簭鐨勬暣涓墽琛岃繃紼嬩腑鍙墽琛屼竴閬嶏紝騫朵笖錛岃繖涓閬嶇殑鎵ц鏃墮棿涔熷皬浜庝竴縐掞級錛岄偅涔堬紝涓轟粈涔堜笉鐢ㄩ珮綰ц璦瀹炵幇鍛紵 涓浜涙瘮杈冪媯鐑殑緙栫▼鐖卞ソ鑰呭彲鑳戒笉澶枩嬈㈡垜鐨勮繖縐嶈鐐廣傛瘮鏂硅錛屼粬浠彲鑳藉笇鏈涚簿鐩婃眰綺懼湴浼樺寲姣忎竴瀛楄妭鐨勪唬鐮併備絾澶氭暟鎯呭喌涓嬫垜浠湁鏇撮噸瑕佺殑浜嬫儏錛屼緥濡傦紝浣犵殑綆楁硶鏄渶浼樼殑鍚楋紵浣犲凡緇忔妸紼嬪簭鍦ㄩ珮綰ц璦璁稿彲鐨勮寖鍥村唴浼樺寲鍒板敖澶翠簡鍚楋紵騫朵笉鏄墍鏈夌殑浜洪兘鏈夎祫鏍艱繖鏍瘋銆傛眹緙栬璦鏄繖鏍蜂竴浠朵笢瑗匡紝瀹冭凍澶熺殑寮哄ぇ錛岃兘澶熸帶鍒惰綆楁満錛屽畬鎴愬畠鑳藉瀹炵幇鐨勪換浣曞姛鑳斤紱鍚屾椂錛屽洜涓哄畠鐨勫己澶э紝涔熶細鎻愰珮寮鍙戞垚鏈紝騫朵笖錛岄毦浜庣淮鎶ゃ傚洜姝わ紝鎴戜釜浜虹殑寤鴻鏄紝濡傛灉鍦ㄨ蔣浠跺紑鍙戜腑浣跨敤姹囩紪璇█錛屽垯搴斿湪杞歡鎺ヨ繎瀹屾垚鐨勬椂鍊欎嬌鐢紝榪欐牱鍙互鍑忓皯寰堝涓嶅繀瑕佺殑鎶曞叆銆?/P>
絎簩绔犱腑錛屾垜浠嬬粛浜唜86緋誨垪澶勭悊鍣ㄧ殑鍩烘湰瀵勫瓨鍣ㄣ傝繖浜涘瘎瀛樺櫒瀵逛簬x86鍏煎澶勭悊鍣ㄤ粛鐒舵槸鏈夋晥鐨勶紝濡傛灉浣犲亸鐖盇MD鐨凜PU錛岄偅涔堜嬌鐢ㄨ繖浜涘瘎瀛樺櫒鐨勭▼搴忓悓鏍蜂篃鍙互姝e父榪愯銆?/P>
涓嶈繃鐜板湪璇寸敤姹囩紪璇█榪涜浼樺寲榪樹負鏃跺皻鏃┾斺斾笉鍙兘鍐欑▼搴忥紝鑰屽彧鎿嶄綔榪欎簺瀵勫瓨鍣紝鍥犱負榪欐牱鍙兘瀹屾垚闈炲父綆鍗曠殑鎿嶄綔錛屾棦鐒舵槸綆鍗曠殑鎿嶄綔錛岄偅鍙兘灝變細璁╀漢瑙夊緱涔忓懗錛岀敋鑷蟲壘涓鍙拌凍澶熷揩鐨勬満鍣ㄧ┓涓懼畠鐨勬墍鏈夌粨鏋滐紙濡傛灉鍙互絀蜂婦鐨勮瘽錛夛紝騫剁洿鎺ュ啓紼嬪簭璋冪敤錛屽洜涓鴻繖鏍烽氬父浼氭洿蹇備絾璇濊鍥炴潵錛岀湅瀹屾帴涓嬫潵鐨勪袱绔犫斺斿唴瀛樺拰鍫嗘爤鎿嶄綔錛屼綘灝卞彲浠ョ嫭绔嬪畬鎴愬嚑涔庢墍鏈夌殑浠誨姟浜嗭紝閰嶅悎絎簲绔犱腑鏂佺鍏珷瀛愮▼搴忕殑鐭ヨ瘑錛屼綘灝嗙煡閬撳浣曢┚椹鐞嗗櫒錛屽茍璁╁畠涓轟綘宸ヤ綔銆?/P> 涓庡崄榪涘埗綾諱技錛屾垜浠彲浠ョ敤涓嬮潰鐨勫紡瀛愭潵鎹㈢畻鍑轟竴 紼嬪簭璁捐涓父鐢ㄥ崄鍏繘鍒跺拰鍏繘鍒舵暟瀛椾唬鏇夸簩榪涘埗 EAX鐨勫唴瀹逛負000A3412h.
2.2 浣跨敤瀵勫瓨鍣?/H3>
銆銆姹囩紪璇█涓殑鏁存暟甯擱噺琛ㄧず
榪欎篃鏄竴縐嶅父鐢ㄧ殑鏁板埗銆備簩榪涘埗鏁拌〃紺轟負[浜岃繘鍒舵暟]b鎴朳浜岃繘鍒舵暟]B銆備竴鑸▼搴忎腑鐢ㄤ簩榪涘埗鏁拌〃紺烘帺鐮侊紙mask code錛夌瓑鏁版嵁闈炲父鐨勭洿瑙傦紝浣嗛渶瑕佷簺寰堥暱鐨勬暟鎹紙4浣嶄簩榪涘埗鏁扮浉褰撲簬涓浣嶅崄鍏繘鍒舵暟錛夈備緥濡傦紝1010110b銆?
鍏繘鍒舵暟鐜板湪宸茬粡涓嶆槸寰堝父鐢ㄤ簡錛堢‘瀹炶繕鍦ㄧ敤錛屼竴涓吀鍨嬬殑渚嬪瓙鏄疷nix鐨勬枃浠跺睘鎬э級銆傚叓榪涘埗鏁扮殑褰㈠紡鏄痆鍏繘鍒舵暟]q銆乕鍏繘鍒舵暟]Q銆乕鍏繘鍒舵暟]o銆乕鍏繘鍒舵暟]O銆備緥濡傦紝777Q銆?/LI>
銆
?
X
H
L
EAX
0000
00
00
EBX
0000
00
00
ECX
0000
00
00
EDX
0000
00
00
mov eax, 012345678h
mov ebx, 0abcdeffeh
mov ecx, 1
mov edx, 2; 灝?12345678h閫佸叆eax
; 灝?abcdeffeh閫佸叆ebx
; 灝?00000001h閫佸叆ecx
; 灝?00000002h閫佸叆edx
銆
?
X
H
L
EAX
1234
56
78
EBX
abcd
ef
fe
ECX
0000
00
01
EDX
0000
00
02
mov eax, ebx
mov ecx, edx; ebx鍐呭閫佸叆eax
; edx鍐呭閫佸叆ecx
銆
?
X
H
L
EAX
abcd
ef
fe
EBX
abcd
ef
fe
ECX
0000
00
02
EDX
0000
00
02
mov eax, 0a1234h
mov bx, ax
mov ah, bl
mov al, bh; 灝?a1234h閫佸叆eax
; 灝哸x鐨勫唴瀹歸佸叆bx
; 灝哹l鍐呭閫佸叆ah
; 灝哹h鍐呭閫佸叆al
銆銆 浣跨敤Intel鏂囨。涓殑瀵勫瓨鍣ㄨ〃紺烘柟寮?/B>
mov reg32, (reg16 | imm8 | imm16)
mov reg8, (reg8 | imm8)
xchg reg32, reg32
xchg reg16, reg16
xchg reg8, reg8
mov eax, 0a1234h
mov bx, ax
xchg ah, al; 灝?a1234h閫佸叆eax
; 灝哸x鍐呭閫佸叆bx
; 浜ゆ崲ah, al鐨勫唴瀹?/FONT>
inc reg(8,16,32)
dec reg(8,16,32)
add reg16, reg16 / imm(8,16)
add reg8, reg8 / imm(8)
sub eax, dword ptr [ebp-x]
mov dword ptr [ebp-x],eax
銆銆浣跨敤姹囩紪璇█閲嶅啓浠g爜涔嬪墠闇瑕佺‘璁ょ殑鍑犱歡浜嬫儏
鍙渶瑕佽〃紺轟袱縐?鏌愪簺鎯呭喌鏄?縐嶏紝榪欎竴鍐呭瓚呰繃浜?BR>榪欎喚鏁欑▼鐨勮寖鍥達紝濡傛灉鎮ㄦ劅鍏磋叮錛屽彲浠ュ弬鑰冩暟瀛楅?BR>杈戠數璺殑鐩稿叧涔︾睄)鐘舵? 瀵逛簬鐢佃礬鑰岃█錛岃繖琛ㄧ幇
涓洪珮銆佷綆鐢靛鉤錛屾垨鑰呭紑銆佸叧錛屽垎鍒潪甯告槑鏄撅紝鍥犺?BR>宸ヤ綔姣旇緝紼沖畾錛涘彟涓鏂歸潰錛岀敱浜庡彧鏈変袱縐嶇姸鎬侊紝璁?BR>璁¤搗鏉ヤ篃姣旇緝綆鍗曘傝繖鏍鳳紝浣跨敤浜岃繘鍒舵剰鍛崇潃浣庢垚
鏈佺ǔ瀹氾紝澶氭暟鎯呭喌涓嬶紝榪欎篃鎰忓懗鐫蹇熴?
涓換鎰忓艦濡俛m-1鈥︹3a2a1a0 鐨刴浣峳榪涘埗鏁板搴旂殑
鏁板糿錛?/P>
鏁幫紝鍏跺師鍥犲湪浜庯紝16鍜?鏄?鐨勬暣嬈℃柟騫傦紝榪欐牱錛屼竴
浣嶅崄鍏垨鍏繘鍒舵暟鍙互琛ㄧず鏁存暟涓簩榪涘埗浣嶃傚崄鍏?BR>榪涘埗涓紝 浣跨敤瀛楁瘝A銆丅銆丆銆丏銆丒銆丗琛ㄧず10-15錛?BR>鑰屽崄鍏繘鍒舵垨鍏繘鍒舵暟鍒惰〃紺虹殑鐨勬暟瀛楁瘮浜岃繘鍒舵暟
鏇寸煭涓浜涖?/P>
1. 閫氱敤瀵勫瓨鍣?/FONT>:
EAX
(accumulator)"绱姞鍣?,寰堝鍔犳硶涔樻硶鎸囦護鐨勭己鐪?FONT style="BACKGROUND-COLOR: #316ac5" color=#ffffff>瀵勫瓨鍣?/FONT>.
EBX
(base)"鍩哄湴鍧"瀵勫瓨鍣?/FONT>, 鍦ㄥ唴瀛樺鍧鏃跺瓨鏀懼熀鍦板潃.
ECX
(counter)璁℃暟鍣? 鏄噸澶?REP)鍓嶇紑鎸囦護鍜孡OOP鎸囦護鐨勫唴瀹氳鏁?/P>
EDX
鐢ㄦ潵鏀炬暣鏁伴櫎娉曚駭鐢熺殑浣欐暟.
浣?6浣?AX,BX,CX鍜孌X
浣?浣?:AL,BL,CL鍜孌L
楂?浣?:AH,BH,CH鍜孌H
ESI
(source index)"婧愮儲寮?FONT style="BACKGROUND-COLOR: #316ac5" color=#ffffff>瀵勫瓨鍣?/FONT>", DS:ESI鎸囧悜婧愪覆,濡?瀛楃涓叉搷浣滄寚浠や腑,
EDI
(destination index)"鐩爣绱㈠紩瀵勫瓨鍣?/FONT>",ES:EDI鎸囧悜鐩爣涓?/P>
EBP (BASE POINTER)"鍩哄潃鎸囬拡",琚敤浣滈珮綰ц璦鍑芥暟璋冪敤鐨?BR> ,ESP(榪欎釜铏界劧閫氱敤,浣?BR>寰堝皯琚敤鍋氶櫎浜嗗爢鏍堟寚閽堝鐨勭敤閫? 榪欎簺32浣嶅彲浠ヨ鐢ㄤ綔澶氱4涓?FONT style="BACKGROUND-COLOR: #316ac5" color=#ffffff>瀵勫瓨鍣?/FONT>鐨勫張鍙?/P>
鍑芥暟鐨勮繑鍥炲肩粡甯歌鏀懼湪EAX涓? ESI/EDI鍒嗗埆鍙仛"婧?鐩爣绱㈠紩瀵勫瓨鍣?/FONT>"(source/destination index 涓ぎ澶勭悊鍣?CPU)鍦ㄥ井鏈虹郴緇熷浜庘滈瀵兼牳蹇冣濈殑鍦頒綅銆傛眹緙栬璦琚紪璇戞垚鏈哄櫒璇█涔嬪悗錛屽皢鐢卞鐞嗗櫒鏉ユ墽琛屻傞偅涔堬紝棣栧厛璁╂垜浠潵浜嗚В涓涓嬪鐞嗗櫒鐨勪富瑕佷綔鐢紝榪欏皢甯姪浣犳洿濂藉湴椹鵑┉瀹冦?/P>
),鍥犱負鍦ㄥ緢澶氬瓧絎︿覆鎿嶄綔鎸囦護涓? DS:ESI鎸囧悜婧愪覆,鑰? EBP鏄?鍩哄潃鎸囬拡"(BASE POINTER), 瀹冩渶緇忓父"
妗嗘灦鎸囬拡"(frame pointer). 鍦ㄧ牬瑙g殑鏃跺?緇忓父鍙互鐪嬭涓涓爣鍑嗙殑鍑芥暟璧峰浠g爜: push ebp ;淇濆瓨褰撳墠ebp mov ebp,esp ;EBP璁句負褰撳墠鍫嗘爤鎸囬拡
sub esp, xxx ;棰勭暀xxx瀛楄妭緇欏嚱鏁頒復鏃跺彉閲? ... 榪欐牱涓鏉?EBP 鏋勬垚浜嗚鍑芥暟鐨勪竴涓鏋? 鍦‥BP涓婃柟鍒嗗埆鏄師鏉ョ殑EBP, 榪斿洖鍦板潃鍜屽弬鏁? EBP涓?BR>
鏂瑰垯鏄復鏃跺彉閲? 鍑芥暟榪斿洖鏃朵綔 mov esp,ebp/pop ebp/ret 鍗沖彲. ESP 涓撻棬鐢ㄤ綔鍫嗘爤鎸囬拡. 2. 孌?FONT style="BACKGROUND-COLOR: #316ac5" color=#ffffff>瀵勫瓨鍣?/FONT>: CS(Code Segment錛屼唬鐮佹) 鎸囧畾褰撳墠鎵?BR>
琛岀殑浠g爜孌? EIP (Instruction pointer, 鎸囦護鎸囬拡)鍒欐寚鍚戣孌典腑涓涓叿浣撶殑鎸囦護. CS:EIP鎸囧悜鍝釜鎸囦護, CPU 灝辨墽琛屽畠. 涓鑸彧鑳界敤jmp, ret,
jnz, call 絳夋寚浠ゆ潵鏀瑰彉紼嬪簭嫻佺▼,鑰屼笉鑳界洿鎺ュ瀹冧滑璧嬪? DS(DATA SEGMENT, 鏁版嵁孌? 鎸囧畾涓涓暟鎹. 娉ㄦ剰:鍦ㄥ綋鍓嶇殑璁$畻鏈虹郴緇熶腑, 浠g爜鍜屾暟
鎹病鏈夋湰璐ㄥ樊鍒? 閮芥槸涓涓蹭簩榪涘埗鏁? 鍖哄埆鍙湪浜庝綘濡備綍鐢ㄥ畠. 渚嬪, CS 鍒跺畾鐨勬鎬繪槸琚敤浣滀唬鐮? 涓鑸笉鑳介氳繃CS鎸囧畾鐨勫湴鍧鍘諱慨鏀硅孌? 鐒惰?BR>
,浣犲彲浠ヤ負鍚屼竴涓鐢寵涓涓暟鎹鎻忚堪絎?鍒悕"鑰岄氳繃DS鏉ヨ闂?淇敼. 鑷慨鏀逛唬鐮佺殑紼嬪簭甯稿姝ゅ仛. ES,FS,GS 鏄緟鍔╃殑孌?FONT style="BACKGROUND-COLOR: #316ac5" color=#ffffff>瀵勫瓨鍣?/FONT>, 鎸囧畾闄勫姞鐨勬暟
鎹. SS(STACK SEGMENT)鎸囧畾褰撳墠鍫嗘爤孌? ESP 鍒欐寚鍑鴻孌典腑褰撳墠鐨勫爢鏍堥《. 鎵鏈塸ush/pop 緋誨垪鎸囦護閮藉彧瀵筍S:ESP鎸囧嚭鐨勫湴鍧榪涜鎿嶄綔. 3. 鏍囧織
瀵勫瓨鍣?/FONT>(EFLAGS): 璇?FONT style="BACKGROUND-COLOR: #316ac5" color=#ffffff>瀵勫瓨鍣?/FONT>鏈?2浣?緇勫悎浜嗗悇涓郴緇熸爣蹇? EFLAGS涓鑸笉浣滀負鏁翠綋璁塊棶, 鑰屽彧瀵瑰崟涓鐨勬爣蹇椾綅鎰熷叴瓚? 甯哥敤鐨勬爣蹇楁湁: 榪涗綅鏍囧織C(
CARRY), 鍦ㄥ姞娉曚駭鐢熻繘浣嶆垨鍑忔硶鏈夊熶綅鏃剁疆1, 鍚﹀垯涓?. 闆舵爣蹇梈(ZERO), 鑻ヨ繍綆楃粨鏋滀負0鍒欑疆1, 鍚﹀垯涓? 絎﹀彿浣峉(SIGN), 鑻ヨ繍綆楃粨鏋滅殑鏈楂樹綅緗?BR>
1, 鍒欒浣嶄篃緗?. 婧㈠嚭鏍囧織O(OVERFLOW), 鑻?甯︾鍙?榪愮畻緇撴灉瓚呭嚭鍙〃紺鴻寖鍥? 鍒欑疆1. JXX 緋誨垪鎸囦護灝辨槸鏍規嵁榪欎簺鏍囧織鏉ュ喅瀹氭槸鍚﹁璺寵漿, 浠庤?BR>
瀹炵幇鏉′歡鍒嗘灊. 瑕佹敞鎰?寰堝JXX 鎸囦護鏄瓑浠風殑, 瀵瑰簲鐩稿悓鐨勬満鍣ㄧ爜. 渚嬪, JE 鍜孞Z 鏄竴鏍風殑,閮芥槸褰揨=1鏄煩杞? 鍙湁JMP 鏄棤鏉′歡璺寵漿. JXX 鎸?BR>
浠ゅ垎涓轟袱緇? 鍒嗗埆鐢ㄤ簬鏃犵鍙鋒搷浣滃拰甯︾鍙鋒搷浣? JXX 鍚庨潰鐨?XX" 鏈夊涓嬪瓧姣? 鏃犵鍙鋒搷浣? 甯︾鍙鋒搷浣? A = "ABOVE", 琛ㄧず"楂樹簬" G = "
GREATER", 琛ㄧず"澶т簬" B = "BELOW", 琛ㄧず"浣庝簬" L = "LESS", 琛ㄧず"灝忎簬" C = "CARRY", 琛ㄧず"榪涗綅"鎴?鍊熶綅" O = "OVERFLOW", 琛ㄧず"婧㈠嚭" S
= "SIGN", 琛ㄧず"璐? 閫氱敤絎﹀彿: E = "EQUAL" 琛ㄧず"絳変簬", 絳変環浜嶼 (ZERO) N = "NOT" 琛ㄧず"闈?, 鍗蟲爣蹇楁病鏈夌疆浣? 濡侸NZ "濡傛灉Z娌℃湁緗綅鍒欒煩
杞? Z = "ZERO", 涓嶦鍚? 濡傛灉浠旂粏鎯充竴鎯?灝變細鍙戠幇 JA = JNBE, JAE = JNB, JBE = JNA, JG = JNLE, JGE= JNL, JL= JNGE, .... 4. 绔彛 绔彛
鏄洿鎺ュ拰澶栭儴璁懼閫氳鐨勫湴鏂廣傚璁炬帴鍏ョ郴緇熷悗錛岀郴緇熷氨浼氭妸澶栬鐨勬暟鎹帴鍙f槧灝勫埌鐗瑰畾鐨勭鍙e湴鍧絀洪棿錛岃繖鏍鳳紝浠庤绔彛璇誨叆鏁版嵁灝辨槸浠庡璁捐
鍏ユ暟鎹紝鑰屽悜澶栬鍐欏叆鏁版嵁灝辨槸鍚戠鍙e啓鍏ユ暟鎹傚綋鐒惰繖涓鍒囬兘蹇呴』閬靛驚澶栬鐨勫伐浣滄柟寮忋傜鍙g殑鍦板潃絀洪棿涓庡唴瀛樺湴鍧絀洪棿鏃犲叧錛岀郴緇熸誨叡鎻愪緵瀵?BR>
64K涓?浣嶇鍙g殑璁塊棶錛岀紪鍙?-65535. 鐩擱偦鐨?浣嶇鍙e彲浠ョ粍鎴愭垚涓涓?6浣嶇鍙o紝鐩擱偦鐨?6浣嶇鍙e彲浠ョ粍鎴愪竴涓?2浣嶇鍙c傜鍙h緭鍏ヨ緭鍑虹敱鎸囦護
IN,OUT,INS鍜孫UTS瀹炵幇錛屽叿浣撳彲鍙傝冩眹緙栬璦涔︾睄銆?BR>
鍏稿瀷鐨勫鐞嗗櫒鐨勪富瑕佷換鍔″寘鎷?/B>
涓鑸鏉ワ紝澶勭悊鍣ㄦ嫢鏈夊鏁翠釜緋葷粺鐨勬墍鏈夋葷嚎鐨勬帶鍒舵潈銆傚浜嶪ntel騫沖彴鑰岃█錛屽鐞嗗櫒鎷ユ湁瀵規暟鎹佸唴瀛樺拰鎺у埗鎬葷嚎鐨勬帶鍒舵潈錛屾牴鎹寚浠ゆ帶鍒舵暣涓綆楁満鐨勮繍琛屻傚湪浠ュ悗鐨勭珷鑺備腑錛屾垜浠繕灝嗚璁虹郴緇熶腑鍚屾椂瀛樺湪澶氫釜澶勭悊鍣ㄧ殑鎯呭喌銆?/P>
澶勭悊鍣ㄤ腑鏈変竴浜涘瘎瀛樺櫒錛岃繖浜涘瘎瀛樺櫒鍙互淇濆瓨鐗瑰畾闀垮害鐨勬暟鎹傛煇浜涘瘎瀛樺櫒涓繚瀛樼殑鏁版嵁瀵逛簬緋葷粺鐨勮繍琛屾湁鐗規畩鐨勬剰涔夈?/P>
鏂扮殑澶勭悊鍣ㄥ線寰鎷ユ湁鏇村銆佸叿鏈夋洿澶у瓧闀跨殑瀵勫瓨鍣紝鎻愪緵鏇寸伒媧葷殑鍙栨寚銆佸鍧鏂瑰紡銆?/P>
瀵勫瓨鍣?/B>
濡傚墠鎵榪幫紝澶勭悊鍣ㄤ腑鏈変竴浜涘彲浠ヤ繚瀛樻暟鎹殑鍦版柟琚О浣滃瘎瀛樺櫒銆?/P>
瀵勫瓨鍣ㄥ彲浠ヨ瑁呭叆鏁版嵁錛屼綘涔熷彲浠ュ湪涓嶅悓鐨勫瘎瀛樺櫒涔嬮棿縐誨姩榪欎簺鏁版嵁錛屾垨鑰呭仛綾諱技鐨勪簨鎯呫傚熀鏈笂錛屽儚鍥涘垯榪愮畻銆佷綅榪愮畻絳夎繖浜涜綆楁搷浣滐紝閮戒富瑕佹槸閽堝瀵勫瓨鍣ㄨ繘琛岀殑銆?/P>
棣栧厛璁╂垜鏉ヤ粙緇嶄竴涓?0386涓婃渶甯哥敤鐨?涓氱敤瀵勫瓨鍣ㄣ傚厛鐬х灖涓嬮潰鐨勫浘褰紝璇曠潃鐞嗚В涓涓嬶細
涓婂浘涓紝鏁板瓧琛ㄧず鐨勬槸浣嶃傛垜浠彲浠ョ湅鍑猴紝EAX鏄竴涓?2-bit瀵勫瓨鍣ㄣ傚悓鏃訛紝瀹冪殑浣?6-bit鍙堝彲浠ラ氳繃AX榪欎釜鍚嶅瓧鏉ヨ闂紱AX鍙堣鍒嗕負楂樸佷綆8bit涓ら儴鍒嗭紝鍒嗗埆鐢盇H鍜孉L鏉ヨ〃紺恒?/P>
瀵逛簬EAX銆丄X銆丄H銆丄L鐨勬敼鍙樺悓鏃朵篃浼氬獎鍝嶄笌琚慨鏀圭殑閭d簺瀵勫瓨鍣ㄧ殑鍊箋備粠鑰屼簨瀹炰笂鍙瓨鍦ㄤ竴涓?2-bit鐨勫瘎瀛樺櫒EAX錛岃屽畠鍙互閫氳繃4縐嶄笉鍚岀殑閫斿緞璁塊棶銆?/P>
涔熻閫氳繃鍚嶅瓧鑳藉鏇村鏄撳湴鐞嗚В榪欎簺瀵勫瓨鍣ㄤ箣闂寸殑鍏崇郴銆侲AX涓殑E鐨勬剰鎬濇槸鈥滄墿灞曠殑鈥濓紝鏁翠釜EAX鐨勬剰鎬濇槸鎵╁睍鐨凙X銆俋鐨勬剰鎬滻ntel娌℃湁鏄庣ず錛屾垜涓漢璁や負琛ㄧず瀹冩槸涓涓彲鍙樼殑閲?銆傝孉H銆丄L涓殑H鍜孡鍒嗗埆浠h〃楂樺拰浣?銆?/P>
涓轟粈涔堣榪欎箞鍋氬憿錛熶富瑕佺敱浜庡巻鍙插師鍥犮傛棭鏈熺殑璁$畻鏈烘槸8浣嶇殑錛?086鏄涓涓?6浣嶅鐞嗗櫒錛屽叾閫氱敤瀵勫瓨鍣ㄧ殑鍚嶅瓧鏄疉X錛孊X絳夌瓑錛?0386鏄疘ntel鎺ㄥ嚭鐨勭涓嬈綢A-32緋誨垪澶勭悊鍣紝鎵鏈夌殑瀵勫瓨鍣ㄩ兘琚墿鍏呬負32浣嶃備負浜嗚兘澶熷吋瀹逛互鍓嶇殑16浣嶅簲鐢ㄧ▼搴忥紝80386涓嶈兘灝嗚繖浜涘瘎瀛樺櫒渚濇棫鍛藉悕涓篈X銆丅X錛屽茍涓旂畝鍗曞湴灝嗕粬浠墿鍏呬負32浣嶁斺旇繖灝嗗鍔犲鐞嗗櫒鍦ㄥ鐞嗘寚浠ゆ柟闈㈢殑鎴愭湰銆?/P>
Intel寰鐞嗗櫒鐨勫瘎瀛樺櫒鍒楄〃錛堝湪鏈珷鍏堝彧浠嬬粛80386鐨勫瘎瀛樺櫒錛孧MX瀵勫瓨鍣ㄤ互鍙婂叾浠栨柊涓浠e鐞嗗櫒鐨勬柊瀵勫瓨鍣ㄥ皢鍦ㄤ互鍚庣殑绔犺妭浠嬬粛錛?/P>
閫氱敤瀵勫瓨鍣?/B>
涓嬮潰浠嬬粛閫氱敤瀵勫瓨鍣ㄥ強鍏朵範鎯敤娉曘傞【鍚嶆濅箟錛岄氱敤瀵勫瓨鍣ㄦ槸閭d簺浣犲彲浠ユ牴鎹嚜宸辯殑鎰忔効浣跨敤鐨勫瘎瀛樺櫒錛屼慨鏀逛粬浠殑鍊奸氬父涓嶄細瀵硅綆楁満鐨勮繍琛岄犳垚寰堝ぇ鐨勫獎鍝嶃傞氱敤瀵勫瓨鍣ㄦ渶澶氱殑鐢ㄩ旀槸璁$畻銆?/P>
EAX |
閫氱敤瀵勫瓨鍣ㄣ傜浉瀵瑰叾浠栧瘎瀛樺櫒錛屽湪榪涜榪愮畻鏂歸潰姣旇緝甯哥敤銆傚湪淇濇姢妯″紡涓紝涔熷彲浠ヤ綔涓哄唴瀛樺亸縐繪寚閽堬紙姝ゆ椂錛孌S浣滀負孌?瀵勫瓨鍣ㄦ垨閫夋嫨鍣級 |
EBX |
閫氱敤瀵勫瓨鍣ㄣ傞氬父浣滀負鍐呭瓨鍋忕Щ鎸囬拡浣跨敤錛堢浉瀵逛簬EAX銆丒CX銆丒DX錛夛紝DS鏄粯璁ょ殑孌靛瘎瀛樺櫒鎴栭夋嫨鍣ㄣ傚湪淇濇姢妯″紡涓紝鍚屾牱鍙互璧瘋繖涓綔鐢ㄣ?/TD> |
ECX |
閫氱敤瀵勫瓨鍣ㄣ傞氬父鐢ㄤ簬鐗瑰畾鎸囦護鐨勮鏁般傚湪淇濇姢妯″紡涓紝涔熷彲浠ヤ綔涓哄唴瀛樺亸縐繪寚閽堬紙姝ゆ椂錛孌S浣滀負 瀵勫瓨鍣ㄦ垨孌甸夋嫨鍣級銆?/TD> |
EDX |
閫氱敤瀵勫瓨鍣ㄣ傚湪鏌愪簺榪愮畻涓綔涓篍AX鐨勬孩鍑哄瘎瀛樺櫒錛堜緥濡備箻銆侀櫎錛夈傚湪淇濇姢妯″紡涓紝涔熷彲浠ヤ綔涓哄唴瀛樺亸縐繪寚閽堬紙姝ゆ椂錛孌S浣滀負孌?瀵勫瓨鍣ㄦ垨閫夋嫨鍣級銆?/TD> |
涓婅堪瀵勫瓨鍣ㄥ悓EAX涓鏍峰寘鎷搴旂殑16-bit鍜?-bit鍒嗙粍銆?/P>
鐢ㄤ綔鍐呭瓨鎸囬拡鐨勭壒孌婂瘎瀛樺櫒
ESI |
閫氬父鍦ㄥ唴瀛樻搷浣滄寚浠や腑浣滀負鈥滄簮鍦板潃鎸囬拡鈥濅嬌鐢ㄣ傚綋鐒訛紝ESI鍙互琚鍏ヤ換鎰忕殑鏁板鹼紝浣嗛氬父娌℃湁浜烘妸瀹冨綋浣滈氱敤瀵勫瓨鍣ㄦ潵鐢ㄣ侱S鏄粯璁ゆ瀵勫瓨鍣ㄦ垨閫夋嫨鍣ㄣ?/TD> |
EDI |
閫氬父鍦ㄥ唴瀛樻搷浣滄寚浠や腑浣滀負鈥滅洰鐨勫湴鍧鎸囬拡鈥濅嬌鐢ㄣ傚綋鐒訛紝EDI涔熷彲浠ヨ瑁呭叆浠繪剰鐨勬暟鍊鹼紝浣嗛氬父娌℃湁浜烘妸瀹冨綋浣滈氱敤瀵勫瓨鍣ㄦ潵鐢ㄣ侱S鏄粯璁ゆ瀵勫瓨鍣ㄦ垨閫夋嫨鍣ㄣ?/TD> |
EBP |
榪欎篃鏄竴涓綔涓烘寚閽堢殑瀵勫瓨鍣ㄣ傞氬父錛屽畠琚珮綰ц璦緙栬瘧鍣ㄧ敤浠ュ緩閫犫樺爢鏍堝撫鈥欐潵淇濆瓨鍑芥暟鎴栬繃紼嬬殑灞閮ㄥ彉閲忥紝涓嶈繃錛岃繕鏄偅鍙ヨ瘽錛屼綘鍙互鍦ㄥ叾涓繚瀛樹綘甯屾湜鐨勪換浣曟暟鎹係S鏄畠鐨勯粯璁ゆ瀵勫瓨鍣ㄦ垨閫夋嫨鍣ㄣ?/TD> |
娉ㄦ剰錛岃繖涓変釜瀵勫瓨鍣ㄦ病鏈夊搴旂殑8-bit鍒嗙粍銆傛崲璦涔嬶紝浣犲彲浠ラ氳繃SI銆丏I銆丅P浣滀負鍒悕璁塊棶浠栦滑鐨勪綆16浣嶏紝鍗存病鏈夊姙娉曠洿鎺ヨ闂粬浠殑浣?浣嶃?/P>
孌靛瘎瀛樺櫒鍜岄夋嫨鍣?/B>
瀹炴ā寮忎笅鐨勬瀵勫瓨鍣ㄥ埌淇濇姢妯″紡涓嬫憞韜竴鍙樺氨鎴愪簡閫夋嫨鍣ㄣ備笉鍚岀殑鏄紝瀹炴ā寮忎笅鐨勨滄瀵勫瓨鍣ㄢ濇槸16-bit鐨勶紝鑰屼繚鎶ゆā寮忎笅鐨勯夋嫨鍣ㄦ槸32-bit鐨勩?/P>
CS | 浠g爜孌碉紝鎴栦唬鐮侀夋嫨鍣ㄣ傚悓IP瀵勫瓨鍣?紼嶅悗浠嬬粛)涓鍚屾寚鍚戝綋鍓嶆鍦ㄦ墽琛岀殑閭d釜鍦板潃銆傚鐞嗗櫒鎵ц鏃朵粠榪欎釜瀵勫瓨鍣ㄦ寚鍚戠殑孌碉紙瀹炴ā寮忥級鎴栧唴瀛橈紙淇濇姢妯″紡錛変腑鑾峰彇鎸囦護銆傞櫎浜嗚煩杞垨鍏朵粬鍒嗘敮鎸囦護涔嬪錛屼綘鏃犳硶淇敼榪欎釜瀵勫瓨鍣ㄧ殑鍐呭銆?/TD> |
DS | 鏁版嵁孌碉紝鎴栨暟鎹夋嫨鍣ㄣ傝繖涓瘎瀛樺櫒鐨勪綆16 bit榪炲悓ESI涓鍚屾寚鍚戠殑鎸囦護灝嗚澶勭悊鐨勫唴瀛樸傚悓鏃訛紝鎵鏈夌殑鍐呭瓨鎿嶄綔鎸囦護 榛樿鎯呭喌涓嬮兘鐢ㄥ畠鎸囧畾鎿嶄綔孌?瀹炴ā寮?鎴栧唴瀛?浣滀負閫夋嫨鍣紝鍦ㄤ繚鎶ゆā寮忋傝繖涓瘎瀛樺櫒鍙互琚鍏ヤ換鎰忔暟鍊鹼紝鐒惰屽湪榪欎箞鍋氱殑鏃跺欓渶瑕佸皬蹇冧竴浜涖傛柟娉曟槸錛岄鍏堟妸鏁版嵁閫佺粰AX錛岀劧鍚庡啀鎶婂畠浠嶢X浼犻佺粰DS(褰撶劧錛屼篃鍙互閫氳繃鍫嗘爤鏉ュ仛). |
ES | 闄勫姞孌碉紝鎴栭檮鍔犻夋嫨鍣ㄣ傝繖涓瘎瀛樺櫒鐨勪綆16 bit榪炲悓EDI涓鍚屾寚鍚戠殑鎸囦護灝嗚澶勭悊鐨勫唴瀛樸傚悓鏍風殑錛岃繖涓瘎瀛樺櫒鍙互琚鍏ヤ換鎰忔暟鍊鹼紝鏂規硶鍜孌S綾諱技銆?/TD> |
FS | F孌墊垨F閫夋嫨鍣?鎺ㄦ祴F鍙兘鏄疐ree?)銆傚彲浠ョ敤榪欎釜瀵勫瓨鍣ㄤ綔涓洪粯璁ゆ瀵勫瓨鍣ㄦ垨閫夋嫨鍣ㄧ殑涓涓浛浠e搧銆傚畠鍙互琚鍏ヤ換浣曟暟鍊鹼紝鏂規硶鍜孌S綾諱技銆?/TD> |
GS | G孌墊垨G閫夋嫨鍣?G鐨勬剰涔夊拰F涓鏍鳳紝娌℃湁鍦↖ntel鐨勬枃妗d腑瑙i噴)銆傚畠鍜孎S鍑犱箮瀹屽叏涓鏍楓?/TD> |
SS | 鍫嗘爤孌墊垨鍫嗘爤閫夋嫨鍣ㄣ傝繖涓瘎瀛樺櫒鐨勪綆16 bit榪炲悓ESP涓鍚屾寚鍚戜笅涓嬈″爢鏍堟搷浣?push鍜宲op)鎵瑕佷嬌鐢ㄧ殑鍫嗘爤鍦板潃銆傝繖涓瘎瀛樺櫒涔熷彲浠ヨ瑁呭叆浠繪剰鏁板鹼紝浣犲彲浠ラ氳繃鍏ユ爤鍜屽嚭鏍堟搷浣滄潵緇欎粬璧嬪鹼紝涓嶈繃鐢變簬鍫嗘爤瀵逛簬寰堝鎿嶄綔鏈夊緢閲嶈鐨勬剰涔夛紝鍥犳錛屼笉姝g‘鐨勪慨鏀規湁鍙兘閫犳垚瀵瑰爢鏍堢殑鐮村潖銆?/TD> |
* 娉ㄦ剰 涓瀹氫笉瑕佸湪鍒濆姹囩紪鐨勯樁孌墊妸榪欎簺瀵勫瓨鍣ㄥ紕娣楓備粬浠潪甯擱噸瑕侊紝鑰屼竴鏃︿綘鎺屾彙浜嗕粬浠紝浣犲氨鍙互瀵逛粬浠仛浠繪剰鐨勬搷浣滀簡銆傛瀵勫瓨鍣紝鎴栭夋嫨鍣紝鍦ㄦ病鏈夋寚瀹氱殑鎯呭喌涓嬮兘鏄嬌鐢ㄩ粯璁ょ殑閭d釜銆傝繖鍙ヨ瘽鍦ㄧ幇鍦ㄧ湅鏉ュ彲鑳芥湁鐐圭█閲岀硦娑傦紝涓嶈繃浣犲緢蹇氨浼氬湪鍚庨潰鐭ラ亾濡備綍鍘誨仛銆?/P>
鐗規畩瀵勫瓨鍣?鎸囧悜鍒扮壒瀹氭鎴栧唴瀛樼殑鍋忕Щ閲?錛?/P>
EIP | 榪欎釜瀵勫瓨鍣ㄩ潪甯哥殑閲嶈銆傝繖鏄竴涓?2浣嶅鐨勫瘎瀛樺櫒 錛屽悓CS涓鍚屾寚鍚戝嵆灝嗘墽琛岀殑閭f潯鎸囦護鐨勫湴鍧銆備笉鑳藉鐩存帴淇敼榪欎釜瀵勫瓨鍣ㄧ殑鍊鹼紝淇敼瀹冪殑鍞竴鏂規硶鏄煩杞垨鍒嗘敮鎸囦護銆?CS鏄粯璁ょ殑孌墊垨閫夋嫨鍣? |
ESP | 榪欎釜32浣嶅瘎瀛樺櫒鎸囧悜鍫嗘爤涓嵆灝嗚鎿嶄綔鐨勯偅涓湴鍧銆傚敖綆″彲浠ヤ慨鏀瑰畠鐨勫鹼紝鐒惰屽茍涓嶆彁鍊¤繖鏍峰仛錛屽洜涓哄鏋滀綘涓嶆槸闈炲父鏄庣櫧鑷繁鍦ㄥ仛浠涔堬紝閭d箞浣犲彲鑳介犳垚鍫嗘爤鐨勭牬鍧忋傚浜庣粷澶у鏁版儏鍐佃岃█錛岃繖瀵圭▼搴忔槸鑷村懡鐨勩?SS鏄粯璁ょ殑孌墊垨閫夋嫨鍣? |
IP: Instruction Pointer, 鎸囦護鎸囬拡
SP: Stack Pointer, 鍫嗘爤鎸囬拡
濂戒簡錛屼笂闈㈡槸鏈鍩烘湰鐨勫瘎瀛樺櫒銆備笅闈㈡槸涓浜涘叾浠栫殑瀵勫瓨鍣紝浣犵敋鑷沖彲鑳芥病鏈夊惉璇磋繃瀹冧滑銆?閮芥槸32浣嶅)錛?/P>
CR0, CR2, CR3(鎺у埗瀵勫瓨鍣?銆備婦涓涓緥瀛愶紝CR0鐨勪綔鐢ㄦ槸鍒囨崲瀹炴ā寮忓拰淇濇姢妯″紡銆?/P>
榪樻湁鍏朵粬涓浜涘瘎瀛樺櫒錛孌0, D1, D2, D3, D6鍜孌7(璋冭瘯瀵勫瓨鍣?銆備粬浠彲浠ヤ綔涓鴻皟璇曞櫒鐨勭‖浠舵敮鎸佹潵璁劇疆鏉′歡鏂偣銆?/P>
TR3, TR4, TR5, TR6 鍜?TR? 瀵勫瓨鍣?嫻嬭瘯瀵勫瓨鍣?鐢ㄤ簬鏌愪簺鏉′歡嫻嬭瘯銆?/P>
鏈鍚庢垜浠璇寸殑鏄竴涓湪紼嬪簭璁捐涓搗鐫闈炲父鍏抽敭鐨勪綔鐢ㄧ殑瀵勫瓨鍣細鏍囧織瀵勫瓨鍣ㄣ?/P>