锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲综合日韩,国产欧美高清,欧美成人一区二区在线http://www.shnenglu.com/ispfcn/zh-cnSat, 15 Nov 2025 20:59:53 GMTSat, 15 Nov 2025 20:59:53 GMT60鍦≒HP涓疄鐜拌繘紼嬮棿閫氳http://www.shnenglu.com/ispfcn/archive/2008/04/18/47518.html緙栫▼涔嬮亾緙栫▼涔嬮亾Fri, 18 Apr 2008 09:26:00 GMThttp://www.shnenglu.com/ispfcn/archive/2008/04/18/47518.htmlhttp://www.shnenglu.com/ispfcn/comments/47518.htmlhttp://www.shnenglu.com/ispfcn/archive/2008/04/18/47518.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/47518.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/47518.html銆銆鏈枃灝嗚璁哄湪PHP4鐜涓嬪浣曚嬌鐢ㄨ繘紼嬮棿閫氳鏈哄埗鈥斺擨PC(Inter-Process-Communication)銆傛湰鏂囪璁虹殑杞歡鐜鏄疞inux+php4.0.4鎴栨洿楂樼増鏈傞鍏?鎴戜滑鍋囪浣犲凡緇忚濂戒簡(jiǎn)PHP4鍜孶NIX, 涓轟簡(jiǎn)浣垮緱php4鍙互浣跨敤鍏變韓鍐呭瓨鍜屼俊鍙烽噺錛屽繀欏誨湪緙栬瘧php4紼嬪簭鏃舵縺媧籹hmop鍜宻ysvsem榪欎袱涓墿灞曟ā鍧椼?

銆銆瀹炵幇鏂規(guī)硶錛氬湪PHP璁懼畾(configure)鏃跺姞鍏ュ涓嬮夐」銆?

 --enable-shmop --enable-sysvsem  

 

銆銆榪欐牱灝變嬌寰椾綘鐨凱HP緋葷粺鍙互澶勭悊鐩稿叧鐨処PC鍑芥暟浜?jiǎn)銆?

銆銆IPC鏄粈涔堬紵

銆銆IPC (Inter-process communication) 鏄竴涓猆nix鏍囧噯閫氳鏈哄埗錛屽畠鎻愪緵浜?jiǎn)鋴慑緱鍦ㄥ悓涓鍙頒富鏈轟笉鍚岃繘紼嬩箣闂村彲浠ヤ簰鐩擱氳鐨勬柟娉曘傚熀鏈殑IPC澶勭悊鏈哄埗鏈?縐嶏細(xì)瀹冧滑鍒嗗埆鏄叡浜唴瀛樸佷俊鍙烽噺鍜屾秷鎭槦鍒椼傛湰鏂囦腑鎴戜滑涓昏璁ㄨ鍏變韓鍐呭瓨鍜屼俊鍙烽噺鐨勪嬌鐢ㄣ傚叧浜庢秷鎭槦鍒楋紝絎旇呭湪涓嶄箙鐨勫皢鏉ヨ繕?shù)細(xì)涓撻棬浠嬀l嶃?

銆銆鍦≒HP涓嬌鐢ㄥ叡浜唴瀛樻

銆銆鍦ㄤ笉鍚岀殑澶勭悊榪涚▼涔嬮棿浣跨敤鍏變韓鍐呭瓨鏄竴涓疄鐜頒笉鍚岃繘紼嬩箣闂寸浉浜掗氳鐨勫ソ鏂規(guī)硶銆傚鏋滀綘鍦ㄤ竴涓繘紼嬩腑鍚戞墍鍏變韓鐨勫唴瀛樺啓鍏ヤ竴孌典俊鎭紝閭d箞鎵鏈夊叾浠栫殑榪涚▼涔熷彲浠ョ湅鍒拌繖孌佃鍐欏叆鐨勬暟鎹傞潪甯告柟渚褲傚湪PHP涓湁浜?jiǎn)鍏变韩鍐呭瓨鐨勫府鍔╁Q屼綘鍙互瀹炵幇涓嶅悓榪涚▼鍦ㄨ繍琛屽悓涓孌礟HP鑴氭湰鏃惰繑鍥炰笉鍚岀殑緇撴灉銆傛垨瀹炵幇瀵筆HP鍚屾椂榪愯鏁伴噺鐨勫疄鏃舵煡璇㈢瓑絳夈?

銆銆鍏變韓鍐呭瓨鍏佽涓や釜鎴栬呭涓繘紼嬪叡浜竴緇欏畾鐨勫瓨鍌ㄥ尯銆傚洜涓烘暟鎹笉闇瑕佸湪瀹㈡埛鏈哄拰鏈嶅姟鍣ㄤ箣闂村鍒訛紝鎵浠ヨ繖鏄渶蹇殑涓縐岻PC銆備嬌鐢ㄥ叡浜唴瀛樼殑鍞竴紿嶉棬鏄涓繘紼嬪涓緇欏畾瀛樺偍鍖虹殑鍚屾瀛樺彇銆?

銆銆濡備綍寤虹珛涓涓叡浜唴瀛樻鍛紵涓嬮潰鐨勪唬鐮佸彲浠ュ府浣犲緩绔嬪叡浜唴瀛樸?nbsp;
      

$shm_id = shmop_open($key, $mode, $perm, $size); 

 

銆銆娉ㄦ剰錛屾瘡涓叡浜唴瀛樻閮芥湁涓涓敮涓鐨処D, 鍦≒HP涓紝shmop_open浼?xì)鎶婂缓绔嬪ソ鐨勫呑冺n鍐呭瓨孌電殑ID榪斿洖錛岃繖閲屾垜浠敤$shm_id璁板綍瀹冦傝?key鏄竴涓垜浠昏緫涓婅〃紺哄叡浜唴瀛樻鐨凨ey鍊箋備笉鍚岃繘紼嬪彧瑕侀夋嫨鍚屼竴涓狵ey id灝卞彲浠ュ叡浜悓涓孌靛瓨鍌ㄦ銆備範(fàn)鎯笂鎴戜滑鐢ㄤ竴涓覆錛堢被浼兼枃浠跺悕涓鏍風(fēng)殑涓滆タ錛夌殑鏁e垪鍊間綔涓簁ey id. $mode鎸囨槑浜?jiǎn)鍏变韩鍐呭瓨娈电殑鋴社敤鏂瑰紡銆傝繖閲岀敱浜庢槸鏂板緩錛屽洜姝ゅ間負(fù)’c’ –鍙朿reate涔嬫剰銆傚鏋滀綘鏄闂凡緇忓緩绔嬭繃鐨勫叡浜唴瀛橀偅涔堣鐢?#8217;a’,-- 鍙朅ccess涔嬫剰銆?perm鍙傛暟瀹氫箟浜?jiǎn)璁块棶鐨勬潈闄愬Q?榪涘埗錛屽叧浜庢潈闄愬畾涔夎鐪婾NIX鏂囦歡緋葷粺甯姪銆?size瀹氫箟浜?jiǎn)鍏变韩鍐呭瓨鐨勫ぇ灏忋傚敖綆℃湁鐐硅薄fopen(鏂囦歡澶勭悊)浣犲彲涓嶈褰撳畠鍚屾枃浠跺鐞嗕竴鏍楓傚悗闈㈢殑鎻忚堪浣犲皢鐪嬪埌鐫涓鐐廣?

銆銆渚嬪錛?

$shm_id = shmop_open(0xff3, "c", 0644, 100); 


銆銆榪欓噷鎴戜滑鎵撳紑浜?jiǎn)涓涓叡浜唴瀛樻 閿?xff3 –rw-r鈥攔鈥旀牸寮忥紝澶у皬涓?00瀛楄妭銆?

銆銆濡傛灉闇瑕佽闂凡鏈夌殑鍏變韓鍐呭瓨孌碉紝浣犲繀欏誨湪璋冪敤shmop_open涓絎?銆?涓弬鏁頒負(fù)0銆?

銆銆IPC宸ヤ綔鐘舵佺殑鏌ヨ

銆銆鍦║nix涓嬶紝浣犲彲浠ョ敤涓涓懡浠よ紼嬪簭ipcs鏌ヨ緋葷粺鎵鏈夌殑IPC璧勬簮鐘舵併備笉榪囨湁浜涚郴緇熻姹傞渶瑕佽秴綰х敤鎴鋒柟鑳芥墽琛屻備笅鍥炬槸涓孌礽pcs鐨勮繍琛岀粨鏋溿?/p>

 
銆銆涓婂浘涓郴緇熸樉紺轟簡(jiǎn)4涓叡浜唴瀛樻錛屾敞鎰忓叾涓4涓敭鍊間負(fù)0x00000ff3鐨勫氨鏄垜浠垰鍒氳繍琛岃繃鐨凱HP紼嬪簭鎵鍒涘緩鐨勩傚叧浜巌pcs鐨勭敤娉曡鍙傝僓NIX鐢ㄦ埛鎵嬪唽銆?

銆銆濡備綍閲婃斁鍏變韓鍐呭瓨鍛?

銆銆閲婃斁鍏變韓鍐呭瓨鐨勫姙娉曟槸璋冪敤PHP鎸囦護(hù):shmop_delete($id)

 

shmop_delete($id); 

 

銆銆$id 灝辨槸浣犺皟鐢╯hmop_open鎵瀛樼殑shmop_op鐨勮繑鍥炲箋傝繕鏈変竴涓姙娉曞氨鏄敤UNIX鐨勭鐞嗘寚浠?

銆銆ipcrm id, id灝辨槸浣犵敤ipcs鐪嬪埌鐨処D.鍜屼綘紼嬪簭涓殑$id涓嶄竴鏍楓備笉榪囪灝忓績(jī)錛屽鏋滀綘鐢╥pcrm鐩存帴鍒犻櫎鍏變韓鍐呭瓨孌甸偅涔堟湁鍙兘瀵艱嚧鍏朵粬涓嶇煡閬撹繖涓鎯呭喌鐨勮繘紼嬪湪寮曠敤榪欎釜宸茬粡涓嶅瀛樺湪鐨勫叡浜唴瀛樺櫒鏃跺嚭鐜頒竴浜涗笉鍙嫻嬬殑閿欒(寰寰緇撴灉涓嶅)銆?

銆銆濡備綍浣跨敤(璇誨啓)鍏變韓鍐呭瓨鍛?

銆銆浣跨敤濡備笅鎵紺哄嚱鏁板悜鍏變韓鍐呭瓨鍐欏叆鏁版嵁

 

int shmop_write (int shmid, string data, int offset) 

 

銆銆鍏朵腑shmid鏄敤shmop_open榪斿洖鐨勫彞鏌勩?Data鍙橀噺瀛樻斁浜?jiǎn)瑕佸瓨鏀剧殑鏁版嵁銆?offset鎻忚堪浜?jiǎn)鍐欏叆浠庡呑冺n鍐呭瓨鐨勫紑濮嬬涓涓瓧鑺傜殑浣嶇疆錛堜互0寮濮嬶級(jí)銆?

銆銆璇誨彇鎿嶄綔鏄細(xì)

 

string shmop_read (int shmid, int start, int count

 

銆銆鍚屾牱錛屾寚鏄?shmid,寮濮嬪亸縐婚噺錛堜互0寮濮嬶級(jí)銆佹昏鍙栨暟閲忋傝繑鍥炵粨鏋滀覆銆傝繖鏍鳳紝浣犲氨鍙互鎶婂叡浜唴瀛樻褰撲綔鏄竴涓瓧鑺傛暟緇勩傝鍑犱釜鍐嶅啓鍑犱釜錛屾兂騫插槢灝卞共鍢涳紝鍗佸垎鏂逛究銆?

銆銆澶氳繘紼嬮棶棰樼殑鑰冭檻

銆銆鐜板湪錛屽湪鍗曠嫭鐨勪竴涓狿HP榪涚▼涓鍐欍佸垱寤恒佸垹闄ゅ叡浜唴瀛樻柟闈笂浣犲簲璇ユ病鏈夐棶棰樹(shù)簡(jiǎn)銆備絾鏄紝鏄劇劧瀹為檯榪愯涓笉鍙兘鍙槸涓涓狿HP榪涚▼鍦ㄨ繍琛屼腑銆傚鏋滃湪澶氫釜榪涚▼鐨勬儏鍐典笅浣犺繕鏄部鐢ㄥ崟涓繘紼嬬殑澶勭悊鏂規(guī)硶錛屼綘涓瀹氫細(xì)紕板埌闂 ---- 钁楀悕鐨勫茍琛屽拰浜掓枼闂銆傛瘮濡傝鏈?涓繘紼嬪悓鏃墮渶瑕佸鍚屼竴孌靛唴瀛樿繘琛岃鍐欍傚綋涓や釜榪涚▼鍚屾椂鎵ц鍐欏叆鎿嶄綔鏃訛紝浣犲皢寰楀埌涓涓敊璇殑鏁版嵁錛屽洜涓鴻孌靛唴瀛樺皢涔嬪彲鑳芥槸鏈鍚庢墽琛岀殑榪涚▼鐨勫唴瀹癸紝鐢氳嚦鏄敱2涓繘紼嬪啓鍏ョ殑鏁版嵁杞祦闅忔満鍑虹幇鐨勪竴孌墊販鍚堢殑鍥涗笉璞°傝繖鏄劇劧鏄笉鑳芥帴鍙楃殑銆備負(fù)浜?jiǎn)瑙e唽櫩欎釜闂锛屾垜浠繀椤诲紩鍏ヤ簰鏂ユ満鍒躲備簰鏂ユ満鍒跺湪寰堝鎿嶄綔緋葷粺鐨勬暀鏉愪笂閮芥湁涓撻棬璁茶堪錛岃繖閲屼笉澶氶噸澶嶃傚疄鐜頒簰鏂ユ満鍒剁殑鏈綆鍗曞姙娉曞氨鏄嬌鐢ㄤ俊鍙風(fēng)伅銆備俊鍙烽噺鏄彟澶栦竴縐嶈繘紼嬮棿閫氳(IPC)鐨勬柟寮忥紝瀹冨悓鍏朵粬IPC鏈烘瀯(綆¢亾銆丗IFO銆佹秷鎭槦鍒?涓嶅悓銆傚畠鏄竴涓鏁板櫒錛岀敤浜庢帶鍒跺榪涚▼瀵瑰叡浜暟鎹殑瀛樺偍銆傚悓鏍風(fēng)殑鏄綘鍙互鐢╥pcs鍜宨pcrm瀹炵幇瀵逛俊鍙風(fēng)伅浣跨敤鐘舵佺殑鏌ヨ鍜屽鍏跺疄鐜板垹闄ゆ搷浣溿傚湪PHP涓綘鍙互鐢ㄤ笅鍒楀嚱鏁板垱寤轟竴涓柊鐨勪俊鍙烽噺騫惰繑鍥炴搷浣滆淇″彿閲忕殑鍙ユ焺銆傚鏋滆key鎸囧悜鐨勪俊鍙烽噺宸茬粡瀛樺湪錛宻em_get鐩存帴榪斿洖鎿嶄綔璇ヤ俊鍙烽噺鐨勫彞鏌勩?

 

int sem_get (int key [, int max_acquire [, int perm]]) 

 

銆銆$max_acquire 鎸囨槑鍚屾椂鏈澶氬彲浠ョ敤鍑犱釜榪涚▼榪涘叆璇ヤ俊鍙瘋(gè)屼笉蹇呯瓑寰呰淇″彿琚噴鏀撅紙涔熷氨鏄渶澶у悓鏃跺鐞嗘煇涓璧勬簮鐨勮繘紼嬫暟鐩?涓鑸鍊煎潎涓轟竴錛夈?perm鎸囨槑浜?jiǎn)璁块棶鏉冮檺銆?

銆銆涓鏃︿綘鎴愬姛鐨勬嫢鏈変簡(jiǎn)涓涓俊鍙烽噺錛屼綘瀵瑰畠鎵鑳藉仛鐨勫彧鏈?縐嶏細(xì)璇鋒眰銆侀噴鏀俱傚綋浣犳墽琛岄噴鏀炬搷浣滄椂, 緋葷粺灝嗘妸璇ヤ俊鍙峰煎噺涓銆傚鏋滃皬浜?閭e氨榪樿涓?銆傝屽綋浣犳墽琛岃姹傛搷浣滄椂錛岀郴緇熷皢鎶婅淇″彿鍊煎姞涓錛屽鏋滆鍊煎ぇ浜庤瀹氱殑鏈澶у奸偅涔堢郴緇熷皢鎸傝搗浣犵殑澶勭悊榪涚▼鐩村埌鍏朵粬榪涚▼閲婃斁鍒板皬浜庢渶澶у間負(fù)姝€備竴鑸儏鍐典笅鏈澶у艱涓?,榪欐牱涓鏉ュ綋涓涓繘紼嬭幏寰楄姹傛椂鍏朵粬鍚庨潰鐨勮繘紼嬪彧鑳界瓑寰呭畠閫鍑轟簰鏂ュ尯鍚庨噴鏀句俊鍙烽噺鎵嶈兘榪涘叆璇ヤ簰鏂ュ尯騫跺悓鏃惰涓虹嫭鍗犳柟寮忋傝繖鏍風(fēng)殑淇″彿閲忓父縐頒負(fù)鍙屾佷俊鍙烽噺銆傚綋鐒?dòng)灱屽鏋滃垵鍊兼槸浠繪剰涓涓鏁板氨琛ㄦ槑鏈夊灝戜釜鍏變韓璧勬簮鍗曚綅鍙緵鍏變韓搴旂敤銆?

銆銆鐢寵銆侀噴鏀炬搷浣滅殑PHP鏍煎紡濡備笅錛?

 

int sem_acquire (int sem_identifier) 


鐢寵

int sem_release (int sem_identifier) 


閲婃斁
鍏朵腑sem_identifier鏄皟鐢╯em_get鐨勮繑鍥炲鹼紙鍙ユ焺錛夈?nbsp;
涓涓畝鍗曠殑浜掓枼鍗忚渚嬪瓙
涓嬮潰鏄竴孌靛緢綆鍗曠殑浜掓枼鎿嶄綔瑙勭▼銆?

$semid=sem_get(0xee3,1,0666); 
$shm_id = shmop_open(0xff3, "c", 0644, 100); 
sem_acquire(
$semid);顥ヮ棩顥ヮ棩顥?nbsp;//鐢寵 
/*
 榪涘叆涓寸晫鍖?/span>*/ 
/*榪欓噷錛屽鍏變韓鍐呭瓨榪涜澶勭悊 */
sem_release(
$semid); 顥ヮ棩顥ヮ棩顥?/span>//閲婃斁 

 

 

銆銆姝e浣犳墍鐪嬪埌鐨勶紝浜掓枼鐨勫疄鐜板緢綆鍗曪細(xì)鐢寵榪涘叆涓寸晫鍖猴紝瀵逛復(fù)鐣屽尯璧勬簮榪涜鎿嶄綔錛堟瘮濡備慨鏀瑰叡浜唴瀛橈級(jí)閫鍑轟復(fù)鐣屽尯騫墮噴鏀句俊鍙楓傝繖鏍蜂竴鏉ュ氨鍙互淇濊瘉鍦ㄥ悓涓涓椂闂寸墖涓笉鍙兘鏈夊悓鏃?涓繘紼嬪鍚屼竴孌靛叡浜唴瀛樿繘琛屾搷浣溿傚洜涓轟俊鍙烽噺鏈哄埗淇濊瘉涓涓椂闂寸墖鍙兘鐢變竴涓繘紼嬭繘鍏ワ紝鍏朵粬榪涚▼蹇呴』絳夊緟褰撳墠澶勭悊鐨勮繘紼嬪畬鎴愬悗鏂硅兘榪涘叆銆?

銆銆涓寸晫鍖轟竴鑸槸鎸囬偅浜涗笉鍏佽鍚屾椂鏈夊涓繘紼嬪茍鍙戝鐞嗙殑浠g爜孌點(diǎn)?

銆銆瑕佹敞鎰忕殑鏄?鍦≒HP涓繀欏葷敱鍚屼竴涓繘紼嬮噴鏀懼畠鎵鍗犵敤鐨勪俊鍙烽噺銆傚湪涓鑸郴緇熶腑鍏佽榪涚▼閲婃斁鍒殑榪涚▼鍗犵敤鐨勪俊鍙楓傚湪緙栧啓涓寸晫鍖轟唬鐮佷竴瀹氳灝忓績(jī)璁捐璧勬簮鐨勫垎閰嶏紝閬垮厤A絳塀錛孊絳堿鐨勬閿佹儏鍐靛彂鐢熴?nbsp;

銆銆榪愵棩鐢?/strong>

銆銆IPC鐨勮繍鐢ㄦ槸鍗佸垎騫挎硾鐨勩傛瘮濡傦紝鍦ㄤ笉鍚岃繘紼嬮棿淇濆瓨?shù)竴涓В閲婅繃鐨勫鏉傜殑閰嶇疆鏂囦歡銆佹垨鍏蜂綋璁劇疆鐨勭敤鎴風(fēng)瓑錛屼互閬垮厤閲嶅澶勭悊銆傛垜涔熸浘緇忕敤鍏變韓鍐呭瓨鐨勬妧鏈妸涓澶ф壒PHP鑴氭湰蹇呴』寮曠敤鐨勪竴涓緢澶х殑鏂囦歡鏀懼叆鍏變韓鍐呭瓨錛屽茍鐢辨鏄捐憲鎻愬崌浜?jiǎn)Web鏈嶅姟鐨勯熷害銆佹秷闄や簡(jiǎn)閮ㄥ垎鐡墮銆傚叧浜庡畠鐨勪嬌鐢ㄨ繕鏈夎亰澶╁錛屽璺箍鎾瓑絳夈侷PC鐨勫▉鍔涘彇鍐充簬浣犵殑鎯寵薄鍔涚殑澶у皬銆傚鏋滄湰鏂囧浣犳湁涓鐐圭偣鍚彂錛岄偅鎴戜笉鑳滆崳騫搞傛効鎰忓緢浣犺璁鴻繖浠や漢鍏ヨ糠鐨勭數(shù)鑴戞妧鏈侲mail: qwyaxm@163.net



 



]]>
Apache妯″潡 寮鍙戝疄渚?杞?http://www.shnenglu.com/ispfcn/archive/2008/01/30/42234.html緙栫▼涔嬮亾緙栫▼涔嬮亾Wed, 30 Jan 2008 08:35:00 GMThttp://www.shnenglu.com/ispfcn/archive/2008/01/30/42234.htmlhttp://www.shnenglu.com/ispfcn/comments/42234.htmlhttp://www.shnenglu.com/ispfcn/archive/2008/01/30/42234.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/42234.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/42234.html闃呰鍏ㄦ枃

]]>
Smarty鎴彇涓枃鎵╁睍錛屾敮鎸乁TF-8鍜孏Bhttp://www.shnenglu.com/ispfcn/archive/2007/11/20/37010.html緙栫▼涔嬮亾緙栫▼涔嬮亾Tue, 20 Nov 2007 06:34:00 GMThttp://www.shnenglu.com/ispfcn/archive/2007/11/20/37010.htmlhttp://www.shnenglu.com/ispfcn/comments/37010.htmlhttp://www.shnenglu.com/ispfcn/archive/2007/11/20/37010.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/37010.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/37010.html 

 1function smarty_modifier_truncate_cn($string, $length = 80, $code = 'UTF-8', $etc = '')
 2{
 3    if ($length == 0)
 4        return '';
 5    if($code == 'UTF-8'){
 6        $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";
 7    }
 8    else{
 9        $pa = "/[\x01-\x7f]|[\xa1-\xff][\xa1-\xff]/";
10    }
11    preg_match_all($pa, $string, $t_string);
12    if(count($t_string[0]) > $length)
13        return join('', array_slice($t_string[0], 0, $length)).$etc;
14    return join('', array_slice($t_string[0], 0, $length));
15}

浠ヤ笅浠g爜淇濆瓨?shù)负ascii鏍煎紡
 1<html>
 2<head>
 3<title>Truncate 嫻嬭瘯</title>
 4<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
 5</head>
 6<body>
 7{{$string}}<br>
 8{{$string|truncate_cn:15:"":""}}<br>
 9</body>
10</html>


浠ヤ笅浠g爜淇濆瓨?shù)?UTF-8鏍煎紡
 1<html>
 2<head>
 3<title>Truncate 嫻嬭瘯</title>
 4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 5</head>
 6<body>
 7{{$string}}<br>
 8{{$string|truncate_cn:15:"UTF-8":""}}<br>
 9</body>
10</html>



]]>
鎶撳彇鑵捐澶╂皵棰勬姤鐨勭被http://www.shnenglu.com/ispfcn/archive/2007/08/27/30940.html緙栫▼涔嬮亾緙栫▼涔嬮亾Mon, 27 Aug 2007 08:37:00 GMThttp://www.shnenglu.com/ispfcn/archive/2007/08/27/30940.htmlhttp://www.shnenglu.com/ispfcn/comments/30940.htmlhttp://www.shnenglu.com/ispfcn/archive/2007/08/27/30940.html#Feedback2http://www.shnenglu.com/ispfcn/comments/commentRss/30940.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/30940.html闃呰鍏ㄦ枃

]]>
鍏充簬linux涓婄殑綰跨▼璧勬簮http://www.shnenglu.com/ispfcn/archive/2006/12/29/16991.html緙栫▼涔嬮亾緙栫▼涔嬮亾Fri, 29 Dec 2006 09:57:00 GMThttp://www.shnenglu.com/ispfcn/archive/2006/12/29/16991.htmlhttp://www.shnenglu.com/ispfcn/comments/16991.htmlhttp://www.shnenglu.com/ispfcn/archive/2006/12/29/16991.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/16991.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/16991.html鍓嶅嚑澶╁啓涓綰跨▼鐨勭▼搴忥紝涓昏鏄粠鏂囦歡璇繪暟鎹紝鐒跺悗鍒嗙嚎紼嬪彂閫侊紝鏈潵鎯沖湪綰跨▼閲岀敤pthread_detach()鍒嗙綰跨▼錛屼絾鏄垜鎯寵綰跨▼鎵ц緇撴灉錛屾墍浠ヤ笉寰椾笉鏀懼純pthread_detach()銆傚湪綰跨▼緇撴潫鐨勬椂鍊欑敤pthread_exit()錛屽彂瀹屾枃浠剁敤ptrehad_join()鍙栬繑鍥炲箋傜粨鏋滅珶鐒跺彂鐜幫細(xì)璧峰埌300澶氫釜綰跨▼鐨勬椂鍊欏氨鍑虹幇can't allocate memory錛岃繖鍙儊闂鋒鎴戜簡(jiǎn)錛屾壘浜?jiǎn)鍗婂ぉ璧勬枡锛屽悗鏉ョ湅鍒颁竴綃囨枃绔狅紝鏄linux涓婄殑pthread_exit()涓嶅洖鏀剁嚎紼嬭祫婧愶紝鍙兘鐢╬thread_join()鏉ュ洖鏀訛紝閮侀椃鍟娾︹︽渶鍚庡彧寰楀湪璧峰埌涓瀹氭暟閲忕殑綰跨▼鍚庡洖鏀朵竴閬嶈祫婧愩傚張瀛︿簡(jiǎn)涓鎷涗簡(jiǎn)鈥︹?/p>

]]>
VC++寮鍙態(tài)HO鎻掍歡鈥斺斿畾鍒朵綘鐨勬祻瑙堝櫒http://www.shnenglu.com/ispfcn/archive/2006/12/11/16274.html緙栫▼涔嬮亾緙栫▼涔嬮亾Mon, 11 Dec 2006 07:49:00 GMThttp://www.shnenglu.com/ispfcn/archive/2006/12/11/16274.htmlhttp://www.shnenglu.com/ispfcn/comments/16274.htmlhttp://www.shnenglu.com/ispfcn/archive/2006/12/11/16274.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/16274.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/16274.html闃呰鍏ㄦ枃

]]>
綆鏄?Python 鏁欑▼http://www.shnenglu.com/ispfcn/archive/2006/11/13/15125.html緙栫▼涔嬮亾緙栫▼涔嬮亾Mon, 13 Nov 2006 06:33:00 GMThttp://www.shnenglu.com/ispfcn/archive/2006/11/13/15125.htmlhttp://www.shnenglu.com/ispfcn/comments/15125.htmlhttp://www.shnenglu.com/ispfcn/archive/2006/11/13/15125.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/15125.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/15125.htmlhttp://www.woodpecker.org.cn:9081/doc/abyteofpython_cn/chinese/index.html

]]>
綆鏄巟86姹囩紪璇█鏁欑▼錛堜竷錛?/title><link>http://www.shnenglu.com/ispfcn/archive/2006/11/06/14720.html</link><dc:creator>緙栫▼涔嬮亾</dc:creator><author>緙栫▼涔嬮亾</author><pubDate>Mon, 06 Nov 2006 02:39:00 GMT</pubDate><guid>http://www.shnenglu.com/ispfcn/archive/2006/11/06/14720.html</guid><wfw:comment>http://www.shnenglu.com/ispfcn/comments/14720.html</wfw:comment><comments>http://www.shnenglu.com/ispfcn/archive/2006/11/06/14720.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ispfcn/comments/commentRss/14720.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ispfcn/services/trackbacks/14720.html</trackback:ping><description><![CDATA[鍘熷垱錛氬徃寰掑濺鍗?<br /><br /><h3>5.0 緙栬瘧浼樺寲姒傝堪</h3><p>浼樺寲鏄竴浠墮潪甯擱噸瑕佺殑浜嬫儏銆備綔涓轟竴涓▼搴忚璁¤咃紝浣犺偗瀹氬笇鏈涜嚜宸辯殑紼嬪簭鏃㈠皬鍙堝揩銆侱OS鏃朵唬鐨勮澶氫功涓兘鎻愬埌錛屸滄煇鏌愮紪璇戝櫒鑳藉鐢熸垚闈炲父绱у噾鐨勪唬鐮佲濓紝鎹㈣█涔嬶紝緙栬瘧鍣ㄤ細(xì)涓轟綘鎶婁唬鐮佸敖鍙兘鍦扮緝鍑忥紝濡傛灉浣犺兘澶熸紜湴浣跨敤瀹冩彁渚涚殑鍔熻兘鐨勮瘽銆傜洰鍓嶏紝Intel x86浣撶郴涓婃祦琛岀殑C/C++緙栬瘧鍣紝鍖呮嫭Intel C/C++ Compiler, GNU C/C++ Compiler錛屼互鍙?qiáng)鏈鏂扮殑Microsoft鍜孊orland緙栬瘧鍣紝閮借兘澶熸彁渚涢潪甯哥揣鍑戠殑浠g爜銆傛紜湴浣跨敤榪欎簺緙栬瘧鍣紝鍒欏彲浠ュ緱鍒版ц兘瓚沖濂界殑浠g爜銆?/p><p>浣嗘槸錛屾満鍣ㄧ洰鍓嶈繕?shù)笉鑳藉儚錆h閭f牱鍋氬瘜浜庡垱閫犳х殑浜嬫儏銆傚洜鑰岋紝鏈変簺鏃跺欐垜浠彲鑳戒細(xì)涓嶅緱涓嶆墜宸ユ潵鍋氫竴浜涗簨鎯呫?/p><p>浣跨敤姹囩紪璇█浼樺寲浠g爜鏄竴浠跺洶闅撅紝鑰屼笖鎶宸фу緢寮虹殑宸ヤ綔銆傚緢澶氱紪璇戝櫒鑳藉鐢熸垚涓哄鐞嗗櫒榪涜榪囩壒孌婁紭鍖栧鐞嗙殑浠g爜錛屼竴鏃﹁繘琛屼慨鏀癸紝榪欎簺鐗規(guī)畩浼樺寲鍙兘灝變細(xì)琚牬鍧忚屽け鏁堛傚洜姝わ紝鍦ㄤ綘鍐沖畾浣跨敤鑷繁鐨勬眹緙栦唬鐮佷箣鍓嶏紝涓瀹氳嫻嬭瘯涓涓嬶紝鍒板簳鏄紪璇戝櫒鐢熸垚鐨勯偅孌典唬鐮佹洿濂斤紝榪樻槸浣犵殑鏇村ソ銆?/p><p>鏈珷涓皢璁ㄨ涓浜涚紪璇戝櫒鍦ㄦ煇浜涙椂鍊欎細(xì)鍋氱殑浜嬫儏(浠庢煇縐嶆剰涔変笂璇達(dá)紝鏈珷鍐呭鏇村儚鏄綆楁満涓撲笟鐨勫熀紜璇句腑銆婄紪璇戠▼搴忚璁″師鐞嗐嬨併婅綆楁満緇勬垚鍘熺悊銆嬨併婅綆楁満浣撶郴緇撴瀯銆嬭紼嬩腑鐨勭浉鍏沖唴瀹?銆傛湰绔犵殑璁稿鍐呭鍜屾眹緙栬璦紼嬪簭璁捐鏈韓鍏崇郴騫朵笉鏄緢绱у瘑錛屽畠浠鏁版槸鍦ㄤ負(fù)浣跨敤姹囩紪璇█榪涜浼樺寲鍋氬噯澶囥傜紪璇戝櫒紜疄鍋氳繖浜涗紭鍖栵紝浣嗗畠騫朵笉鎬繪槸榪欎箞鍋氾紱姝ゅ錛屽氨緙栬瘧鍣ㄧ殑璁捐鏈川鏉ヨ錛屽畠紜疄娌℃湁涔夊姟榪欎箞鍋氣斺旂紪璇戝櫒鍋氱殑鏄瓑涔夊彉鎹紝鑰屼笉鏄瓑鏁堝彉鎹€傝冭檻涓嬮潰鐨勪唬鐮侊細(xì)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#008000">// 紼嬪簭孌?</font><font color="#0000ff"><br />int</font> gaussianSum(){<br />聽(tīng) <font color="#0000ff">int</font> i, j=0; <p>聽(tīng) <font color="#0000ff">for</font>(i=0; i<100; i++) j+=i;</p><p>聽(tīng) <font color="#0000ff">return</font> j;<br />}</p></td></tr></tbody></table><p>濂界殑錛岄鍏堬紝緇濆ぇ澶氭暟緙栬瘧鍣ㄦ亹鎬曚笉浼?xì)鑷綔涓诲紶鍦版妸瀹冣滅鏀光濅負(fù)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#008000">// 紼嬪簭孌?(鏀硅繘1)<br /></font><font color="#0000ff">int</font> gaussianSum(){<br />聽(tīng) <font color="#0000ff">int</font> i, j=0; <p>聽(tīng) <font color="#0000ff">for</font>(i=1; i<100; i++) j+=i;</p><p>聽(tīng) <font color="#0000ff">return</font> j;<br />}</p></td></tr></tbody></table><p>澶氭暟錛堜絾紜疄涓嶆槸鍏ㄩ儴錛夌紪璇戝櫒涔熶笉浼?xì)鎶婂畠鏀逛?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><p dir="ltr"><font color="#008000">// 紼嬪簭孌?(鏀硅繘2)<br /></font><font color="#0000ff">inline int</font> gaussianSum(){<br />聽(tīng) <font color="#0000ff">return</font> 5050;<br />}</p></td></tr></tbody></table><p dir="ltr">榪欎袱涓慨鏀圭増鏈兘涓嶅悓浜庡師鍏堢▼搴忕殑璇箟銆傞鍏堟垜浠湅鍒幫紝璁﹊浠?寮濮嬫槸娌℃湁蹇呰鐨勶紝鍥犱負(fù)j+=i鏃訛紝i=0涓嶄細(xì)鍋氫換浣曟湁鐢ㄧ殑浜嬫儏錛涚劧鍚庢槸錛屽疄闄呬笂娌℃湁蹇呰姣忎竴嬈¢兘璁$畻1+...+100鐨勫拰鈥斺斿畠鍙互琚鍏堣綆楋紝騫跺湪闇瑕佺殑鏃跺欒繑鍥炪?/p><p dir="ltr">榪欎釜渚嬪瓙涔熻騫朵笉鎭板綋(浼拌娌′漢浼?xì)鍐欏嚭鏈鍒濈増鏈偅鏍風(fēng)殑浠g爜)錛屼絾榪欑瀹炶返鍦ㄧ▼搴忚璁′腑紜疄鍙兘鍑虹幇銆傛垜浠妸鏀硅繘2縐頒負(fù)<b>緙栬瘧鏃惰〃杈懼紡棰勫厛璁$畻</b>錛岃屾妸鏀硅繘1鎴愪負(fù)<b>寰幆寮哄害鍓婂噺</b>銆?/p><p dir="ltr">鐒惰岋紝涓浜涙柊鐨勭紪璇戝櫒鐨勭‘浼?xì)杩涜杩欎袱绉嶄紭鍖栥備笉榪囧埆鎱岋紝鐪嬬湅涓嬮潰鐨勪唬鐮侊細(xì)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#008000">// 紼嬪簭孌?</font><font color="#0000ff"><br />int</font> GetFactorial(<font color="#0000ff">int</font> k){<br />聽(tīng) <font color="#0000ff">int</font> i, j=1; <p>聽(tīng) <font color="#0000ff">if</font>((k<0) || (k>=10)) <font color="#0000ff">return</font> -1;</p><p>聽(tīng) <font color="#0000ff">if</font>((k<=1)) <font color="#0000ff">return</font> 1</p><p>聽(tīng) <font color="#0000ff">for</font>(i=1; i<k; i++) j*=i;</p><p>聽(tīng) <font color="#0000ff">return</font> j;<br />}</p></td></tr></tbody></table><p>紼嬪簭閲囩敤鐨勬槸涓涓椂闂村鏉傚害涓篛(n)鐨勭畻娉曪紝涓嶈繃錛屾垜浠彲浠ユ妸浠栬交鏄撳湴鏀逛負(fù)O(1)鐨勭畻娉曪細(xì)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#008000">// 紼嬪簭孌? (闈炶鑼冩敼榪?</font><font color="#0000ff"><br />int</font> GetFactorial(<font color="#0000ff">int</font> k){<br />聽(tīng) <font color="#0000ff">int</font> i, j=1; <p>聽(tīng) <font color="#0000ff">static const int</font> FractorialTable[]={1, 1, 2, 6, 24,<br />聽(tīng)聽(tīng)聽(tīng) 120, 720, 5040, 40320, 362880, 3628800};</p><p>聽(tīng) <font color="#0000ff">if</font>((k<0) || (k>=10)) <font color="#0000ff">return</font> -1;</p><p>聽(tīng) <font color="#0000ff">return</font> FractorialTable[k];<br />}</p></td></tr></tbody></table><p>榪欐槸涓涓吀鍨嬬殑浠ョ┖闂存崲鏃墮棿鐨勫仛娉曘傞氱敤鐨勭紪璇戝櫒涓嶄細(xì)榪欎箞鍋氣斺斿洜涓哄畠娌℃湁鍔炴硶鍦ㄧ紪璇戞椂紜畾浣犳槸涓嶆槸瑕佽繖涔堟敼銆傚彲浠ヨ錛屽鏋滅紪璇戝櫒鐪熺殑榪欐牱鍋氱殑璇濓紝閭e皢鏄竴浠跺彲鎬曠殑浜嬫儏錛屽洜涓洪偅鏃跺欎綘灝嗗緢闅劇煡閬撶紪璇戝櫒鐢熸垚鐨勪唬鐮佸拰鑷繁鎯崇殑鍒板簳鏈夊澶х殑宸窛銆?/p><p>褰撶劧錛岃繖綾諱紭鍖栬秴鍑轟簡(jiǎn)鏈枃鐨勮寖鍥粹斺斿熀鏈笂錛屾垜鎶婂畠浠綊鍏モ滅畻娉曚紭鍖栤濓紝鑰屼笉鏄滅▼搴忎紭鍖栤濅竴綾匯傜被浼肩殑浼樺寲榪囩▼闇瑕佺▼搴忚璁′漢鍛樺浜庣▼搴忛昏緫闈炲父娣卞叆鍦頒簡(jiǎn)瑙e拰鍏ㄧ洏鐨勬帉鎻★紝鍚屾椂錛屼篃闇瑕佹湁涓板瘜鐨勭畻娉曠煡璇嗐?/p><p>鑷劧錛屽鏋滀綘甯屾湜鑷繁鐨勭▼搴忔ц兘鏈夊ぇ騫呭害鐨勬彁鍗囷紝閭d箞棣栧厛搴旇鍋氱殑鏄畻娉曚紭鍖栥備緥濡傦紝鎶婁竴涓?i>O</i>(n<sup>2</sup>)鐨勭畻娉曟浛鎹負(fù)涓涓?i>O</i>(n)鐨勭畻娉曪紝鍒欑▼搴忕殑鎬ц兘鎻愬崌灝嗚繙榪滆秴榪囧浜庝釜鍒鍙ョ殑淇敼銆傛澶栵紝涓涓凡緇忔敼鍐欎負(fù)姹囩紪璇█鐨勭▼搴忥紝濡傛灉瑕佸啀鍦ㄧ畻娉曚笂浣滃ぇ騫呭害鐨勪慨鏀癸紝鍏跺伐浣滈噺灝嗗拰閲嶅啓鐩稿綋銆傚洜姝わ紝鍦ㄥ喅瀹氫嬌鐢ㄦ眹緙栬璦榪涜浼樺寲涔嬪墠錛屽繀欏婚鍏堣冭檻綆楁硶浼樺寲銆備絾鍋囧宸茬粡鏄渶浼樼殑綆楁硶錛岀▼搴忚繍琛岄熷害榪樻槸涓嶅蹇庝箞鍔炲憿錛?/p><p>濂界殑錛岀幇鍦紝鍋囧畾浣犲凡緇忎嬌鐢ㄤ簡(jiǎn)宸茬煡鏈濂界殑綆楁硶錛屽喅瀹氭妸瀹冧氦緇欑紪璇戝櫒錛岃鎴戜滑鏉ョ湅鐪嬬紪璇戝櫒浼?xì)湄?fù)鎴戜滑鍋氫粈涔堬紝浠ュ強(qiáng)鎴戜滑鏄惁鏈夋満浼?xì)鎻掓墜姝や簨锛屽仛寰楁洿濂姐?/p><h3 dir="ltr">5.1 寰幆浼樺寲錛氬己搴﹀墛鍑忓拰浠g爜澶栨彁</h3><p dir="ltr">姣旇緝鏂扮殑緙栬瘧鍣ㄥ湪緙栬瘧鏃朵細(xì)鑷姩鎶婁笅闈㈢殑浠g爜錛?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#0000ff">for</font>(i=0; i<10; i++){<br />聽(tīng) j = i;<br />聽(tīng) k = j + i;<br />}</td></tr></tbody></table><p dir="ltr">鑷沖皯鍙樻崲涓?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#0000ff">for</font>(i=0; i<10; i++);<br />j=i; k=j+i;</td></tr></tbody></table><p dir="ltr">鐢氳嚦</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%">j=i=10; k=20;</td></tr></tbody></table><p dir="ltr">褰撶劧錛岀湡姝g殑緙栬瘧鍣ㄥ疄闄呬笂鏄湪涓棿浠g爜灞傛浣滆繖浠朵簨鎯呫?/p><p dir="ltr"><b><font color="#008000">鍘熺悊</font></b>濡傛灉鏁版嵁欏圭殑鏌愪釜涓棿鍊?紼嬪簭鎵ц榪囩▼涓殑璁$畻緇撴灉)鍦ㄤ嬌鐢ㄤ箣鍓嶈鍙︿竴涓棿鍊艱鐩栵紝鍒欑浉鍏寵綆椾笉蹇呰繘琛屻?/p><p dir="ltr">涔熻鏈変漢浼?xì)闂Q岀紪璇戝櫒涓嶆槸閮界粰鍜變滑鍋氫簡(jiǎn)鍚楋紝綆″畠鍋氫粈涔堬紵娉ㄦ剰錛岃繖閲岃鐨勫彧鏄紪璇戠郴緇熶腑浼樺寲閮ㄥ垎鐨勫熀鏈璁°備笉浠呭湪浠庢簮浠g爜鍒頒腑闂翠唬鐮佺殑榪囩▼涓瓨鍦ㄤ紭鍖栭棶棰橈紝鑰屼笖緙栬瘧鍣ㄧ敓鎴愮殑鏈緇堢殑鏈哄櫒璇█(姹囩紪)浠g爜鍚屾牱瀛樺湪綾諱技鐨勯棶棰樸傜洰鍓嶏紝鍑犱箮鎵鏈夌殑緙栬瘧鍣ㄥ湪鏈緇堢敓鎴愪唬鐮佺殑榪囩▼涓兘鏈夋垨澶氭垨灝戠殑鐟曠柕錛岃繖浜涚憰鐤電洰鍓?font color="#ff0000">鍙兘</font>渚濋潬鎵嬪伐淇敼浠g爜鏉ヨВ鍐熾?/p><h3 dir="ltr">5.2 灞閮ㄤ紭鍖栵細(xì)琛ㄨ揪寮忛璁$畻鍜屽瓙琛ㄨ揪寮忔彁鍙?/h3><p dir="ltr">琛ㄨ揪寮忛鍏堣綆楅潪甯哥畝鍗曪紝灝辨槸鍦ㄧ紪璇戞椂灝藉彲鑳藉湴璁$畻紼嬪簭涓渶瑕佽綆楃殑涓滆タ銆備緥濡傦紝浣犲彲浠ユ涓嶇姽璞湴鍐欏嚭涓嬮潰鐨勪唬鐮侊細(xì)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#0000ff">const unsigned long</font> nGiga = 1024L * 1024L * 1024L;</td></tr></tbody></table><p dir="ltr">鑰屼笉蹇呮媴蹇?jī)绋嬪簭姣弸啤鎵ц杩欎釜璇彞鏃朵綔涓ら亶涔樻硶锛屽洜湄?fù)緙栬瘧鍣ㄤ細(xì)鑷姩鍦版妸瀹冩敼涓?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#0000ff">const unsigned long</font> nGiga = 1073741824L;</td></tr></tbody></table><p dir="ltr">鑰屼笉鏄偦涔庝箮鍦拌璁$畻鏈哄湪鎵ц鍒拌繖涓垵濮嬪寲璧嬪艱鍙ョ殑鏃跺欐墠璁$畻銆傚綋鐒?dòng)灱屽鏋滀綘鎰挎剰鍦ㄤ笂闈㈢殑浠g爜涓庌Z笂涓浜涘彉閲忕殑璇濓紝緙栬瘧鍣ㄥ悓鏍蜂細(xì)鎶婂父鏁伴儴鍒嗗厛琛岃綆楋紝騫舵嬁鍒扮粨鏋溿?/p><p dir="ltr">琛ㄨ揪寮忛璁$畻騫朵笉浼?xì)璁┙E嬪簭鎬ц兘鏈夐璺冩х殑鎻愬崌錛屼絾紜疄鍑忓皯浜?jiǎn)杩愯鏃剁殑璁〗帡寮哄害銆傞櫎姝や箣澶栵紝緇濆ぇ澶氭暟緙栬瘧鍣ㄤ細(xì)鎶婁笅闈㈢殑浠g爜錛?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#008000">// [鍋囪姝ゆ椂b, c, d, e, f, g, h閮芥湁涓涓‘瀹氱殑闈為浂鏁存暟鍊鹼紝騫朵笖錛?br />// a[]涓轟竴涓寘鎷?涓暣鏁板厓绱犵殑鏁扮粍錛屽叾涓嬫爣涓?鍒?]</font><p>a[0] = b*c;<br />a[1] = b+c;<br />a[2] = d*e;<br />a[3] = b*d + c*d;<br />a[4] = b*d*e + c*d*e;聽(tīng)</p></td></tr></tbody></table><p dir="ltr">浼樺寲涓?鍐嶆寮鴻皟錛岀紪璇戝櫒瀹為檯涓婃槸鍦ㄤ腑闂翠唬鐮佺殑灞傛錛岃屼笉鏄簮浠g爜灞傛鍋氳繖浠朵簨鎯咃紒)錛?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#008000">// [鍋囪姝ゆ椂b, c, d, e, f, g, h閮芥湁涓涓‘瀹氱殑闈為浂鏁存暟鍊鹼紝騫朵笖錛?br />// a[]涓轟竴涓寘鎷?涓暣鏁板厓绱犵殑鏁扮粍錛屽叾涓嬫爣涓?鍒?]</font><p>a[0] = b*c;<br />a[1] = b+c;<br />a[2] = d*e;<br />a[3] = a[1] * d;<br />a[4] = a[3] * e;</p></td></tr></tbody></table><p dir="ltr">鏇磋繘涓姝ワ紝鍦ㄥ疄闄呬唬鐮佺敓鎴愯繃紼嬩腑錛屼竴浜涚紪璇戝櫒榪樹(shù)細(xì)瀵逛笂榪拌鍙ョ殑嬈″簭榪涜璋冩暣錛屼互浣垮叾榪愯鏁堢巼鏇撮珮銆備緥濡傦紝灝嗚鍙ヨ皟鏁翠負(fù)涓嬮潰鐨勬搴忥細(xì)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#008000">// [鍋囪姝ゆ椂b, c, d, e, f, g, h閮芥湁涓涓‘瀹氱殑闈為浂鏁存暟鍊鹼紝騫朵笖錛?br />// a[]涓轟竴涓寘鎷?涓暣鏁板厓绱犵殑鏁扮粍錛屽叾涓嬫爣涓?鍒?]</font><p>a[0] = b*c;<br />a[1] = b+c;<br />a[3] = a[1] * d;<br />a[4] = a[3] * e;<br />a[2] = d*e;</p></td></tr></tbody></table><p dir="ltr">鍦ㄦ煇浜涗綋緋葷粨鏋勪腑錛屽垰鍒氳綆楀畬鐨刟[1]鍙互鏀懼埌瀵勫瓨鍣ㄤ腑錛屼互鎻愰珮瀹為檯鐨勮綆楁ц兘銆備笂榪?涓綆椾換鍔′箣闂達(dá)紝鍙湁1, 3, 4涓変釜璁$畻浠誨姟蹇呴』涓茶鍦版墽琛岋紝鍥犳錛屽湪鏂扮殑澶勭悊鍣ㄤ笂錛岃繖鏍峰仛鐢氳嚦鑳藉鎻愰珮紼嬪簭鐨勫茍琛屽害錛屼粠鑰屼嬌紼嬪簭鏁堢巼鍙樺緱鏇撮珮銆?/p><h3 dir="ltr">5.3 鍏ㄥ眬瀵勫瓨鍣ㄤ紭鍖?/h3><p dir="ltr"><i>[<font color="#ff0000">寰呬慨璁㈠唴瀹?/font>] 鏈珷涓紝浠庤繖涓鑺傚紑濮嬬殑鎵鏈変紭鍖栭兘鏄湪寰灞傞潰涓婄殑浼樺寲浜?jiǎn)銆傛崲璦涔嬶紝榪欎簺浼樺寲鏄笉鑳戒嬌鐢ㄩ珮綰ц璦涓殑瀵瑰簲璁炬柦榪涜瑙i噴鐨勩傝繖涓閮ㄥ垎鍐呭灝嗚繘琛岃緝澶ц妯$殑淇銆?/i></p><p dir="ltr">閫氬父錛屾綾諱紭鍖栨槸鐢辯紪璇戝櫒鑷姩瀹屾垚鐨勩傛垜涓漢騫朵笉鎺ㄨ崘鐪熺殑鐢變漢鏉ュ畬鎴愯繖浜涘伐浣溾斺旇繖浜涘伐浣滃鍗婃槸鏋嚗鑰岄噸澶嶆х殑錛岀紪璇戝櫒閫氬父浼?xì)姣斾汉鍋氬緱鏇村?娌¤鐨勶紝鑲畾涔熸洿蹇?銆備絾璇濊鍥炴潵錛屼嬌鐢ㄦ眹緙栬璦鐨勭▼搴忚璁′漢鍛樻湁璐d換浜?jiǎn)瑙q欎簺鍐呭錛屽洜涓哄彧鏈夎繖鏍鋒墠鑳芥洿濂藉湴椹鵑┉澶勭悊鍣ㄣ?/p><p dir="ltr">鍦ㄥ墠闈㈢殑鍑犵珷涓垜宸茬粡鎻愬埌榪囷紝瀵勫瓨鍣ㄧ殑閫熷害瑕佹瘮鍐呭瓨蹇傚洜姝わ紝鍦ㄤ嬌鐢ㄥ瘎瀛樺櫒鏂歸潰錛岀紪璇戝櫒涓鑸細(xì)鍋氫竴縐嶇О涓哄叏灞瀵勫瓨鍣ㄤ紭鍖栫殑浼樺寲銆?/p><p dir="ltr">渚嬪錛屽湪鎴戜滑鐨勭▼搴忎腑浣跨敤浜?涓彉閲忥細(xì)i, j, k, l銆傚畠浠兘浣滀負(fù)寰幆鍙橀噺浣跨敤錛?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#0000ff">for</font>(i=0; i<1000; i++){<br />聽(tīng) <font color="#0000ff">for</font>(j=0; j<1000; j++){<br />聽(tīng)聽(tīng)聽(tīng) <font color="#0000ff">for</font>(k=0; k<1000; k++){<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#0000ff">for</font>(l=0; l<1000; l++)<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) do_something(i, j, k, l);<br />聽(tīng)聽(tīng)聽(tīng) }<br />聽(tīng) }<br />}</td></tr></tbody></table><p dir="ltr">榪欐紼嬪簭鐨勪紭鍖栧氨涓嶉偅涔堢畝鍗曚簡(jiǎn)銆傛樉鐒?dòng)灱屾寜鐓ч氬父鐨勫帇鏍堟柟娉曪紝i, j, k, l搴旇鎸夌収鏌愪釜欏哄簭琚帇榪涘爢鏍堬紝鐒跺悗璋冪敤do_something()錛岀劧鍚庡嚱鏁板仛浜?jiǎn)涓浜涗簨鎯呬箣鍚庤繑鍥炪傞棶棰樺湪浜庯紝鏃犺濡備綍鍘嬫爤錛岃繖浜涗笢瑗垮ぇ姒傞兘寰楄繘鍐呭瓨(涓嶅彲鍚﹁鏌愪簺鏈哄櫒鍙互鐢–PU鐨凜ache鍋氳繖浠朵簨鎯咃紝浣咰ache鏄啓閫氬紡鐨勫拰鍥炲啓寮忕殑鍙堜細(xì)閫犳垚涓浜涙ц兘涓婄殑宸紓)銆?/p><p dir="ltr">鑱槑鐨勮鑰呴┈涓婂氨浼?xì)鎸囧嚭锛屾垜浠笉鏄彲浠ュ湪瀹氫箟do_something()鐨勬椂鍊欏姞涓奿nline淇グ絎︼紝璁╁畠鍦ㄦ湰鍦板睍寮鍚楋紵娌¢敊錛屾湰鍦板睍寮浠ュ鍔犱唬鐮侀噺涓轟唬浠鋒崲鍙栨ц兘錛屼絾榪欏彧鏄棶棰樼殑涓鍗娿傜紪璇戝櫒灝界瀹屾垚浜?jiǎn)鏈湴灞曞紑錛屼絾瀹冧粛鐒墮渶瑕佸仛璁稿棰濆鐨勫伐浣溿傚洜涓哄瘎瀛樺櫒鍙湁閭d箞鏈夐檺鐨勫嚑涓紝鑰屾垜浠嵈鏈夎繖涔堝鐨勫驚鐜彉閲忋?/p><p dir="ltr">鎶婂洓涓彉閲忔寜鐓у畠浠湪寰幆涓嬌鐢ㄧ殑棰戠巼鎺掑簭錛屽茍鍐沖畾鍦╠o_something()鍧椾腑鐨勪紭鍏堥『搴?鏀懼叆瀵勫瓨鍣ㄤ腑鐨勪紭鍏堥『搴?鏄竴涓В鍐蟲(chóng)柟妗堛傚緢鏄庢樉錛屾垜浠彲浠ユ寜鐓, k, j, i鐨勯『搴?浠庨珮鍒頒綆錛屽洜涓簂灝嗚榪涜1000*1000*1000*1000嬈¤繍綆楋紒)鏉ユ帓鍒楋紝浣嗗湪瀹為檯鐨勯棶棰樹(shù)腑錛屼簨鎯呭線寰娌℃湁榪欎箞綆鍗曪紝鍥犱負(fù)浣犱笉鐭ラ亾do_something()涓仛鐨勫埌搴曟槸浠涔堛傝屼笖錛屽嚟浠涔堝氨浠or(l=0; l<1000; l++)浣滀負(fù)浼樺寲鐨勫垎鐣岀偣鍛紵濡傛灉do_something()涓繕鏈夊驚鐜庝箞鍔烇紵</p><p dir="ltr">濡傛澶嶆潅鐨勮綆楅棶棰樹(shù)氦緇欒綆楁満鏉ュ仛閫氬父浼?xì)鏈夋瘮杈冩弧鎰忕殑缁撴灉銆備竴鑸鏉ワ紝緙栬瘧鍣ㄨ兘澶熷紼嬪簭涓彉閲忕殑浣跨敤榪涜鏇村叏闈㈠湴浼拌錛屽洜姝わ紝瀹冨垎閰嶅瘎瀛樺櫒鐨勭粨鏋滄湁鏃惰櫧鐒惰浜鴻垂瑙o紝浣嗗嵈鏄渶浼樼殑(鍥犱負(fù)璁$畻鏈鴻兘澶熻繘琛屽ぇ閲忕殑閲嶅璁$畻錛屽茍鎵懼埌鏈濂界殑鏂規(guī)硶錛涜屼漢鍋氳繖浠朵簨鐩稿鏉ヨ姣旇緝鍥伴毦)銆?/p><p dir="ltr">緙栬瘧鍣ㄥ湪璁稿鏃跺欒兘澶熶綔鍑虹浉褰撹浜烘弧鎰忕殑緇撴灉銆傝冭檻浠ヤ笅鐨勪唬鐮侊細(xì)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#0000ff">int</font> a=0; <p><font color="#0000ff">for</font>(<font color="#0000ff">int</font> i=1; i<10; i++)<br />聽(tīng) <font color="#0000ff">for</font>(<font color="#0000ff">int</font> j=1; j<100; j++){<br />聽(tīng)聽(tīng)聽(tīng) a += (i*j);<br />聽(tīng) }</p></td></tr></tbody></table><p dir="ltr">璁╂垜浠妸瀹冨彉?shù)负鏌惪U嶅艦寮忕殑涓棿浠g爜錛?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%">00: 0 -> a<br />01: 1 -> i<br />02: 1 -> j<br />03: i*j -> t<br />04: a+t -> a<br />05: j+1 -> j<br />06: <font color="#0000ff">evaluate</font> j < 100<br />07: <font color="#ff0000">TRUE</font>? <font color="#0000ff">goto</font> 03<br />08: i+1 -> i<br />09: <font color="#0000ff">evaluate</font> i < 10<br />10: <font color="#ff0000">TRUE</font>? <font color="#0000ff">goto</font> 02<br />11: [緇х畫(huà)鎵ц紼嬪簭鐨勫叾浣欓儴鍒哴</td></tr></tbody></table><p dir="ltr">紼嬪簭涓墽琛屽己搴︽渶澶х殑鏃犵枒鏄?3鍒?5榪欎竴孌碉紝娑夊強(qiáng)鐨勯渶瑕佸啓鍏ョ殑鍙橀噺鍖呮嫭a, j錛涢渶瑕佽鍑虹殑鍙橀噺鏄痠銆備笉榪囷紝鏈緇堢殑緙栬瘧緇撴灉澶уぇ鍑轟箮鎴戜滑鐨勬剰鏂欍備笅闈㈡槸鏌愮浼樺寲妯″紡涓媀isual C++ 6.0緙栬瘧鍣ㄧ敓鎴愮殑浠g爜(鎴戝仛浜?jiǎn)涓浜涗慨鏀?錛?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%">xor eax, eax聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; a=0(eax: a)</font><br />mov edx, 1聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; i=1(edx: i)</font><br />push esi聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 淇濆瓨esi(鏈鍚庤鎭㈠錛宔si浣滀負(fù)浠f浛j鐨勯偅涓驚鐜彉閲?</font><br />nexti:<br />mov ecx, edx聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; [t=i]</font><br />mov esi, 999聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; esi=999: 姝ゅ淇敼浜?jiǎn)鍘熃E嬪簭鐨勮涔夛紝浣嗕粛涓?000嬈″驚鐜?/font><br />nextj:<br />add eax, ecx聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; [a+=t]</font><br />add ecx, edx聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; [t+=i]</font><br />dec esi聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; j--</font><br />jne SHORT nextj聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; jne 絳変環(huán)浜?jnz. [濡傛灉榪橀渶瑕侊紝鍒欏啀嬈″驚鐜痌</font><br />inc edx聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; i++</font><br />cmp edx, 10聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) 聽(tīng)聽(tīng) <font color="#008000">; i涓?0姣旇緝</font><br />jl SHORT nexti聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; i < 10, 鍐嶆寰?/font>鐜?br />pop esi聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 鎭㈠esi</font></td></tr></tbody></table><p dir="ltr">榪欐浠g爜鍙兘鏈変簺浠や漢璐硅В銆備富瑕佹槸鍥犱負(fù)瀹冧笉浠呬嬌鐢ㄤ簡(jiǎn)澶ч噺瀵勫瓨鍣紝鑰屼笖榪樺寘鎷簡(jiǎn)5.2鑺備腑鏇炬彁鍒扮殑瀛愯〃杈懼紡鎻愬彇鎶鏈傝〃闈笂鐪嬶紝澶氬紩鍏ョ殑閭d釜鍙橀噺(t)澧炲姞浜?jiǎn)璁〗帡鏃堕椷_(dá)紝浣嗚娉ㄦ剰錛岃繖涓猼涓嶄粎涓嶄細(xì)闄嶄綆紼嬪簭鐨勬墽琛屾晥鐜囷紝鐩稿弽榪樹(shù)細(xì)璁╁畠鍙樺緱鏇村揩錛佸洜涓哄悓鏍峰緱鍒頒簡(jiǎn)璁$畻緇撴灉(鏈川涓婏紝i*j鍗蟲(chóng)槸絎琷嬈$瘡鍔爄鐨勫?錛屼絾榪欎釜緇撴灉涓嶄粎鐢ㄥ埌浜?jiǎn)涓妺啤杩惤帡鐨劸l撴灉錛岃屼笖榪樼渷鍘諱簡(jiǎn)涔樻硶(寰堟樉鐒惰綆楁満璁$畻鍔犳硶瑕佹瘮璁$畻涔樻硶蹇?銆?/p><p dir="ltr">榪欓噷鍙兘浼?xì)鏈変汉闂Q屼負(fù)浠涔堣浠?99寰幆鍒?錛岃屼笉鏄寜鐓х▼搴忎腑鍐欑殑閭f牱浠?寰幆鍒?99鍛紵榪欎釜闂鍜屾眹緙栬璦涓殑鍙栧潃鏈夊叧銆傚湪涓嬩袱鑺備腑鎴戝皢鎻愬埌榪欐柟闈㈢殑鍐呭銆?/p><h3 dir="ltr">5.4 x86浣撶郴緇撴瀯涓婄殑騫惰鏈澶у寲鍜屾寚浠ゅ皝鍖?/h3><p dir="ltr">鑰冭檻榪欐牱鐨勯棶棰橈紝鎴戝拰涓や釜鍚屼即鐜板湪鍦ㄥ北閲岋紝榪滃鏈変竴鍙d簳錛屾垜浠甫鐫涓鍙i攨錛岃韓杈規(guī)槸鏍?wèi)鏋楀Q涜韓涓婄殑楗敤姘村凡緇忓枬鍏変簡(jiǎn)錛屾澶勫厑璁哥爫鏌村拰浣跨敤鏄庣伀(褰撶劧鎴戜滑涓嶆兂寮曡搗鐏伨:)錛岄渶瑕佺儳涓閿呮按錛屽簲璇ユ庝箞鏍峰憿錛?/p><p dir="ltr">涓縐嶆柟妗堟槸錛屼笁涓漢涓璧鋒惌鐏訛紝涓璧風(fēng)爫鏌達(dá)紝涓璧鋒墦姘達(dá)紝涓璧鋒妸姘寸儳寮銆?/p><p dir="ltr">鍙︿竴縐嶆柟妗堟槸錛屼竴涓漢鎼伓錛屾鏃跺彟涓涓漢鍘葷爫鏌達(dá)紝絎笁涓漢鎵撴按錛岀劧鍚庢妸姘寸儳寮銆?/p><p dir="ltr">榪欎袱縐嶆柟妗堢敾鍑哄浘鏉ユ槸榪欐牱錛?/p><p dir="ltr" align="center"><img height="329" alt="o_7_1.gif" src="http://www.shnenglu.com/images/cppblog_com/ispfcn/1308/o_7_1.gif" width="341" border="0" /></p><p dir="ltr">浠呬粎榪欐牱寰堥毦璇存槑涓や釜鏂規(guī)瀛頒紭瀛板姡錛屽洜涓烘垜浠茍涓嶆槑紜笁涓漢涓璧鋒墦姘淬佷竴璧風(fēng)爫鏌淬佷竴璧鋒惌鐏剁殑鏁堢巼鏇撮珮錛岃繕鏄垎鍒綔鏁堢巼鏇撮珮(閫氬父鐨勬兂娉曪紝涓璧峰仛涔熻鏁堢巼浼?xì)鏇撮?銆備絾鍋囧璇達(dá)紝涓変釜浜轟竴涓彧浼?xì)鎼佊灱屼竴涓彧浼?xì)鐮嶆熯_(dá)紝涓涓彧浼?xì)鎵撴?褰撶劧鏄榪欎笁浠朵簨鎯?錛岄偅涔堬紝鏂規(guī)2鐨勬晥鐜囧氨浼?xì)鎼炰竴浜涗簡(jiǎn)銆?/p><p dir="ltr">鍦ㄧ幇瀹炵敓媧諱腑錛屾煇涓漢鎷ユ湁涓撻暱鏄瘮杈冩櫘閬嶇殑鎯呭喌錛涘湪璁捐璁$畻鏈虹‖浠剁殑鏃跺欏垯鏇存槸濡傛銆備綘涓嶅彲鑳芥寚鏈涘姞娉曞櫒涓嶅仛浠諱綍鏀瑰姩灝辮兘鍘誨仛縐諱綅鐢氳嚦鏁存暟涔樻硶錛岀劧鑰屾垜浠敞鎰忓埌錛屼覆琛屾墽琛岀殑紼嬪簭涓嶅彲鑳藉湪鍚屼竴鏃跺埢鍚屾椂鐢ㄥ埌澶勭悊鍣ㄧ殑鎵鏈夊姛鑳斤紝鍥犳錛屾垜浠?寰堣嚜鐒跺湴)浼?xì)甯屾湜鏈変竴浜涙寚浠ゅ茍琛屽湴鎵ц錛屼互鍏呭垎鍒╃敤CPU鐨勮綆楄祫婧愩?/p><p dir="ltr">CPU鎵ц涓鏉℃寚浠ょ殑榪囩▼鍩烘湰涓婂彲浠ュ垎涓轟笅闈㈠嚑涓樁孌碉細(xì)鍙栨寚浠ゃ佸彇鏁版嵁銆佽綆椼佷繚瀛樻暟鎹傚亣璁捐繖4涓樁孌靛悇闇瑕?涓椂閽熷懆鏈燂紝閭d箞錛屽彧瑕佽祫婧愬鐢紝騫朵笖4鏉℃寚浠や箣闂翠笉瀛樺湪涓茶鍏崇郴(鎹㈣█涔嬭繖浜涙寚浠ょ殑鎵ц鍏堝悗嬈″簭涓嶅獎(jiǎng)鍝嶆渶緇堢粨鏋滐紝鎴栬咃紝鏇翠弗鏍煎湴璇達(dá)紝娌℃湁浠諱綍涓鏉℃寚浠や緷璧栧叾浠栨寚浠ょ殑榪愮畻緇撴灉)鎸囦護(hù)涔熷彲浠ュ儚涓嬮潰榪欐牱鎵ц錛?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" border="1"><tbody><tr><td bordercolor="#ffffff" align="middle" width="12%" bgcolor="#000000"><font color="#ffffff">鎸囦護(hù)1</font></td><td valign="center" align="middle" width="13%" bgcolor="#ffffcc">鍙栨寚浠?/td><td valign="center" align="middle" width="13%" bgcolor="#ccffcc">鍙栨暟鎹?/td><td valign="center" align="middle" width="13%" bgcolor="#ffcccc">璁°綆?/td><td valign="center" align="middle" width="13%" bgcolor="#66ffff">瀛樻暟鎹?/td><td valign="center" align="middle" width="13%" bgcolor="#e0e0e0">銆</td><td valign="center" align="middle" width="13%" bgcolor="#e0e0e0">銆</td><td valign="center" align="middle" width="13%" bgcolor="#e0e0e0">銆</td></tr><tr><td bordercolor="#ffffff" align="middle" width="12%" bgcolor="#000000"><font color="#ffffff">鎸囦護(hù)2</font></td><td valign="center" align="middle" width="13%" bgcolor="#e0e0e0">銆</td><td valign="center" align="middle" width="13%" bgcolor="#ffffcc">鍙栨寚浠?/td><td valign="center" align="middle" width="13%" bgcolor="#ccffcc">鍙栨暟鎹?/td><td valign="center" align="middle" width="13%" bgcolor="#ffcccc">璁°綆?/td><td valign="center" align="middle" width="13%" bgcolor="#66ffff">瀛樻暟鎹?/td><td valign="center" align="middle" width="13%" bgcolor="#e0e0e0">銆</td><td valign="center" align="middle" width="13%" bgcolor="#e0e0e0">銆</td></tr><tr><td bordercolor="#ffffff" align="middle" width="12%" bgcolor="#000000"><font color="#ffffff">鎸囦護(hù)3</font></td><td valign="center" align="middle" width="13%" bgcolor="#e0e0e0">銆</td><td valign="center" align="middle" width="13%" bgcolor="#e0e0e0">銆</td><td valign="center" align="middle" width="13%" bgcolor="#ffffcc">鍙栨寚浠?/td><td valign="center" align="middle" width="13%" bgcolor="#ccffcc">鍙栨暟鎹?/td><td valign="center" align="middle" width="13%" bgcolor="#ffcccc">璁°綆?/td><td valign="center" align="middle" width="13%" bgcolor="#66ffff">瀛樻暟鎹?/td><td valign="center" align="middle" width="13%" bgcolor="#e0e0e0">銆</td></tr><tr><td bordercolor="#ffffff" align="middle" width="12%" bgcolor="#000000"><font color="#ffffff">鎸囦護(hù)4</font></td><td valign="center" align="middle" width="13%" bgcolor="#e0e0e0">銆</td><td valign="center" align="middle" width="13%" bgcolor="#e0e0e0">銆</td><td valign="center" align="middle" width="13%" bgcolor="#e0e0e0">銆</td><td valign="center" align="middle" width="13%" bgcolor="#ffffcc">鍙栨寚浠?/td><td valign="center" align="middle" width="13%" bgcolor="#ccffcc">鍙栨暟鎹?/td><td valign="center" align="middle" width="13%" bgcolor="#ffcccc">璁°綆?/td><td valign="center" align="middle" width="13%" bgcolor="#66ffff">瀛樻暟鎹?/td></tr></tbody></table><p dir="ltr">榪欐牱錛屽師鏈渶瑕?6涓椂閽熷懆鏈熸墠鑳藉瀹屾垚鐨勪換鍔″氨鍙互鍦?涓椂閽熷懆鏈熷唴瀹屾垚錛屾椂闂寸緝鐭簡(jiǎn)涓鍗婅繕澶氥傚鏋滆冭檻鐏拌壊鐨勯偅浜涙柟鏍?榪欎簺鏂規(guī)牸鍙互琚?鏉℃寚浠や互澶栫殑鍏朵粬鎸囦護(hù)浣跨敤錛屽彧瑕佹病鏈変覆琛屽叧緋繪垨鍐茬獊)錛岄偅涔堬紝濡傛鎵ц瀵逛簬鎬ц兘鐨勬彁鍗囧皢鏄浉褰撳彲瑙傜殑(姝ゆ椂錛孋PU鐨勬墍鏈夐儴浠墮兘寰楀埌浜?jiǎn)鍏呭垎鍒╃?銆?/p><p dir="ltr">褰撶劧錛屼綔涓虹▼搴忔潵璇達(dá)紝鐪熸鍋氬埌榪欐牱鏄浉褰撶悊鎯沖寲鐨勬儏鍐點(diǎn)傚疄闄呯殑紼嬪簭涓緢闅懼仛鍒板交搴曠殑騫惰鍖栥傚亣璁綜PU鑳藉鏀寔4鏉℃寚浠ゅ悓鏃舵墽琛岋紝騫朵笖錛屾瘡鏉℃寚浠ら兘鏄瓑鍛ㄦ湡闀垮害鐨?鍛ㄦ湡鎸囦護(hù)錛岄偅涔堬紝紼嬪簭闇瑕佷繚璇佸悓涓鏃跺埢鍏堝悗鍙戝皠鐨?鏉℃寚浠ら兘鑳藉騫惰鎵ц錛岀浉浜掍箣闂存病鏈夊叧鑱旓紝榪欓氬父鏄笉澶彲鑳界殑銆?/p><p dir="ltr">鏈鏂扮殑Intel Pentium 4-XEON澶勭悊鍣紝浠ュ強(qiáng)Intel Northwood Pentium 4閮芥彁渚涗簡(jiǎn)涓縐嶈縐頒負(fù)瓚呯嚎紼?Hyper-Threading<sup> TM</sup>)鐨勬妧鏈傝鎶鏈氳繃鍦ㄤ竴涓鐞嗗櫒涓皝瑁呬袱緇勬墽琛屾満鏋勬潵鎻愰珮鎸囦護(hù)騫惰搴︼紝騫朵緷闈犳搷浣滅郴緇熺殑璋冨害鏉ヨ繘涓姝ユ彁鍗囩郴緇熺殑鏁翠綋鏁堢巼銆?/p><p dir="ltr">鐢變簬綰跨▼鏈哄埗鏄笌鎿嶄綔緋葷粺瀵嗗垏鐩稿叧鐨勶紝鍥犳錛屽湪鏈枃鐨勮繖涓閮ㄥ垎涓笉鍙兘鍋氭洿涓烘繁鍏ュ湴鎺㈣銆傚湪鍚庣畫(huà)鐨勭珷鑺備腑錛屾垜灝嗕粙緇峎in32銆丗reeBSD 5.x浠ュ強(qiáng)Linux涓彁渚涚殑鍐呮牳綰х嚎紼嬫満鍒?榪欎笁縐嶆搷浣滅郴緇熼兘鏀寔SMP鍙?qiáng)瓒吘U跨▼鎶鏈紝騫朵笖浠ョ嚎紼嬩綔涓鴻皟搴﹀崟浣?鍦ㄦ眹緙栬璦涓殑浣跨敤鏂規(guī)硶銆?/p><p dir="ltr">鍏充簬綰跨▼鐨勮璁哄氨姝ゆ墦浣忥紝鍥犱負(fù)瀹冩洿澶氬湴渚濊禆浜庢搷浣滅郴緇燂紝騫朵笖錛屾棤璁哄浣曪紝鎿嶄綔緋葷粺鐨勭嚎紼嬭皟搴﹂渶瑕佹洿澶х殑寮閿騫朵笖錛屽埌鐩墠涓烘錛岀湡姝d嬌鐢ㄦ敮鎸佽秴綰跨▼鐨凜PU錛屽茍涓斾嬌鐢ㄧ浉搴旀搷浣滅郴緇熺殑浜烘槸闈炲父灝戠殑銆傚洜姝わ紝鎴戜滑闇瑕佸叧蹇?jī)鐨勫疄闄呬笂杩樻槸鍚屼竴鎵ц搴忓垪涓殑騫跺彂鎵ц鍜屾寚浠ゅ皝鍖呫備笉榪囷紝浠や漢閬楁喚鐨勬槸錛屽疄闄呬笂鍦ㄨ繖鏂歸潰緙栬瘧鍣ㄥ仛鐨勫嚑涔庢槸鑲畾瑕佹瘮浜哄ソ錛屽洜姝わ紝浣犻渶瑕佸仛鐨勫彧鏄紑鍚浉搴旂殑浼樺寲錛涘鏋滀綘鐨勭紪璇戝櫒涓嶆敮鎸佽繖鏍風(fēng)殑鐗規(guī)э紝閭d箞灝辨妸瀹冩墧鎺夆︹︽嵁鎴戞墍鐭ワ紝鐩墠鍦↖ntel騫沖彴涓婃寚浠ゅ皝鍖呮柟闈㈠仛鐨勬渶濂界殑鏄疘ntel鐨凜++緙栬瘧鍣紝緇忚繃Intel緙栬瘧鍣ㄧ紪璇戠殑浠g爜鐨勬ц兘浠や漢鎯婂紓鍦伴珮錛岀敋鑷沖湪AMD鍏徃鎺ㄥ嚭鐨勫吋瀹瑰鐞嗗櫒涓婁篃鏄姝ゃ?/p><h3 dir="ltr">5.5 瀛樺偍浼樺寲</h3><p dir="ltr">浠庡墠涓鑺傜殑鍥句腑鎴戜滑涓嶉毦鐪嬪嚭錛屾柟妗?涓紝濡傛灉璋佺殑鍔ㄤ綔鎱紝閭d箞浠栧氨浼?xì)鎴愪负鎬ц兘鐨勭摱棰堛傚疄闄呬笂錛孋PU涔熶笉浼?xì)鍍忔垜鎻彉q扮殑閭f牱鍥涘鉤鍏ǔ鍦拌繍琛岋紝鎸囦護(hù)鎵ц鐨勪笉鍚岄樁孌甸渶瑕佺殑鏃墮棿(鏃墮挓鍛ㄦ湡鏁?鏄笉鍚岀殑錛屽洜姝わ紝緙╃煭鍏抽敭姝ラ(鍗籌紝閫犳垚鐡墮鐨勯偅涓楠?鏄緝鐭墽琛屾椂闂寸殑鍏抽敭銆?/p><p dir="ltr">鑷沖皯瀵逛簬浣跨敤Intel緋誨垪鐨凜PU鏉ヨ錛屽彇鏁版嵁榪欎釜姝ラ闇瑕佹秷鑰楁瘮杈冨鐨勬椂闂淬傛澶栵紝鍋囧鏁版嵁璺ㄨ秺浜?jiǎn)鏌惪U嶈竟鐣?濡?鎴?瀛楄妭錛屼笌CPU鐨勫瓧闀挎湁鍏?錛屽垯C(jī)PU闇瑕佸惎鍔ㄤ袱嬈$敋鑷蟲(chóng)洿澶氭鏁扮殑璇誨唴瀛樻搷浣滐紝榪欐棤鐤戝鎬ц兘鏋勬垚涓嶅埄褰卞搷銆?/p><p dir="ltr">鍩轟簬榪欐牱鐨勫師鍥狅紝鎴戜滑鍙互寰楀埌涓嬮潰鐨勮璁$瓥鐣ワ細(xì)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><p align="center"><br /><font size="3">紼嬪簭璁捐涓殑鍐呭瓨鏁版嵁璁塊棶絳栫暐</font></p><ul type="square"><li>灝藉彲鑳藉噺灝戝浜庡唴瀛樼殑璁塊棶銆傚湪涓嶈繚鑳岃繖涓鍘熷垯鐨勫墠鎻愪笅錛屽鏋滃彲鑳斤紝灝嗘暟鎹竴嬈″鐞嗗畬銆? </li><li>灝藉彲鑳藉皢鏁版嵁鎸?鎴?瀛楄妭瀵歸綈錛屼互鍒╀簬CPU瀛樺彇 </li><li>灝藉彲鑳戒竴孌墊椂闂村唴璁塊棶鑼冨洿涓嶅ぇ鐨勪竴孌靛唴瀛橈紝鑰屼笉鍚屾椂璁塊棶澶ч噺榪滆窛紱葷殑鍒嗘暎鏁版嵁錛屼互鍒╀簬Cache緙撳瓨*</li></ul></td></tr></tbody></table><p dir="ltr">絎竴鏉¤鍒欐瘮杈冪畝鍗曘備緥濡傦紝闇瑕佹眰涓緇勬暟鎹腑鐨勬渶澶у箋佹渶灝忓箋佸鉤鍧囨暟錛岄偅涔堬紝鏈濂芥槸鍦ㄤ竴嬈″驚鐜腑鍋氬畬銆?/p><p dir="ltr">鈥滀簬鏄紝榪欏浼欏張鏀掍簡(jiǎn)涓孌典唬鐮佲濃︹?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#0000ff">int</font> a[]={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0};<br /><font color="#0000ff">int</font> i;<br /><font color="#0000ff">int</font> avg, max, min; <p>avg=max=min=a[0];</p><p><font color="#0000ff">for</font>(i=1; i<(<font color="#0000ff">sizeof</font>(a)/<font color="#0000ff">sizeof</font>(<font color="#0000ff">int</font>)); i++){<br />聽(tīng) avg+=a[i];<br />聽(tīng) <font color="#0000ff">if</font>(max < a[i])<br />聽(tīng)聽(tīng)聽(tīng) max = a[i];<br />聽(tīng) <font color="#0000ff">else</font><font color="#0000ff">if</font>(min > a[i])<br />聽(tīng)聽(tīng)聽(tīng) min = a[i];<br />}</p><p>avg /= i;</p></td></tr></tbody></table><p dir="ltr">Visual C++緙栬瘧鍣ㄦ妸鏈寮濮嬩竴孌佃祴鍊艱鍙ョ炕璇戞垚浜?jiǎn)涓孌電畝鐩村彲浠ヨ鏄尓澶鋒墍鎬濈殑浠g爜錛?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#008000">; int a[]={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0};</font><br /><br />mov edi, 2聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 姝ゆ椂edi娌℃湁鎰忎箟</font><br />mov esi, 3聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; esi涔熸槸錛佷復(fù)鏃跺彉閲忚屽凡銆?/font><br />mov DWORD PTR _a$[esp+92], edi<br />mov edx, 5聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 榛戝悕鍗曞姞涓奺dx</font><br />mov eax, 7聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; eax涔熷埆璺?)</font><br />mov DWORD PTR _a$[esp+132], edi<br />mov ecx, 9聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 灝卞樊浣犱簡(jiǎn)錛宔cx<br /><br />; int i;<br />; int avg, max, min;<br />; avg=max=min=a[0];</font><br /><br />mov edi, 1聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; edi鎽囪韓涓鍙橈紝鐜板湪瀹冩槸min浜?jiǎn)銆?/font><br />mov DWORD PTR _a$[esp+96], esi<br />mov DWORD PTR _a$[esp+104], edx<br />mov DWORD PTR _a$[esp+112], eax<br />mov DWORD PTR _a$[esp+136], esi<br />mov DWORD PTR _a$[esp+144], edx<br />mov DWORD PTR _a$[esp+152], eax<br />mov DWORD PTR _a$[esp+88], 1聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 緙栬瘧鍣ㄥけ璇? 姝ゅedi搴旀洿濂?/font><br />mov DWORD PTR _a$[esp+100], 4<br />mov DWORD PTR _a$[esp+108], 6<br />mov DWORD PTR _a$[esp+116], 8<br />mov DWORD PTR _a$[esp+120], ecx<br />mov DWORD PTR _a$[esp+124], 0<br />mov DWORD PTR _a$[esp+128], 1<br />mov DWORD PTR _a$[esp+140], 4<br />mov DWORD PTR _a$[esp+148], 6<br />mov DWORD PTR _a$[esp+156], 8<br />mov DWORD PTR _a$[esp+160], ecx<br />mov DWORD PTR _a$[esp+164], 0<br />mov edx, edi聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">聽(tīng); edx鏄痬ax銆?/font><br />mov eax, edi聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">聽(tīng); 鏈熷緟宸蹭箙鐨刟vg, 瀹冭鎸囧畾涓篹ax</font></td></tr></tbody></table><p dir="ltr">榪欐浠g爜鏄渶浼樼殑鍚楋紵鎴戜釜浜鴻涓轟笉鏄傚洜涓虹紪璇戝櫒瀹屽叏鍙互鍦ㄧ紪璇戣繃紼嬩腑鐩存帴鎶婂畠浠綔涓哄父閲忔暟鎹斁鍏ュ唴瀛樸傛澶栵紝濡傛灉棰勫厛瀵筧[0..9]10涓厓绱犺祴鍊鹼紝騫跺埄鐢ㄤ覆鎿嶄綔鎸囦護(hù)(rep movsdw)錛岄熷害浼?xì)鏇村揩涓浜涖?/p><p dir="ltr">褰撶劧錛岀姱涓嶄笂鍥犱負(fù)榪欎簺闂璐f紪璇戝櫒銆傝姹傜紪璇戝櫒鐭ラ亾a[0..9]鍜孾10..19]鐨勫唴瀹逛竴鏍鋒湭鍏嶈繃浜庤嫑鍒匯傛垜浠湅鐪嬩笅闈㈢殑鎸囦護(hù)孌碉細(xì)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="40%"><font color="#008000">; for(i=1; ...</font><br /><br />mov esi, edi<br />for_loop:<br /><br /><font color="#008000">; avg+=a[i];</font><br /><br />mov ecx, DWORD PTR _a$[esp+esi*4+88]<br />add eax, ecx<br /><br /><font color="#008000">; if(max < a[i])</font><br /><br />cmp edx, ecx<br />jge SHORT elseif_min<br /><br /><font color="#008000">; max = a[i];</font><br /><br />mov edx, ecx<br /><br /><font color="#008000">; else if(min > a[i])</font><br /><br />jmp SHORT elseif_min<br />elseif_min:<br />cmp edi, ecx<br />jle SHORT elseif_end<br /><br /><font color="#008000">; min = a[i];</font><br />mov edi, ecx<br /><br />elseif_end:<br /><br /><font color="#008000">; [for i=1]; i<20; i++){</font><br /><br />inc esi<br />cmp esi, 20<br />jl SHORT for_loop<br /><br /><font color="#008000">; }<br />; avg /= i;</font><br /><br />cdq<br />idiv esi</td><td valign="top" width="60%"><font color="#008000"><br /><br />; esi: i<br /><br /><br /><br /><br />; ecx: 鏆傚瓨鍙橀噺, =a[i]<br />; eax: avg<br /><br /><br /><br />; edx: max<br /><br /><br /><br /><br /><br /><br /><br /><br />; 鏈夎叮鐨勪唬鐮?..騫朵笉鏄墍鏈夌殑鏃跺欓兘鏈夌敤<br />; 浣嗘槸涔熷埆闅忎究鍒犻櫎<br />; edi: min<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />; i++<br />; i涓?0姣旇緝<br /><br /><br /><br /><br /><br /><br />; avg /= i</font></td></tr></tbody></table><p dir="ltr">涓婇潰鐨勭▼搴忓掓槸娌℃湁浠涔堟儕浜轟箣澶勩傚敮涓涓涓瘮杈冨悡浜虹殑涓滆タ鏄偅涓猨mp SHORT鎸囦護(hù)錛屽畠鏄惁鏈夌敤鍙栧喅浜庡叿浣撶殑闂銆侰/C++緙栬瘧鍣ㄦ湁鏃朵細(xì)浜х敓榪欐牱鐨勪唬鐮侊紝鎴戣繃鍘繪浘緇忛敊璇湴鎶婃墍鏈夌殑姝ょ被鎸囦護(hù)褰撲綔娌$敤鐨勪唬鐮佽屽垹鎺夛紝鍚庢潵鍙戠幇紼嬪簭鎵ц鏃墮棿娌℃湁鏄庢樉鐨勫彉鍖栥傞氳繃鏌ラ槄鏂囨。鎵嶇煡閬擄紝榪欑被鎸囦護(hù)瀹為檯涓婃槸鈥滃崰浣嶆寚浠も濓紝浠栦滑瀛樺湪鐨勬剰涔夊湪浜庡崰鎹偅涓湴鏂癸紝涓鏉ヤ嬌鍏朵粬璇彞鑳藉姝g‘鍦版寜CPU瑙夊緱鑸掓湇鐨勬柟寮忓榻愶紝浜屾潵瀹冨彲浠ュ崰鎹瓹PU鐨勬煇浜涘懆鏈燂紝浣垮緱鍚庣畫(huà)鐨勬寚浠よ兘澶熸洿濂藉湴騫跺彂鎵ц錛岄伩鍏嶅啿紿併傚彟涓涓瘮杈冨父瑙佺殑銆佸疄鐜扮被浼煎姛鑳界殑鎸囦護(hù)鏄疦OP銆?/p><p dir="ltr">鍗犱綅鎸囦護(hù)鐨勫幓鐣欎富瑕佹槸闈犺鏃舵墽琛屾潵鍒ゆ柇銆傜敱浜庣洰鍓嶆祦琛岀殑鎿嶄綔緋葷粺鍩烘湰涓婇兘鏄浠誨姟鐨勶紝鍥犳浼?xì)瀵硅鏃剁殑绮炯嫯鎬ф湁涓瀹氬獎(jiǎng)鍝嶃傚鏋滈渶瑕佽繘琛屾祴璇曠殑璇濓紝闇瑕佷繚璇佷互涓嬪嚑鐐癸細(xì)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="4" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><p align="center"><br /><font size="3">璁℃椂嫻嬭瘯闇瑕佹敞鎰忕殑闂</font></p><ul type="square"><li>嫻嬭瘯蹇呴』鍦ㄦ病鏈夐澶栬礋鑽風(fēng)殑鏈哄櫒涓婂畬鎴愩備緥濡傦紝涓撻棬鐢ㄤ簬緙栧啓鍜岃皟璇曠▼搴忕殑璁$畻鏈? </li><li>灝介噺緇堟璁$畻鏈轟笂榪愯鐨勬墍鏈夋湇鍔★紝鐗瑰埆鏄潃姣掔▼搴? </li><li>鍒囨柇璁$畻鏈虹殑緗戠粶錛岃繖鏍風(fēng)綉緇滅殑褰卞搷浼?xì)娑堝? </li><li>灝嗚繘紼嬩紭鍏堢駭璋冮珮銆傚浜嶹indows緋葷粺鏉ヨ錛屾妸榪涚▼(綰跨▼)璁劇疆涓篢ime-Critical; 瀵逛簬*nix緋葷粺鏉ヨ錛屾妸榪涚▼璁劇疆涓哄疄鏃惰繘紼? </li><li>灝嗘祴璇曞嚱鏁拌繍琛屽敖鍙兘澶氭榪愯錛屽10000000嬈★紝榪欐牱鑳藉鍑忓皯鐢變簬榪涘煄鍒囨崲鑰岄犳垚鐨勫伓鐒惰宸? </li><li>鏈鍚庯紝濡傛灉鍙兘鐨勮瘽錛屾妸鍑芥暟鏀懼埌鍗曡繘紼嬬殑緋葷粺(渚嬪FreeDOS)涓繍琛屻?/li></ul></td></tr></tbody></table><p>瀵逛簬緇濆ぇ澶氭暟紼嬪簭鏉ヨ錛岃鏃舵祴璇曟槸涓涓潪甯擱噸瑕佺殑涓滆タ銆傛垜涓漢鍊懼悜浜庡湪榪涜浼樺寲鍚庤繘琛岃鏃舵祴璇曞茍姣旇緝緇撴灉銆傜洰鍓嶏紝鎴戝熀浜庣粡楠岃繘琛岀殑浼樺寲鍩烘湰涓婇兘鑳藉鎻愰珮紼嬪簭鐨勬墽琛屾ц兘錛屼絾鎴戣繕鏄笉鏁㈣繃浜庤嚜淇°備紭鍖栫‘瀹炰細(xì)鎻愰珮鎬ц兘錛屼絾浜哄仛鐨勫拰緙栬瘧鍣ㄥ仛鐨勬濊礬涓嶅悓錛屾湁鏃訛紝鎴戜滑鐨勭‘浼?xì)鍋氫竴浜涜垂鍔涗笉璁ㄥソ鐨勪簨鎯呫?/p><img src ="http://www.shnenglu.com/ispfcn/aggbug/14720.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ispfcn/" target="_blank">緙栫▼涔嬮亾</a> 2006-11-06 10:39 <a href="http://www.shnenglu.com/ispfcn/archive/2006/11/06/14720.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>綆鏄巟86姹囩紪璇█鏁欑▼錛堝叚錛?/title><link>http://www.shnenglu.com/ispfcn/archive/2006/11/06/14719.html</link><dc:creator>緙栫▼涔嬮亾</dc:creator><author>緙栫▼涔嬮亾</author><pubDate>Mon, 06 Nov 2006 02:36:00 GMT</pubDate><guid>http://www.shnenglu.com/ispfcn/archive/2006/11/06/14719.html</guid><wfw:comment>http://www.shnenglu.com/ispfcn/comments/14719.html</wfw:comment><comments>http://www.shnenglu.com/ispfcn/archive/2006/11/06/14719.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/ispfcn/comments/commentRss/14719.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/ispfcn/services/trackbacks/14719.html</trackback:ping><description><![CDATA[鍘熷垱錛氬徃寰掑濺鍗?<br /><br /><h3>4.0 鍒╃敤瀛愮▼搴忎笌涓柇</h3><p>宸茬粡鎺屾彙浜?jiǎn)姹嚲~栬璦錛熸病閿欙紝浣犵幇鍦ㄥ凡緇忓彲浠ュ幓鐮磋瘧鍒漢浠g爜涓殑縐樺瘑銆傜劧鑰岋紝鎴戜滑榪樻湁涓浠墮噸瑕佺殑涓滆タ娌℃湁鎻愬埌錛岄偅灝辨槸鑷▼搴忓拰涓柇銆傝繖涓や歡涓滆タ鏄姝ょ殑閲嶈錛屼互鑷充簬浣犵殑紼嬪簭鍑犱箮涓嶅彲鑳界寮瀹冧滑銆?/p><h4>4.1 瀛愮▼搴?/h4><p>鍦ㄩ珮綰ц璦涓垜浠粡甯歌鐢ㄥ埌瀛愮▼搴忋傞珮綰ц璦涓紝瀛愮▼搴忔槸濡傛鐨勭濂囷紝鎴戜滑鑳藉瀹氫箟鍜屼富紼嬪簭錛屾垨鍏朵粬瀛愮▼搴忎竴鏍風(fēng)殑鍙橀噺鍚嶏紝鑰岃闂笉鍚岀殑鍙橀噺錛屽茍涓旓紝榪樹(shù)笉鍜岀▼搴忕殑鍏朵粬閮ㄥ垎鐩稿啿紿併?/p><p>鐒惰岄仐鎲劇殑鏄紝榪欑鈥滀紭鍔庫(kù)濆湪姹囩紪璇█涓槸涓嶅瓨鍦ㄧ殑銆?/p><p>姹囩紪璇█騫朵笉娉ㄩ噸濡備綍鍑忚交紼嬪簭鍛樼殑璐熸媴錛涚浉鍙嶏紝姹囩紪璇█渚濊禆紼嬪簭鍛樼殑鑹ソ璁捐錛屼互鏈熷彂鎸PU鐨勬渶浣蟲(chóng)ц兘銆傛眹緙栬璦涓嶆槸緇撴瀯鍖栫殑璇█錛屽洜姝わ紝瀹冧笉鎻愪緵鐩存帴鐨勨滃眬閮ㄥ彉閲忊濄傚鏋滈渶瑕佲滃眬閮ㄥ彉閲忊濓紝鍙兘閫氳繃鍫嗘垨鏍堣嚜琛屽疄鐜般?/p><p>浠庤繖涓剰涔変笂璁詫紝姹囩紪璇█鐨勫瓙紼嬪簭鏇村儚GWBASIC涓殑GOSUB璋冪敤鐨勯偅浜涒滃瓙紼嬪簭鈥濄傛墍鏈夌殑鈥滃彉閲忊?鏈川涓婏紝灞炰簬榪涚▼鐨勫唴瀛樺拰瀵勫瓨鍣?涓烘暣涓▼搴忔墍鍏變韓錛岄珮綰ц璦緙栬瘧鍣ㄦ墍鍋氱殑錛屽皢灞閮ㄥ彉閲忔斁鍒板爢鎴栨爤涓殑鎿嶄綔錛屽彧鑳借嚜琛屽疄鐜般?/p><p>鍙傛暟鐨勪紶閫掓槸闈犲瘎瀛樺櫒鍜屽爢鏍堟潵瀹屾垚鐨勩傞珮綰ц璦涓紝瀛愮▼搴?鍑芥暟銆佽繃紼嬶紝鎴栫被浼兼蹇電殑涓滆タ)渚濊禆浜庡爢鍜屾爤鏉ヤ紶閫掋?/p><p>璁╂垜浠潵綆鍗曞湴鍒嗘瀽涓涓嬩竴鑸珮綰ц璦鐨勫瓙紼嬪簭鐨勬墽琛岃繃紼嬨傛棤璁篊銆丆++銆丅ASIC銆丳ascal錛岃繖涓閮ㄥ垎鍩烘湰閮芥槸涓鑷寸殑銆?/p><table style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><ul type="square"><br /><li>璋冪敤鑰呭皢瀛愮▼搴忔墽琛屽畬鎴愭椂搴旇繑鍥炵殑鍦板潃銆佸弬鏁板帇鍏ュ爢鏍? </li><li>瀛愮▼搴忎嬌鐢˙P鎸囬拡+鍋忕Щ閲忓鏍堜腑鐨勫弬鏁板鍧錛屽茍鍙栧嚭銆佸畬鎴愭搷浣? </li><li>瀛愮▼搴忎嬌鐢≧ET鎴朢ETF鎸囦護(hù)榪斿洖銆傛鏃訛紝CPU灝咺P緗負(fù)鍫嗘爤涓繚瀛樼殑鍦板潃錛屽茍緇х畫(huà)浜堜互鎵ц</li></ul></td></tr></tbody></table><p>姣嬪焊緗枒錛屽爢鏍堝湪鏁翠釜榪囩▼涓彂鎸ョ潃闈炲父閲嶈鐨勪綔鐢ㄣ備笉榪囷紝鏈川涓婂瀛愮▼搴忔渶閲嶈鐨勮繕鏄繑鍥炲湴鍧銆傚鏋滃瓙紼嬪簭涓嶇煡閬撹繖涓湴鍧錛岄偅涔堢郴緇熷皢浼?xì)宕╂簝銆?/p><p>璋冪敤瀛愮▼搴忕殑鎸囦護(hù)鏄疌ALL錛屽搴旂殑榪斿洖鎸囦護(hù)鏄疪ET銆傛澶栵紝榪樻湁涓緇勬寚浠わ紝鍗矱NTER鍜孡EAVE錛屽畠浠彲浠ュ府鍔╄繘琛屽爢鏍堢殑緇存姢銆?/p><p>CALL鎸囦護(hù)鐨勫弬鏁版槸琚皟鐢ㄥ瓙紼嬪簭鐨勫湴鍧銆備嬌鐢ㄥ畯姹囩紪鐨勬椂鍊欙紝榪欓氬父鏄竴涓爣鍙楓侰ALL鍜孯ET錛屼互鍙?qiáng)ENTER鍜孡EAVE閰嶅錛屽彲浠ュ疄鐜板浜庡爢鏍堢殑鑷姩鎿嶄綔錛岃屼笉闇瑕佺▼搴忓憳榪涜PUSH/POP錛屼互鍙?qiáng)锜╄浆鐨勬搷浣滃Q屼粠鑰屾彁楂樹(shù)簡(jiǎn)鏁堢巼銆?/p><p>浣滀負(fù)涓涓紪璇戝櫒鐨勫疄鐜板疄渚嬶紝鎴戠敤Visual C++緙栬瘧浜?jiǎn)涓孌礐++紼嬪簭浠g爜錛岃繖孌墊眹緙栦唬鐮佹槸浣跨敤鐗瑰畾鐨勭紪璇戦夐」寰楀埌鐨勭粨鏋滐紝姝e父鐨凴ELEASE浠g爜浼?xì)姣斿畠绮窘巰寰楀銆傚寘鍚簮浠g爜鐨勯儴鍒嗗弽姹囩紪緇撴灉濡備笅(鍙栬嚜Visual C++璋冭瘯鍣ㄧ殑榪愯緇撴灉錛屾垜鍒犻櫎浜?0鏉nt 3鎸囦護(hù)錛屽茍鍔犱笂浜?jiǎn)涓浜涙敞閲婏紝闄ゆ涔嬪錛屾病鏈夊仛浠諱綍淇敼)錛?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font face="Courier New"><i><font color="#ff0000">1: </font><font color="#0000ff">int</font> myTransform(<font color="#0000ff">int</font> nInput){<br /></i>00401000 push ebp聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 淇濇姢鐜板満鍘熷厛鐨凟BP鎸囬拡</font><br />00401001 mov ebp,esp<br /><i><font color="#ff0000">2: </font><font color="#0000ff">return</font> (nInput*2 + 3) % 7;<br /></i>00401003 mov eax,dword ptr [nInput] <font color="#008000">; 鍙栧弬鏁?/font><br />00401006 lea eax,[eax+eax+3]聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; LEA姣擜DD鍔犳硶鏇村揩</font><br />0040100A cdq聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; DWORD->QWORD(鎵╁睍瀛楅暱)</font><br />0040100B mov ecx,7聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 闄ゆ暟</font><br />00401010 idiv eax,ecx聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 闄?/font><br />00401012 mov eax,edx聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 鍟?>eax(eax涓繚瀛樿繑鍥炲?</font><br /><i><font color="#ff0000">3:</font> }<br /></i>00401014 pop ebp聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 鎭㈠鐜板満鐨別bp鎸囬拡</font><br />00401015 ret聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 榪斿洖<br />; 姝ゅ鍒犻櫎10鏉nt 3鎸囦護(hù)錛屽畠浠槸鏂逛究璋冭瘯鐢ㄧ殑錛屽茍涓嶅獎(jiǎng)鍝嶇▼搴忚涓恒?/font><br /><i><font color="#ff0000">4:<br />5: </font><font color="#0000ff">int</font> main(<font color="#0000ff">int</font> argc, <font color="#0000ff">char</font>* argv[])<br /><font color="#ff0000">6:</font> {<br /></i>00401020 push ebp聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 淇濇姢鐜板満鍘熷厛鐨凟BP鎸囬拡</font><br />00401021 mov ebp,esp<br />00401023 sub esp,10h聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 涓哄彇argc, argv淇鍫嗘爤鎸囬拡銆?br /></font><i><font color="#ff0000">7:</font><font color="#0000ff">int</font> a[3];<br /><font color="#ff0000">8:</font><font color="#0000ff">for</font>(<font color="#0000ff">register int</font> i=0; i<3; i++){<br /></i>00401026 mov dword ptr [i],0聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 0->i</font><br />0040102D jmp main+18h (00401038)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 鍒ゆ柇寰幆鏉′歡</font><br />0040102F mov eax,dword ptr [i]聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; i->eax</font><br />00401032 add eax,1聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; eax ++</font><br />00401035 mov dword ptr [i],eax聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; eax->i</font><br />00401038 cmp dword ptr [i],3聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 寰幆鏉′歡: i涓?姣旇緝</font><br />0040103C jge main+33h (00401053)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 濡傛灉涓嶇鍚堟潯浠訛紝鍒欏簲緇撴潫寰幆</font><br /><i><font color="#ff0000">9:</font> a[i] = myTransform(i);<br /></i>0040103E mov ecx,dword ptr [i]聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; i->ecx</font><br />00401041 push ecx聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; ecx (i) -> 鍫嗘爤</font><br />00401042 call myTransform (00401000)<font color="#008000">; 璋冪敤myTransform</font><br />00401047 add esp,4聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; esp+=4: 鍦ㄥ爢涓殑鏂板崟鍏?br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) ; 鍑嗗瀛樻斁榪斿洖緇撴灉<br /></font>0040104A mov edx,dword ptr [i]聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; i->edx</font><br />0040104D mov dword ptr a[edx*4],eax <font color="#008000">; 灝唀ax(myTransform榪斿洖鍊?<br />聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) ; 鏀懼洖a[i]<br /></font><i><font color="#ff0000">10:</font> }<br /></i>00401051 jmp main+0Fh (0040102f)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 璁$畻i++錛屽茍緇х畫(huà)寰幆</font><br /><i><font color="#ff0000">11:</font><font color="#0000ff">return</font> 0;<br /></i>00401053 xor eax,eax聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 榪斿洖鍊煎簲璇ユ槸0</font><br /><i><font color="#ff0000">12:</font> }<br /></i>00401055 mov esp,ebp聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 鎭㈠鍫嗘爤鎸囬拡</font><br />00401057 pop ebp聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 鎭㈠BP</font><br />00401058 ret聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">; 榪斿洖璋冪敤鑰?C++榪愯鐜)</font></font></td></tr></tbody></table><p>涓婅堪浠g爜紜疄鍋氫簡(jiǎn)涓浜涙棤鐢ㄥ姛錛屽綋鐒?dòng)灱寴q欐槸鍥犱負(fù)緙栬瘧鍣ㄦ病鏈夊榪欐浠g爜榪涜浼樺寲銆傝鎴戜滑鏉ュ叧娉ㄤ竴涓嬭繖孌典唬鐮佷腑錛屾槸濡備綍璋冪敤瀛愮▼搴忕殑銆備笉鑰冭檻myTransform榪欎釜鍑芥暟瀹為檯榪涜鐨勬暟鍊艱繍綆楋紝鏈璁╂垜鎰熷叴瓚g殑鏄繖涓琛屼唬鐮侊細(xì)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font face="Courier New">00401003 mov eax,dword ptr [nInput] <font color="#008000">; 鍙栧弬鏁?/font></font></td></tr></tbody></table><p>榪欓噷nInput鏄竴涓畝綆鍗曞崟鐨勫彉閲忕鍙峰悧錛烿isual C++鐨勮皟璇曞櫒鏄劇劧涓嶈兘鍛婅瘔鎴戜滑絳旀鈥斺斿畠鐨勮璁$洰鏍囨槸涓轟簡(jiǎn)鏂逛究紼嬪簭璋冭瘯錛岃屼笉鏄悜浣犳彮紺虹紪璇戝櫒鐢熸垚鐨勪唬鐮佺殑瀹為檯鏋勯犮傛垜鐢ㄥ彟澶栦竴涓弽姹囩紪鍣ㄥ緱鍒扮殑緇撴灉鏄細(xì)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font face="Courier New">00401003 mov eax,dword ptr [ebp+8] <font color="#008000">聽(tīng) ; 鍙栧弬鏁?/font></font></td></tr></tbody></table><p>榪欏拰鎴戜滑鍦╩ain()涓湅鍒扮殑鍘嬫爤欏哄簭鏄畬鍏ㄥ惢鍚堢殑(娉ㄦ剰錛岀▼搴忚繍琛屽埌榪欎釜鍦版柟鐨勬椂鍊欙紝EBP=ESP)銆俶ain()鏈緇堝皢i鐨?b>鍊?/b>閫氳繃鍫嗘爤浼犻掔粰浜?jiǎn)myTransform()銆?/p><p>鍓栨瀽涓婇潰鐨勭▼搴忓彧鏄鏄庝簡(jiǎn)鎴戝墠闈㈡墍鎻愬埌鐨勫瓙紼嬪簭鐨勪竴閮ㄥ垎鐢ㄦ硶銆傚浜庢眹緙栬璦鏉ヨ錛屽畬鍏ㄦ病鏈夊繀瑕佹嫎娉ヤ簬緇撴瀯鍖栫▼搴忚璁$殑妗嗘灦(鍦ㄤ粖澶╋紝浣跨敤姹囩紪鐨勪富瑕佺洰鐨勫湪浜庢彁楂樻墽琛屾晥鐜囷紝鑰屼笉鏄柟渚跨▼搴忕殑緇存姢鍜岃皟璇曪紝鍥犱負(fù)姹囩紪涓嶅彲鑳藉湪榪欎竴鐐逛笂鍋氬緱姣擟++鏇村ソ)銆傝冭檻涓嬮潰鐨勭▼搴忥細(xì)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><p dir="ltr"><font color="#0000ff">void</font> myTransform1(<font color="#0000ff">int</font> nCount, <font color="#0000ff">char</font>* sBytes){<br />聽(tīng) <font color="#0000ff">for</font>(<font color="#0000ff">register int</font> i=1; i<nCount; i++)<br />聽(tīng)聽(tīng)聽(tīng) sBytes[i] += sBytes[i-1];<br />聽(tīng) <font color="#0000ff">for</font>(i=0; i<nCount; i++)<br />聽(tīng)聽(tīng)聽(tīng) sBytes[i] <<= 1;<br />}<br /><br /><font color="#0000ff">void</font> myTransform2(<font color="#0000ff">int</font> nCount, <font color="#0000ff">char</font>* sBytes){<br />聽(tīng) <font color="#0000ff">for</font>(<font color="#0000ff">register int</font> i=0; i<nCount; i++)<br />聽(tīng)聽(tīng)聽(tīng) sBytes[i] <<= 1;<br />}</p></td></tr></tbody></table><p>寰堝鏄撶湅鍑猴紝榪欎袱涓嚱鏁板寘鍚簡(jiǎn)鍏叡閮ㄥ垎錛屽嵆</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%">聽(tīng) <font color="#0000ff">for</font>(i=0; i<nCount; i++)<br />聽(tīng)聽(tīng)聽(tīng) sBytes[i] <<= 1;</td></tr></tbody></table><p>鐩墠錛岃繕娌℃湁緙栬瘧鍣ㄨ兘澶熷仛鍒板皢榪欎袱閮ㄥ垎鍚堝茍銆備緷鐒舵部鐢ㄥ垰鎵嶇殑緙栬瘧閫夐」錛屽緱鍒扮殑鍙嶆眹緙栫粨鏋滄槸(鍚屾牱鍦板垹闄や簡(jiǎn)int 3)錛?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><i><font color="#ff0000">1:</font><font color="#0000ff">void</font> myTransform1(<font color="#0000ff">int</font> nCount, <font color="#0000ff">char</font>* sBytes){<br /></i>00401000 push ebp<br />00401001 mov ebp,esp<br />00401003 push ecx<br /><i><font color="#ff0000">2:</font><font color="#0000ff">for</font>(<font color="#0000ff">register int</font> i=1; i<nCount; i++)<br /></i>00401004 mov dword ptr [i],1<br />0040100B jmp myTransform1+16h (00401016)<br />0040100D mov eax,dword ptr [i]<br />00401010 add eax,1<br />00401013 mov dword ptr [i],eax<br />00401016 mov ecx,dword ptr [i]<br />00401019 cmp ecx,dword ptr [nCount]<br />0040101C jge myTransform1+3Dh (0040103d)<br /><i><font color="#ff0000">3:</font> sBytes[i] += sBytes[i-1];<br /></i>0040101E mov edx,dword ptr [sBytes]<br />00401021 add edx,dword ptr [i]<br />00401024 movsx eax,byte ptr [edx-1]<br />00401028 mov ecx,dword ptr [sBytes]<br />0040102B add ecx,dword ptr [i]<br />0040102E movsx edx,byte ptr [ecx]<br />00401031 add edx,eax<br />00401033 mov eax,dword ptr [sBytes]<br />00401036 add eax,dword ptr [i]<br />00401039 mov byte ptr [eax],dl<br />0040103B jmp myTransform1+0Dh (0040100d)<br /><i><font color="#ff0000">4:</font><font color="#0000ff">for</font>(i=0; i<nCount; i++)<br /></i>0040103D mov dword ptr [i],0<br />00401044 jmp myTransform1+4Fh (0040104f)<br />00401046 mov ecx,dword ptr [i]<br />00401049 add ecx,1<br />0040104C mov dword ptr [i],ecx<br />0040104F mov edx,dword ptr [i]<br />00401052 cmp edx,dword ptr [nCount]<br />00401055 jge myTransform1+6Bh (0040106b)<br /><i><font color="#ff0000">5:</font> sBytes[i] <<= 1;<br /></i>00401057 mov eax,dword ptr [sBytes]<br />0040105A add eax,dword ptr [i]<br />0040105D mov cl,byte ptr [eax]<br />0040105F shl cl,1<br />00401061 mov edx,dword ptr [sBytes]<br />00401064 add edx,dword ptr [i]<br />00401067 mov byte ptr [edx],cl<br />00401069 jmp myTransform1+46h (00401046)<br /><i><font color="#ff0000">6:</font> }<br /></i>0040106B mov esp,ebp<br />0040106D pop ebp<br />0040106E ret<br /><i><font color="#ff0000">7:</font><br /><font color="#ff0000">8:</font><font color="#0000ff">void</font> myTransform2(<font color="#0000ff">int</font> nCount, <font color="#0000ff">char</font>* sBytes){<br /></i>00401070 push ebp<br />00401071 mov ebp,esp<br />00401073 push ecx<br /><i><font color="#ff0000">9:</font><font color="#0000ff">for</font>(<font color="#0000ff">register int</font> i=0; i<nCount; i++)<br /></i>00401074 mov dword ptr [i],0<br />0040107B jmp myTransform2+16h (00401086)<br />0040107D mov eax,dword ptr [i]<br />00401080 add eax,1<br />00401083 mov dword ptr [i],eax<br />00401086 mov ecx,dword ptr [i]<br />00401089 cmp ecx,dword ptr [nCount]<br />0040108C jge myTransform2+32h (004010a2)<br /><font color="#ff0000">10:</font> sBytes[i] <<= 1;<br />0040108E mov edx,dword ptr [sBytes]<br />00401091 add edx,dword ptr [i]<br />00401094 mov al,byte ptr [edx]<br />00401096 shl al,1<br />00401098 mov ecx,dword ptr [sBytes]<br />0040109B add ecx,dword ptr [i]<br />0040109E mov byte ptr [ecx],al<br />004010A0 jmp myTransform2+0Dh (0040107d)<br /><i><font color="#ff0000">11:</font> }<br /></i>004010A2 mov esp,ebp<br />004010A4 pop ebp<br />004010A5 ret<br /><i><font color="#ff0000">12:<br />13:</font><font color="#0000ff">int</font> main(<font color="#0000ff">int</font> argc, <font color="#0000ff">char</font>* argv[])<br /><font color="#ff0000">14:</font> {<br /></i>004010B0 push ebp<br />004010B1 mov ebp,esp<br />004010B3 sub esp,0CCh<br /><i><font color="#ff0000">15:</font><font color="#0000ff">char</font> a[200];<br /><font color="#ff0000">16:</font><font color="#0000ff">for</font>(<font color="#0000ff">register int</font> i=0; i<200; i++)a[i]=i;<br /></i>004010B9 mov dword ptr [i],0<br />004010C3 jmp main+24h (004010d4)<br />004010C5 mov eax,dword ptr [i]<br />004010CB add eax,1<br />004010CE mov dword ptr [i],eax<br />004010D4 cmp dword ptr [i],0C8h<br />004010DE jge main+45h (004010f5)<br />004010E0 mov ecx,dword ptr [i]<br />004010E6 mov dl,byte ptr [i]<br />004010EC mov byte ptr a[ecx],dl<br />004010F3 jmp main+15h (004010c5)<br /><i><font color="#ff0000">17:</font> myTransform1(200, a);<br /></i>004010F5 lea eax,[a]<br />004010FB push eax<br />004010FC push 0C8h<br />00401101 call myTransform1 (00401000)<br />00401106 add esp,8<br /><i><font color="#ff0000">18:</font> myTransform2(200, a);<br /></i>00401109 lea ecx,[a]<br />0040110F push ecx<br />00401110 push 0C8h<br />00401115 call myTransform2 (00401070)<br />0040111A add esp,8<br /><i><font color="#ff0000">19:</font><font color="#0000ff">return</font> 0;<br /></i>0040111D xor eax,eax<br /><i><font color="#ff0000">20:</font> }</i><br />0040111F mov esp,ebp<br />00401121 pop ebp<br />00401122 ret</td></tr></tbody></table><p>闈炲父鏄庢樉鍦幫紝0040103d-0040106e鍜?0401074-004010a5榪欎袱孌典唬鐮佸瓨鍦ㄥ皯閲忕殑宸埆錛屼絾寰堟樉鐒跺彧鏄瀵勫瓨鍣ㄧ殑鍋忓ソ涓嶅悓(緙栬瘧鍣ㄥ湪浼樺寲鏃訛紝榪欏彲鑳戒細(xì)鍑忓皯鍫嗘爤鎿嶄綔錛屼粠鑰屾彁楂樻ц兘錛屼絾鍦ㄨ繖閲屽彧鏄嬌鐢ㄤ簡(jiǎn)涓嶅悓鐨勫瘎瀛樺櫒鑰屽凡)</p><p>瀵逛唬鐮佽繘琛屽悎騫剁殑濂藉鏄潪甯告槑鏄劇殑銆傛柊鐨勬搷浣滅郴緇熷線寰浣跨敤欏靛紡鍐呭瓨綆$悊銆傚綋鍐呭瓨?shù)笉鑳鲦椨灱尳E嬪簭寰寰浼?xì)棰懢J佸紩鍙戦〉闈㈠け鏁?Page faults)錛屼粠鑰屽紩鍙戞搷浣滅郴緇熶粠紓佺洏?shù)腑璇诲彇涓浜涗笢瑗褲傜鐩樼殑閫熷害璧朵笉涓婂唴瀛樼殑閫熷害錛屽洜姝わ紝榪欎竴琛屼負(fù)灝嗗鑷存ц兘鐨勪笅闄嶃傞氳繃鍚堝茍涓閮ㄥ垎浠g爜錛屽彲浠ュ噺灝戠▼搴忕殑澶у皬錛岃繖鎰忓懗鐫鍑忓皯欏甸潰澶辨晥鐨勫彲鑳芥э紝浠庤岃蔣浠剁殑鎬ц兘浼?xì)鏈夋墍鎻愰珮?/p> </p><p>褰撶劧錛岃繖鏍峰仛鐨勪唬浠蜂篃涓嶇畻浣庘斺斾綘鐨勭▼搴忓皢鍙樺緱闅炬噦錛屽茍涓旈毦浜庣淮鎶ゃ傚洜姝わ紝鍐嶈繘琛岃繖鏍風(fēng)殑浼樺寲涔嬪墠錛屼竴瀹氳娉ㄦ剰錛?/p><table style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><ul type="square"><br /><li>浼樺寲鍓嶇殑紼嬪簭<font color="#ff0000">蹇呴』</font>鏄紜殑銆傚鏋滀綘涓嶈兘紜繚榪欎竴鐐癸紝閭d箞榪欑浼樺寲蹇呭皢緇欎綘鐨勮皟璇曞甫鏉ユ瀬澶х殑楹葷儲(chǔ)銆? </li><li>浼樺寲鍓嶇殑紼嬪簭瀹炵幇<font color="#ff0000">鏈濂?/font>鏄渶浼樼殑銆備粩緇嗘鏌ヤ綘鐨勮璁★紝鐪嬬湅鏄惁宸茬粡浣跨敤浜?jiǎn)鏈鍚堥?鍗籌紝瀵逛簬姝ょ▼搴忚岃█鏈浼?鐨勭畻娉曪紝騫朵笖宸茬粡鍦ㄩ珮綰ц璦璁稿彲鐨勮寖鍥村唴榪涜浜?jiǎn)鏈濂界殑瀹炵幇銆? </li><li>浼樺寲<font color="#ff0000">鏈濂?/font>鑳藉闈炲父鏈夋晥鍦板噺灝戠▼搴忓ぇ灝?渚嬪錛屽鏋滃彧鏄噺灝戝崄鍑犱釜瀛楄妭錛屾亹鎬曞氨娌′粈涔堝繀瑕佷簡(jiǎn))錛屾垨闈炲父鏈夋晥鍦版彁楂樼▼搴忕殑榪愯閫熷害(濡傛灉浠g爜鍙槸榪愯涓嬈★紝騫朵笖鍙槸鑺傜渷鍑犱釜鏃墮挓鍛ㄦ湡錛岄偅涔堝湪澶氭暟鍦哄悎閮芥病鏈夋剰涔?銆傚惁鍒欙紝榪欑浼樺寲灝嗗緱涓嶅伩澶便?/li></ul></td></tr></tbody></table><h4>4.2 涓柇</h4><p>涓柇搴旇璇存槸涓涓檲鏃х殑璇濋銆傚湪鏂扮殑緋葷粺涓紝瀹冪殑浣滅敤姝e湪閫愭笎琚墛寮憋紝鑰屽彉鎴愭搷浣滅郴緇熶笓鐢ㄧ殑涓滆タ銆傚茍涓嶆槸鎵鏈夌殑璁$畻鏈虹郴緇熼兘鎻愪緵涓柇錛岀劧鑰屽湪x86緋葷粺涓紝瀹冪殑浣滅敤鏄笉鍙浛浠g殑銆?/p><p>涓柇瀹為檯涓婃槸涓綾葷壒孌婄殑瀛愮▼搴忋傚畠閫氬父鐢辯郴緇熻皟鐢紝浠ュ搷搴旂獊鍙戜簨浠躲?/p><p>渚嬪錛岃繘琛岀鐩樻搷浣滄椂錛屼負(fù)浜?jiǎn)鎻愰珮鎬ц兘錛屽彲鑳戒細(xì)浣跨敤DMA鏂瑰紡榪涜鎿嶄綔銆侰PU鍚慏MA鎺у埗鍣ㄥ彂鍑烘寚浠わ紝瑕佹眰澶栬鍜屽唴瀛樼洿鎺ヤ氦鎹㈡暟鎹紝鑰屼笉閫氳繃CPU銆傜劧鍚庯紝CPU杞幓榪涜璧蜂粬鐨勬搷浣滐紱褰撴暟鎹氦鎹㈢粨鏉熸椂錛孋PU鍙兘闇瑕佽繘琛屼竴浜涘悗緇搷浣滐紝浣嗘鏃跺畠濡備綍鎵嶈兘鐭ラ亾DMA宸茬粡瀹屾垚浜?jiǎn)鎿嶄綔鍛㈠Q?/p><p>寰堟樉鐒朵笉鏄緷闈燙PU鍘繪煡璇㈢姸鎬佲斺旇繖鏍稤MA鐨勪紭鍔垮氨涓嶆槑鏄句簡(jiǎn)銆備負(fù)浜?jiǎn)灏藉彲鑳藉湴鍒╃敤DMA鐨勪紭鍔匡紝鍦ㄥ畬鎴怐MA鎿嶄綔鐨勬椂鍊欙紝DMA浼?xì)鍛婅瘔CPU鈥滆繖浜嬪効鎴戝姙瀹屼簡(jiǎn)鈥濓紝鐒跺悗CPU浼?xì)鏍规嵁闇瑕佽繘琛屽鐞嗐?/p><p>榪欑澶勭悊鍙兘寰堝鏉傦紝闇瑕佽嫢騫叉潯鎸囦護(hù)鏉ュ畬鎴愩傚瓙紼嬪簭鏄竴涓笉閿欑殑涓繪剰錛屼笉榪囷紝CALL鎸囦護(hù)闇瑕佹寚瀹氬湴鍧錛岃澶栬寮鴻揩CPU鎵ц涓鏉ALL鎸囦護(hù)涔熻繚鑳屼簡(jiǎn)CPU浣滀負(fù)鏍稿績(jī)鎺у埗鍗曞厓鐨勮璁″垵琛楓傝冭檻鍒拌繖浜涳紝鍦▁86緋葷粺涓紩鍏ヤ簡(jiǎn)涓柇鍚戦噺鐨勬蹇點(diǎn)?/p><p>涓柇鍚戦噺琛ㄦ槸淇濆瓨鍦ㄧ郴緇熸暟鎹尯(瀹炴ā寮忎笅錛屾槸0:0寮濮嬬殑涓孌靛尯鍩?鐨勪竴緇勬寚閽堛傝繖緇勬寚閽堟寚鍚戞瘡涓涓腑鏂湇鍔$▼搴忕殑鍦板潃銆傛暣涓腑鏂悜閲忚〃鐨勭粨鏋勬槸涓涓嚎鎬ц〃銆?/p><p>姣忎竴涓腑鏂湇鍔℃湁鑷繁鐨勫敮涓鐨勭紪鍙鳳紝鎴戜滑閫氬父縐頒箣涓轟腑鏂彿銆傛瘡涓涓腑鏂彿瀵瑰簲涓柇鍚戦噺琛ㄤ腑鐨勪竴欏癸紝涔熷氨鏄竴涓腑鏂悜閲忋傚璁懼悜CPU鍙戝嚭涓柇璇鋒眰錛岃孋PU鑷繁灝嗘牴鎹綋鍓嶇殑紼嬪簭鐘舵佸喅瀹氭槸鍚︿腑鏂綋鍓嶇▼搴忓茍璋冪敤鐩稿簲鐨勪腑鏂湇鍔°?/p><p>涓嶉毦鏍規(guī)嵁閫犳垚涓柇鐨勫師鍥犲皢涓柇鍒嗕負(fù)涓ょ被錛氱‖浠朵腑鏂拰杞歡涓柇銆傜‖浠朵腑鏂湁寰堝鍒嗙被鏂規(guī)硶錛屽鏍規(guī)嵁鏄惁鍙互灞忚斀鍒嗙被銆佹牴鎹紭鍏堢駭楂樹(shù)綆鍒嗙被錛岀瓑絳夈傝冭檻鍒拌繖浜涘垎綾誨茍涓嶄竴瀹氱瀛︼紝騫朵笖瀵逛簬鎴戜滑浠嬬粛涓柇鐨勪嬌鐢ㄦ病鏈夊お澶х殑甯姪錛屽洜姝ゆ垜騫朵笉鎵撶畻澶緇嗗湴浠嬬粛瀹?鍦ㄦ湰鏁欑▼鐨勯珮綰х瘒涓紝鍏充簬鍔犲瘑瑙e瘑鐨勯儴鍒嗕細(xì)鎻愬埌鏌愪簺紜歡涓柇鐨勫埄鐢紝浣嗛偅鏄悗璇?銆?/p><p>鍦ㄨ璁℃搷浣滅郴緇熸椂錛屼腑鏂悜閲忕殑姒傚康鏇劇粡甯︽潵榪囧緢澶х殑渚垮埄銆傛搷浣滅郴緇熼殢鏃跺彲鑳藉崌綰э紝榪欐牱錛岄氳繃CALL鏉ヨ皟鐢ㄦ搷浣滅郴緇熺殑鏈嶅姟(濡傛灉璇存瘡涓▼搴忛兘鍖呭惈瀵逛簬鏂囦歡緋葷粺銆佽繘紼嬭〃榪欎簺搴旇鐢辨搷浣滅郴緇熺鐞嗙殑鏁版嵁鐨勭洿鎺ユ搷浣滅殑璇濓紝涓嶄粎浼?xì)閫犳垚紼嬪簭鐨勮噧鑲匡紝鑰屼笖涓嶅埄浜庣郴緇熺殑瀹夊叏)灝辨樉寰椾笉澶悎閫備簡(jiǎn)鈥斺旀病浜鴻兘鐭ラ亾錛屼互鍚庣殑鎿嶄綔緋葷粺鐨勬湇鍔$▼搴忓叆鍙g偣浼?xì)涓嶄細(xì)鏄偅鍎裤傝蔣浠朵腑鏂殑瀛樺湪涓鴻В鍐寵繖涓棶棰樻彁渚涗簡(jiǎn)鏂逛究銆?/p><p>瀵逛簬涓鍙板寘鍚簡(jiǎn)BIOS鐨勮綆楁満鏉ヨ錛屽惎鍔ㄧ殑鏃跺欑郴緇熷凡緇忔彁渚涗簡(jiǎn)涓閮ㄥ垎鏈嶅姟錛屼緥濡傛樉紺烘湇鍔°傛棤璁轟綘鐨凚IOS銆佹樉紺哄崱鏈夊涔堢殑鈥滀釜鎬р濓紝鍙浠栦滑鍜孖BM PC鍏煎錛岄偅涔堟鏃朵綘鑲畾鍙互閫氳繃璋冪敤16(10h)鍙蜂腑鏂潵浣跨敤鏄劇ず鏈嶅姟銆傝皟鐢ㄤ腑鏂殑鎸囦護(hù)鏄?/p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><p align="center"><br />int 涓柇鍙?br />聽(tīng)聽(tīng)</p></td></tr></tbody></table><p>榪欏皢寮曞彂CPU鍘昏皟鐢ㄤ竴涓腑鏂侰PU灝嗕繚瀛樺綋鍓嶇殑紼嬪簭鐘舵佸瓧錛屾竻闄rap鍜孖nterrupt涓や釜鏍囧織錛屽皢鍗沖皢鎵ц鐨勬寚浠ゅ湴鍧鍘嬪叆鍫嗘爤錛屽茍璋冪敤涓柇鏈嶅姟(鏍規(guī)嵁涓柇鍚戦噺琛?銆?/p><p>緙栧啓涓柇鏈嶅姟紼嬪簭涓嶆槸涓浠跺鏄撶殑浜嬫儏銆傚緢澶氭椂鍊欙紝涓柇鏈嶅姟紼嬪簭蹇呴』鍐欐垚<b>鍙噸鍏ヤ唬鐮?/b>(鎴栫函浠g爜錛宲ure code)銆傛墍璋撳彲閲嶅叆浠g爜鏄寚錛岀▼搴忕殑榪愯榪囩▼涓彲浠ヨ鎵撴柇錛屽茍鐢卞紑濮嬪鍐嶆鎵ц錛屽茍涓斿湪鍚堢悊鐨勮寖鍥村唴(澶氭閲嶅叆錛岃屼笉閫犳垚鍫嗘爤婧㈠嚭絳夊叾浠栭棶棰?錛岀▼搴忓彲浠ュ湪琚墦鏂緇х畫(huà)鎵ц錛屽茍涓旀墽琛岀粨鏋滀笉鍙楀獎(jiǎng)鍝嶃?/p><p>鐢變簬鍦ㄥ綰跨▼鐜涓瓑鍏朵粬涓浜涘湴鏂硅繘琛岀▼搴忚璁℃椂涔熼渶瑕佽冭檻榪欎釜鍥犵礌錛屽洜姝よ繖閲岀潃閲嶈涓涓嬪彲閲嶅叆浠g爜鐨勭紪鍐欍?/p><p>鍙噸鍏ヤ唬鐮佹渶涓昏鐨勮姹傚氨鏄紝紼嬪簭涓嶅簲浣跨敤鏌愪釜鎸囧畾鐨勫唴瀛樺湴鍧鐨勫唴瀛?瀵逛簬楂樼駭璇█鏉ヨ錛岃繖閫氬父鏄叏灞鍙橀噺錛屾垨瀵硅薄鐨勬垚鍛?銆傚鏋滃彲鑳界殑璇濓紝搴斾嬌鐢ㄥ瘎瀛樺櫒錛屾垨鍏朵粬鏂瑰紡鏉ヨВ鍐熾傚鏋滀笉鑳藉仛鍒拌繖涓鐐癸紝鍒欏繀欏誨湪寮濮嬨佺粨鏉熺殑鏃跺欏垎鍒姝㈠拰鍚敤涓柇錛屽茍涓旓紝榪愯鏃墮棿涓嶈兘澶暱銆?/p><p>涓嬮潰鐢–璇█鍒嗗埆涓句竴涓彲閲嶅叆鍑芥暟錛屽拰涓や釜闈炲彲閲嶅叆鍑芥暟鐨勪緥瀛?娉? 榪欎簺渚嬪瓙搴旇鏄湪鏌愭湰澶氱嚎紼嬫垨鎿嶄綔緋葷粺鐨勪功涓婄湅鍒扮殑錛岄仐鎲劇殑鏄垜鎯充笉璧鋒潵鏄摢鏈功浜?jiǎn)锛屽湪杩欓噷鍏堟劅璋㈤偅浣嶄綔鑰呮彁渚涚殑鑼冧緥)錛?/p><p>鍙噸鍏ュ嚱鏁幫細(xì)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#0000ff">void</font> strcpy(<font color="#0000ff">char</font>* lpszDest, <font color="#0000ff">char</font>* lpszSrc){<br />聽(tīng) <font color="#0000ff">while</font>(*dest++=*src++);<br />聽(tīng) *dest=0;<br />}</td></tr></tbody></table><p>闈炲彲閲嶅叆鍑芥暟</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#0000ff">char</font> cTemp;聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // 鍏ㄥ眬鍙橀噺</font><br /><br /><font color="#0000ff">void</font> SwapChar(<font color="#0000ff">char</font>* lpcX, <font color="#0000ff">char</font>* lpcY){<br />聽(tīng) cTemp = *lpcX; *lpcX = *lpcY; lpcY = cTemp; <font color="#008000">// 寮曠敤浜?jiǎn)鍏ㄥ眬鍙橀噺錛屽湪鍒嗕韓鍐呭瓨鐨勫涓嚎紼嬩腑鍙兘閫犳垚闂</font><br />}</td></tr></tbody></table><p>闈炲彲閲嶅叆鍑芥暟</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%"><font color="#0000ff">void</font> SwapChar2(<font color="#0000ff">char</font>* lpcX, <font color="#0000ff">char</font>* lpcY){<br /><font color="#0000ff">聽(tīng) static char</font> cTemp;聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) <font color="#008000">聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng)聽(tīng) // 闈?rùn)鎬佸彉閲?/font><br />聽(tīng) cTemp = *lpcX; *lpcX = *lpcY; lpcY = cTemp; <font color="#008000">// 寮曠敤浜?jiǎn)闈?rùn)鎬佸彉閲忥紝鍦ㄥ垎浜唴瀛樼殑澶氫釜綰跨▼涓彲鑳介犳垚闂</font><br />}</td></tr></tbody></table><p>涓柇鍒╃敤鐨勬槸緋葷粺鐨勬爤銆傛爤鎿嶄綔鏄彲閲嶅叆鐨?鍥犱負(fù)鏍堝彲浠ヤ繚璇佲滃厛榪涘悗鍑衡?錛屽洜姝わ紝鎴戜滑騫朵笉闇瑕佽冭檻鏍堟搷浣滅殑閲嶅叆闂銆備嬌鐢ㄥ畯姹囩紪鍣ㄥ啓鍑哄彲閲嶅叆鐨勬眹緙栦唬鐮侀渶瑕佹敞鎰忎竴浜涢棶棰樸傜畝鍗曞湴璇達(dá)紝騫茶剢涓嶈鐢ㄦ爣鍙蜂綔涓哄彉閲忔槸涓涓笉閿欑殑涓繪剰銆?/p><p>浣跨敤楂樼駭璇█緙栧啓鍙噸鍏ョ▼搴忕浉瀵規(guī)潵璁茶交鏉句竴浜涖傛妸鎸佷綇涓嶈闂偅浜涘叏灞(鎴栧綋鍓嶅璞$殑)鍙橀噺錛屼笉浣跨敤闈?rùn)鎬佸眬閮ㄥ彉閲忥紝鍧氭寔鍙傜敤灞閮ㄥ彉閲忥紝鍐欏嚭鐨勭▼搴忓氨灝嗘槸鍙噸鍏ョ殑銆?/p><p>涔﹀綊姝d紶錛岃皟鐢ㄨ蔣浠朵腑鏂椂錛岄氬父閮芥槸閫氳繃瀵勫瓨鍣ㄤ紶榪涖佷紶鍑哄弬鏁般傝繖鎰忓懗鐫浣犵殑int鎸囦護(hù)鍛ㄥ洿涔熻浼?xì)瀛樺湪涓浜涒滃府鎵嬧濓紝姣斿涓嬮潰鐨勪唬鐮侊細(xì)</p><table class="code" style="BORDER-COLLAPSE: collapse" bordercolor="#111111" cellspacing="0" cellpadding="0" width="100%" bgcolor="#e0e0e0" border="0"><tbody><tr><td width="100%">mov ax, 4c00h<br />int 21h</td></tr></tbody></table><p>灝辨槸閫氳繃璋冪敤DOS涓柇鏈嶅姟榪斿洖鐖惰繘紼嬶紝騫跺甫鍥為敊璇弽棣堢爜0銆傚叾涓紝ax涓殑鏁版嵁4c00h灝辨槸浼犻掔粰DOS涓柇鏈嶅姟鐨勫弬鏁般?/p><p>鍒拌繖閲岋紝x86姹囩紪璇█鐨勫熀紜閮ㄥ垎灝卞熀鏈笂璁插畬浜?jiǎn)锛屻婄畝鏄巟86姹囩紪璇█鏁欑▼銆嬬殑鍒濈駭綃団斺旀眹緙栬璦鍩虹涔熷氨鍒版鍛婁竴孌佃惤銆傚綋鐒?dòng)灱岀洰鍓嶄负姝㈠Q屾垜鍙槸铚昏湏鐐規(guī)按涓鑸彁鍒頒簡(jiǎn)涓浜涘涔?fàn)x86姹囩紪璇█涓垜璁や負(fù)闇瑕佹敞鎰忕殑閲嶈姒傚康銆傝澶氫笢瑗匡紝鍖呮嫭鍏ㄩ儴姹囩紪璇彞鐨勬椂搴忕壒鎬?鎸囦護(hù)鎵ц鍛ㄦ湡鏁幫紝浠ュ強(qiáng)鎸囦護(hù)鍛ㄦ湡涓悇涓樁孌電殑鑺傛媿鏁扮瓑)銆佸姛鑳姐佸弬鏁扮瓑絳夛紝闄愪簬涓漢姘村鉤鍜岀瘒騫呮垜閮芥病鏈変綔璇︾粏浠嬬粛銆傚鏋滄?zhèn)ㄥ杩欎簺鍐呭?guī)劅鍏磋叮錛岃鍙傝僆ntel鍜孉MD涓ゅぇCPU渚涘簲鍟嗙綉绔欎笂鎻愪緵鐨勫紑鍙戜漢鍛樺弬鑰冦?/p><p>鍦ㄤ互鍚庣殑綆鏄巟86姹囩紪璇█鏁欑▼涓駭綃囧拰楂樼駭綃囦腑錛屾垜灝嗙潃閲嶄粙緇嶆眹緙栬璦鐨勮皟璇曟妧鏈佷紭鍖栵紝浠ュ強(qiáng)涓浜涘叿浣撶殑搴旂敤鎶宸э紝鍖呮嫭鍙嶈窡韙佸弽鍙嶈窡韙佸姞瀵嗚В瀵嗐佺梾姣掍笌鍙嶇梾姣掔瓑絳夈?/p><img src ="http://www.shnenglu.com/ispfcn/aggbug/14719.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/ispfcn/" target="_blank">緙栫▼涔嬮亾</a> 2006-11-06 10:36 <a href="http://www.shnenglu.com/ispfcn/archive/2006/11/06/14719.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title> 綆鏄巟86姹囩紪璇█鏁欑▼錛堜簲錛?http://www.shnenglu.com/ispfcn/archive/2006/11/06/14718.html緙栫▼涔嬮亾緙栫▼涔嬮亾Mon, 06 Nov 2006 02:33:00 GMThttp://www.shnenglu.com/ispfcn/archive/2006/11/06/14718.htmlhttp://www.shnenglu.com/ispfcn/comments/14718.htmlhttp://www.shnenglu.com/ispfcn/archive/2006/11/06/14718.html#Feedback0http://www.shnenglu.com/ispfcn/comments/commentRss/14718.htmlhttp://www.shnenglu.com/ispfcn/services/trackbacks/14718.html

3.4 涓叉搷浣?/h3>

鎴戜滑鍓嶉潰宸茬粡鎻愬埌錛屽唴瀛樺彲浠ュ拰瀵勫瓨鍣ㄤ氦鎹㈡暟鎹紝涔熷彲浠ヨ璧嬩簣绔嬪嵆鏁般傞棶棰樻槸錛屽鏋滄垜浠渶瑕佹妸鍐呭瓨鐨勬煇閮ㄥ垎鍐呭澶嶅埗鍒板彟涓涓湴鍧錛屽張鎬庝箞鍋氬憿錛?/p>

璁炬兂灝咲S:SI澶勭殑榪炵畫(huà)512瀛楄妭鍐呭澶嶅埗鍒癊S:DI錛堝厛涓嶈冭檻鍙兘鐨勯噸鍙狅級(jí)銆備篃璁鎬細(xì)鏈変漢鍐欏嚭榪欐牱鐨勪唬鐮侊細(xì)


NextByte:
mov cx,512
mov al,ds:[si]
mov es:[di],al
inc si
inc di
loop NextByte
; 寰幆嬈℃暟

鎴戜笉鍠滄涓婇潰鐨勪唬鐮併傚畠鐨勭‘鑳借揪鍒頒綔鐢紝浣嗘槸錛屾晥鐜囦笉濂姐傚鏋滀綘鏄湪鍋氫紭鍖栵紝閭d箞鍐欏嚭榪欐牱鐨勪唬鐮佹剰鍛崇潃璧斾簡(jiǎn)澶漢鍙堟姌鍏點(diǎn)?/p>

Intel鐨凜PU鐨勫己欏規(guī)槸涓叉搷浣溿傛墍璋撲覆鎿嶄綔灝辨槸鐢盋PU鍘誨畬鎴愭煇涓鏁伴噺鐨勩侀噸澶嶇殑鍐呭瓨鎿嶄綔銆傞渶瑕佽鏄庣殑鏄紝鎴戜滑甯哥敤鐨凨MP綆楁硶錛堢敤浜庡尮閰嶅瓧絎︿覆涓殑妯″紡錛夌殑鏀硅繘鈥斺擝oyer綆楁硶錛岀敱浜庢病鏈夊埄鐢ㄤ覆鎿嶄綔錛屽洜姝ゅ湪Intel鐨凜PU涓婄殑鏁堢巼騫墮潪鏈浼樸傚ソ鐨勭紪璇戝櫒寰寰鍙互鍒╃敤Intel CPU鐨勮繖涓鐗規(guī)т紭鍖栦唬鐮侊紝鐒惰岋紝騫墮潪鎵鏈夌殑鏃跺欏畠閮借兘浜х敓鏈濂界殑浠g爜銆?/p>

鏌愪簺鎸囦護(hù)鍙互鍔犱笂REP鍓嶇紑錛坮epeat, 鍙嶅涔嬫剰錛夛紝榪欎簺鎸囦護(hù)閫氬父琚彨鍋氫覆鎿嶄綔鎸囦護(hù)銆?/p>

涓句緥鏉ヨ錛孲TOSD鎸囦護(hù)灝咵AX鐨勫唴瀹逛繚瀛樺埌ES:DI錛屽悓鏃跺湪DI涓婂姞鎴栧噺鍥涖傜被浼肩殑錛孲TOSB鍜孲TOSW鍒嗗埆浣?瀛楄妭鎴?瀛楃殑涓婅堪鎿嶄綔錛屽湪DI涓婂姞鎴栧噺鐨勬暟鏄?鎴?銆?/p>

璁$畻鏈鴻璦閫氬父鏄笉鍏佽浜屼箟鎬х殑銆備負(fù)浠涔堟垜瑕佽鈥滃姞鎴栧噺鈥濆憿錛熸病閿欙紝瀛ょ珛鍦扮湅STOS?鎸囦護(hù)錛屽茍涓嶈兘鐭ラ亾鍒板簳鏄姞榪樻槸鍑忥紝鍥犱負(fù)榪欏彇鍐充簬鈥滄柟鍚戔濇爣蹇?DF, Direction Flag)銆傚鏋淒F琚浣嶏紝鍒欏姞錛涘弽涔嬪垯鍑忋?/p>

緗綅銆佸浣嶇殑鎸囦護(hù)鍒嗗埆鏄疭TD鍜孋LD銆?/p>

褰撶劧錛孯EP鍙槸鍑犵鍙敤鍓嶇紑涔嬩竴銆傚父鐢ㄧ殑榪樺寘鎷琑EPNE錛岃繖涓墠緙閫氬父琚敤鏉ユ瘮杈冧袱涓覆錛屾垨鎼滅儲(chǔ)鏌愪釜鐗瑰畾瀛楃錛堝瓧銆佸弻瀛楋級(jí)銆俁EPZ銆丷EPE銆丷EPNZ涔熸槸闈炲父甯哥敤鐨勬寚浠ゅ墠緙錛屽垎鍒唬琛╖F(Zero Flag)鍦ㄤ笉鍚岀姸鎬佹椂閲嶅鎵ц銆?/p>

涓嬮潰璇翠笁涓彲浠ュ鍒舵暟鎹殑鎸囦護(hù)錛?/p>
鍔╄絎?/font>鎰忎箟
movsb灝咲S:SI鐨勪竴瀛楄妭澶嶅埗鍒癊S:DI錛屼箣鍚嶴I++銆丏I++
movsw灝咲S:SI鐨勪竴瀛楄妭澶嶅埗鍒癊S:DI錛屼箣鍚嶴I+=2銆丏I+=2
movsd灝咲S:SI鐨勪竴瀛楄妭澶嶅埗鍒癊S:DI錛屼箣鍚嶴I+=4銆丏I+=4

浜庢槸涓婇潰鐨勭▼搴忔敼鍐欎負(fù)

cld
mov cx, 128
rep movsd
; 澶嶄綅DF
; 512/4 = 128錛屽叡128涓弻瀛?br />; 琛屽姩錛?/font>

絎竴鍙ld寰堝鏃跺欐槸澶氫綑鐨勶紝鍥犱負(fù)瀹為檯鍐欑▼搴忔椂錛屽緢灝戜細(xì)鍑虹幇緗瓺F鐨勬儏鍐點(diǎn)備笉榪囧湪姝e紡鍐沖畾鍒犳帀瀹冧箣鍓嶏紝寤鴻浣犱粩緇嗗湴璋冭瘯鑷繁鐨勭▼搴忥紝騫剁‘璁ゆ瘡涓涓兘澶熻蛋鍒拌繖閲岀殑璺緞涓兘涓嶄細(xì)灝咲F緗綅銆?/p>

閿欒錛堥潪棰勬湡鐨勶級(jí)鐨凞F鏄嵄闄╃殑銆傚畠寰堝彲鑳芥柇閫佹帀浣犵殑紼嬪簭錛屽洜涓鴻繖鐩存帴閫犳垚緙撳啿鍖烘孩鍑?/b>闂銆?/p>

浠涔堟槸緙撳啿鍖烘孩鍑哄憿錛熺紦鍐插尯婧㈠嚭鍒嗕負(fù)涓ょ被錛屼竴綾繪槸鍐欏叆緙撳啿鍖轟互澶栫殑鍐呭錛屼竴綾繪槸璇誨彇緙撳啿鍖轟互澶栫殑鍐呭銆傚悗涓縐嶅線寰鏇撮殣钄斤紝浣嗛殢渚垮摢涓涓兘鏈夊彲鑳芥柇閫佹帀浣犵殑紼嬪簭銆?/p>

緙撳啿鍖烘孩鍑哄浜庝竴涓綉緇滄湇鍔℃潵璇村緢鍙兘鏇村姞鍗遍櫓銆傛鏈夋伓鎰忕殑鐢ㄦ埛鑳藉鍒╃敤瀹冩墽琛岃嚜宸卞笇鏈涚殑鎸囦護(hù)銆傛湇鍔¢氬父鎷ユ湁鏇撮珮鐨勭壒鏉冿紝鑰岃繖寰堝彲鑳戒細(xì)閫犳垚鐗規(guī)潈鎻愬崌錛涘嵆浣夸笉鑳芥彁鍗囨敾鍑昏呮嫢鏈夌殑鐗規(guī)潈錛屼粬涔熷彲浠ュ埄鐢ㄨ繖縐嶉棶棰樹(shù)嬌鏈嶅姟宕╂簝錛屼粠鑰屽艦鎴愪竴嬈℃垚鍔熺殑DoS錛堟嫆緇濇湇鍔★級(jí)鏀誨嚮銆傛瘡騫碈ERT鐨勫畨鍏ㄥ叕鍛婁腑錛岄兘鏈?鎴愬乏鍙崇殑闂鏄敱浜庣紦鍐插尯婧㈠嚭閫犳垚鐨勩?/p>

鍦ㄤ嬌鐢ㄦ眹緙栬璦錛屾垨C璇█緙栧啓紼嬪簭鏃訛紝寰堝鏄撳湪鏃犳剰涓紩鍏ョ紦鍐插尯婧㈠嚭銆傜劧鑰屽茍涓嶆槸鎵鏈夌殑璇█閮戒細(xì)寮曞叆緙撳啿鍖烘孩鍑洪棶棰橈紝Java鍜孋#錛岀敱浜庢病鏈夋寚閽堬紝騫朵笖緙撳啿鍖洪噰鍙栧姩鎬佸垎閰嶇殑鏂瑰紡錛屾湁鏁堝湴娑堥櫎浜?jiǎn)閫犳垚緙撳啿鍖烘孩鍑虹殑鍦熷¥銆?/p>

姹囩紪璇█涓紝鐢變簬REP*鍓嶇紑閮界敤CX浣滀負(fù)璁℃暟鍣紝鍥犳鎯呭喌浼?xì)濂戒竴浜涳紙褰撶劧錛屾湁鏃朵篃浼?xì)鏇淳p熺硶錛屽洜涓虹敱浜嶤X鐨勯檺鍒訛紝寰堝彲鑳戒嬌鍘熸湰鍙兘鏀瑰彉紼嬪簭琛屼負(fù)鐨勭紦鍐插尯婧㈠嚭鐨勮寖鍥寸緝?yōu)畯锛屼粠鑰屾洿涓洪殣钄斤級(jí)銆傞伩鍏嶇紦鍐插尯婧㈠嚭鐨勪竴涓富瑕佹柟娉曞氨鏄粩緇嗘鏌ワ紝榪欏寘鎷袱鏂歸潰錛氳緗悎鐞嗙殑緙撳啿鍖哄ぇ灝忥紝鍜屾牴鎹ぇ灝忕紪鍐欑▼搴忋傞櫎姝や箣澶栵紝闈炲父閲嶈鐨勪竴鐐瑰氨鏄紝鍦ㄦ眹緙栬璦榪欎釜綰у埆鍐欑▼搴忥紝浣犺偗瀹氬笇鏈涘幓鎺夋墍鏈夌殑鏃犵敤鎸囦護(hù)錛岀劧鑰屽啀鍘繪帀涔嬪墠錛屼竴瀹氳榪涜涓ユ牸鐨勬祴璇曪紱鏇磋繘涓姝ワ紝濡傛灉鑳藉姞涓婃敞閲婏紝騫墮氳繃鍠勭敤瀹忔潵鍋氳皟璇曟ā寮忔鏌ワ紝寰寰鑳藉杈懼埌鏇村ソ鐨勬晥鏋溿?/p>

3.5 鍏充簬淇濇姢妯″紡涓唴瀛樻搷浣滅殑涓鐐硅鏄?/h3>

姝e3.2鑺傛彁鍒板埌鐨勯偅鏍鳳紝淇濇姢妯″紡涓紝浣犲彲浠ヤ嬌鐢?2浣嶇殑綰挎у湴鍧錛岃繖鎰忓懗鐫鐩存帴璁塊棶4GB鐨勫唴瀛樸傜敱浜庤繖涓師鍥狅紝閫夋嫨鍣ㄤ笉鐢ㄥ儚瀹炴ā寮忎腑孌靛瘎瀛樺櫒閭f牱棰戠箒鍦頒慨鏀廣傞『渚挎彁涓鍙ワ紝榪欎喚鏁欑▼涓墍璇寸殑淇濇姢妯″紡鎸囩殑鏄?86浠ヤ笂鐨勪繚鎶ゆā寮忥紝鎴栬咃紝Microsoft閫氬父縐頒負(fù)鈥滃寮烘ā寮忊濈殑閭g銆?/p>

鍦ㄤ負(fù)閫夋嫨鍣ㄨ鍏ユ暟鍊肩殑鏃跺欎竴瀹氳闈炲父灝忓績(jī)銆傞敊璇殑鏁板煎線寰浼?xì)瀵艰嚧鏃犳晥椤甸潰閿欒?鍦╓indows涓粡甯稿嚭鐜?)銆傚悓鏃訛紝涔熶笉瑕佸繕璁頒綘鐨勫湴鍧鏄?2浣嶇殑錛岃繖涔熸槸淇濇姢妯″紡鐨勪富瑕佷紭鍔夸箣涓銆?/p>

鐜板湪鍋囪瀛樺湪涓涓弿榪扮鎻忚堪浠庣墿鐞嗙殑0:0寮濮嬬殑鍏ㄩ儴鍐呭瓨錛屽茍宸茬粡鍔犺澆榪汥S(鏁版嵁閫夋嫨鍣?錛屽垯鎴戜滑鍙互閫氳繃涓嬮潰鐨勭▼搴忔潵鎿嶄綔VGA鐨刅RAM錛?/p>
mov edi,0a0000h
mov byte ptr [edi],0fh
; VGA鏄懼瓨鐨勫亸縐婚噺
; 灝嗙涓瀛楄妭鏀逛負(fù)0fh

寰堟槑鏄撅紝榪欐瘮瀹炴ā寮忎笅鐨勭▼搴?/p>
mov ax,0a000h
mov ds,ax
mov di,0
mov [di],0fh
; AX -> VGA孌靛湴鍧
; 灝咥X鍊艱澆鍏S
; DI娓呴浂
; 淇敼絎竴瀛楄妭

鐪嬩笂鍘昏鑸掓湇涓浜涖?/p>

3.6 鍫嗘爤

鍒扮洰鍓嶄負(fù)姝紝鎮(zhèn)ㄥ凡緇忎簡(jiǎn)瑙d簡(jiǎn)鍩烘湰鐨勫瘎瀛樺櫒浠ュ強(qiáng)鍐呭瓨鐨勬搷浣滅煡璇嗐備簨瀹炰笂錛屾?zhèn)ㄧ幇鍦ㄥ凡缁忓彲浠ュ啓鍑哄緢澶氱殑搴曞眰鏁版嵁澶勭悊绋嬪簭浜?jiǎn)銆?/p>

涓嬮潰鎴戞潵璇磋鍫嗘爤銆傚爢鏍堝疄鍦ㄤ笉鏄竴涓浜洪檶鐢熺殑鏁版嵁緇撴瀯錛屽畠鏄竴涓?span class="tip" id="oFILO" title="">鍏堣繘鍚庡嚭(FILO)錛?b>鍏堣繘鍚庡嚭(FILO)鏄繖鏍蜂竴涓蹇碉細(xì)鏈鍚?/b>鏀捐繘琛ㄤ腑鐨勬暟鎹湪鍙栧嚭鏃?b>鏈鍏?/b>鍑烘潵銆?b>鍏堣繘鍚庡嚭(FILO)鍜?b>鍏堣繘鍏堝嚭(FIFO, 鍜屽厛榪涘悗鍑虹殑瑙勫垯鐩稿弽)錛屼互鍙?b>闅忔満瀛樺彇鏄渶涓昏鐨勪笁縐嶅瓨鍌ㄥ櫒璁塊棶鏂瑰紡銆傚浜庡爢鏍堣岃█錛屾渶鍚庢斁鍏ョ殑鏁版嵁鍦ㄥ彇鍑烘椂鏈鍏堝嚭鐜般傚浜庡瓙紼嬪簭璋冪敤錛岀壒鍒槸閫掑綊璋冪敤鏉ヨ錛岃繖鏄竴涓潪甯告湁鐢ㄧ殑鐗規(guī)с傦級(jí)鐨勭嚎鎬ц〃錛岃兘澶熷府鍔╀綘瀹屾垚寰堝寰堝ソ鐨勫伐浣溿?/p>

涓涓搧鏉嗙殑姹囩紪璇█紼嬪簭鍛樻湁鏃朵細(xì)鍙戠幇緋葷粺鎻愪緵鐨勫瘎瀛樺櫒涓嶅銆傚緢鏄劇劧錛屼綘鍙互浣跨敤鏅氱殑鍐呭瓨鎿嶄綔鏉ュ畬鎴愯繖涓伐浣滐紝灝卞儚C/C++涓墍鍋氱殑閭f牱銆?

娌¢敊錛屾病閿欙紝鍙槸錛屽鏋滄暟鎹錛堟暟鎹夋嫨鍣級(jí)浠ュ強(qiáng)鍋忕Щ閲忓彂鐢熷彉鍖栨庝箞鍔烇紵鏇磋繘涓姝ワ紝濡傛灉甯屾湜淇濆瓨鏌愪簺鍦ㄨ繖縐嶆搷浣滀腑鍙兘鍙楀埌褰卞搷鐨勫瘎瀛樺櫒鐨勬椂鍊欐庝箞鍔烇紵紜疄錛屼綘鍙互鎶婁粬浠篃瀛樺埌鑷繁鐨勯偅鐗囧唴瀛樹(shù)腑錛岃嚜宸卞疄鐜板爢鏍堛?/p>

澶夯鐑?chǔ)浜?jiǎn)鈥︹?/p>

鏃㈢劧緋葷粺鎻愪緵浜?jiǎn)鍫嗘爤锛岒q朵笖鎬ц兘姣旇嚜宸卞啓涓浠芥洿濂斤紝閭d箞涓轟粈涔堜笉鐩存帴鍔犱互鍒╃敤鍛紵

緋葷粺鍫嗘爤涓嶄粎浠呮槸涓孌靛唴瀛樸傜敱浜嶤PU瀵瑰畠瀹炴柦綆$悊錛屽洜姝や綘涓嶉渶瑕佽冭檻鍫嗘爤鎸囬拡鐨勪慨姝i棶棰樸傚彲浠ユ妸瀵勫瓨鍣ㄥ唴瀹癸紝鐢氳嚦涓涓珛鍗蟲(chóng)暟鐩存帴鏀懼埌鍫嗘爤閲岋紝騫跺湪闇瑕佺殑鏃跺欏皢鍏跺彇鍑恒傚悓鏃訛紝緋葷粺騫朵笉瑕佹眰鍙栧嚭鐨勬暟鎹粛鐒跺洖鍒板師鏉ョ殑浣嶇疆銆?/p>

闄や簡(jiǎn)鏄懼紡鍦版搷浣滃爢鏍堬紙浣跨敤PUSH鍜孭OP鎸囦護(hù)錛変箣澶栵紝寰堝鎸囦護(hù)涔熼渶瑕佷嬌鐢ㄥ爢鏍堬紝濡侷NT銆丆ALL銆丩EAVE銆丷ET銆丷ETF銆両RET絳夌瓑銆傞厤瀵逛嬌鐢ㄤ笂榪版寚浠ゅ茍涓嶄細(xì)閫犳垚浠涔堥棶棰橈紝鐒惰岋紝濡傛灉浣犳墦綆椾嬌鐢↙EAVE銆丷ET銆丷ETF銆両RET榪欐牱鐨勬寚浠ゅ疄鐜拌煩杞?姣擩MP鏇翠負(fù)楹葷儲(chǔ)錛岀劧鑰屾湁鏃訛紝渚嬪鍦ㄥ姞瀵嗚蔣浠朵腑錛屾垨鑰呴渶瑕佷慨鏀硅皟鐢ㄨ呯姸鎬佹椂錛岃繖鏄繀瑕佺殑)鐨勮瘽錛岄偅涔堟垜鐨勫緩璁槸錛屽厛鎼炴竻妤氬畠浠仛鐨勫埌搴曟槸浠涔堬紝騫朵笖錛岀簿紜湴浜?jiǎn)瑙h嚜宸辫鍋氫粈涔堛?/p>

姝e鍓嶉潰鎵璇寸殑錛屾湁涓や釜鏄懼紡鍦版搷浣滃爢鏍堢殑鎸囦護(hù)錛?/p>
鍔╄絎?/font>

鍔熻兘

PUSH灝嗘搷浣滄暟瀛樺叆鍫嗘爤錛屽悓鏃朵慨姝e爢鏍堟寚閽?/td>
POP灝嗘爤欏跺唴瀹瑰彇鍑哄茍瀛樺埌鐩殑鎿嶄綔鏁頒腑錛屽悓鏃朵慨姝e爢鏍堟寚閽?/td>

鎴戜滑鐜板湪鏉ョ湅鐪嬪爢鏍堢殑鎿嶄綔銆?/p>

鎵ц涔嬪墠

o_5_1.gif

鎵ц浠g爜

mov ax,1234h
mov bx,10
push ax
push bx

涔嬪悗錛屽爢鏍堢殑鐘舵佷負(fù)

o_5_2.gif

涔嬪悗錛屽啀鎵ц

pop dx
pop cx

鍫嗘爤鐨勭姸鎬佹垚涓?/p>

o_5_3.gif

褰撶劧錛宒x銆乧x涓殑鍐呭灝嗗垎鍒槸000ah鍜?234h銆?/p>

娉ㄦ剰錛屾渶鍚庤繖寮犲浘涓紝鎴戞病鏈夋姽鍘?234h鍜?00ah錛屽洜涓篜OP鎸囦護(hù)騫朵笉浠庡唴瀛樹(shù)腑鎶瑰幓鏁板箋備笉榪囧敖綆″姝わ紝鎴戜釜浜轟粛鐒墮潪甯稿弽瀵圭戶緇嬌鐢ㄨ繖涓や釜鏁幫紙浣犲彲浠ラ氳繃淇敼SP鏉ュ啀嬈OP瀹冧滑錛夛紝鐒惰岃繖寰堝鏄撳鑷撮敊璇?/p>

涓瀹氳淇濊瘉鍫嗘爤孌墊湁瓚沖鐨勭┖闂存潵鎵ц涓柇錛屼互鍙?qiáng)鍏朵粬涓浜涢殣寮忕殑鍫嗘爤鎿嶄綔銆備粎浠呯粺璁USH鐨勬暟閲忓茍鎹璁$畻鍫嗘爤鎵闇鐨勫ぇ灝忓緢鍙兘閫犳垚闂銆?/p>

CALL鎸囦護(hù)灝嗚繑鍥炲湴鍧鏀懼埌鍫嗘爤涓傜粷澶у鏁癈/C++緙栬瘧鍣ㄦ彁渚涗簡(jiǎn)鈥滃爢鏍堟鏌モ濊繖涓紪璇戦夐」錛屽叾浣滅敤鍦ㄤ簬淇濊瘉C紼嬪簭孌典腑娌℃湁蹇樿瀵瑰爢鏍堜腑澶氫綑鐨勬暟鎹繘琛屾竻鐞嗭紝浠庤屼繚璇佽繑鍥炲湴鍧鏈夋晥銆?/p>

鏈珷灝忕粨

鏈珷涓粙緇嶄簡(jiǎn)鍐呭瓨鐨勬搷浣滅殑涓浜涘叆闂ㄧ煡璇嗐傞檺浜庣瘒騫咃紝鎴戜笉鎵撶畻灞曞紑緇嗚鎸囦護(hù)錛屽cmps*錛宭ods*錛宻tos*錛岀瓑絳夈傝繖浜涙寚浠ょ殑鐢ㄦ硶鍜屽墠闈粙緇嶇殑movs*鍩烘湰涓鏍鳳紝鍙槸鏈変笉鍚岀殑浣滅敤鑰屽凡銆?/p>

]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久精品视频免费| 欧美中文在线免费| 91久久精品美女| aa亚洲婷婷| 久久精品成人| 久久久成人网| 国产精品日韩欧美| 亚洲免费观看在线观看| 久久久精品999| 亚洲视频精品在线| 欧美黑人在线播放| 怡红院精品视频| 欧美一区三区三区高中清蜜桃| 欧美国产丝袜视频| 性欧美在线看片a免费观看| 欧美日韩成人网| 亚洲国产成人久久综合一区| 午夜精品久久久久| 中文一区字幕| 欧美一二三区精品| 国产精品福利网站| 亚洲视频网站在线观看| 亚洲国产成人久久综合| 中文av字幕一区| 久久精品99久久香蕉国产色戒 | 亚洲成色精品| 免费观看国产成人| 久久精品视频在线| 亚洲性xxxx| 一区二区三区日韩欧美精品| 欧美日本国产一区| 亚洲一级片在线观看| 久久激情五月丁香伊人| 亚洲综合电影| 亚洲免费在线视频| 国产伦精品一区二区三区在线观看| 一个色综合av| 久久综合中文色婷婷| 亚洲欧洲精品一区二区精品久久久| 亚洲一区二区四区| 狠狠狠色丁香婷婷综合激情| 久久亚洲精品视频| 免费在线成人av| 一本色道久久综合狠狠躁篇的优点 | 西西人体一区二区| 亚洲免费视频中文字幕| 午夜精品久久久久久久久久久久 | 欧美高清不卡在线| 欧美三级午夜理伦三级中视频| 99精品视频一区| 亚洲一区二区三区高清| 妖精视频成人观看www| 欧美成人综合在线| 欧美影片第一页| 国产精品久久久久久久久免费樱桃| 欧美在线免费| 国产精品亚洲а∨天堂免在线| 这里只有精品在线播放| 亚洲综合社区| 国产精品大全| 亚洲最新色图| 亚洲国产精品久久久久秋霞影院 | 亚洲一区二区三区在线| 欧美日韩理论| 久久精品视频免费| 国产一区二区三区在线观看网站| 免费一级欧美在线大片| 伊人精品成人久久综合软件| 久久精品综合一区| 欧美激情黄色片| 欧美日韩国产另类不卡| 最新日韩av| 国产精品色在线| 亚洲影院免费| 久久精品91| 亚洲二区在线视频| 欧美精品18+| 男人的天堂亚洲| 欧美亚韩一区| 欧美成人激情视频免费观看| 亚洲国产精品久久精品怡红院 | 蘑菇福利视频一区播放| 亚洲精品自在在线观看| 国产精品xvideos88| 性欧美精品高清| 欧美丰满高潮xxxx喷水动漫| 亚洲精品一二区| 美国十次了思思久久精品导航| 欧美一区二区三区精品| 韩曰欧美视频免费观看| 欧美v日韩v国产v| 一区二区三区www| 久久久久久亚洲综合影院红桃 | 久久久天天操| 亚洲欧洲精品一区二区| 欧美日韩视频免费播放| 性做久久久久久久久| 欧美激情国产日韩精品一区18| 亚洲一卡久久| 伊人伊人伊人久久| 欧美偷拍另类| 久久久久国产精品一区三寸| 香蕉国产精品偷在线观看不卡| 欧美女同在线视频| 午夜精品短视频| 欧美a级一区| 性欧美在线看片a免费观看| 亚洲二区在线视频| 国产日韩在线看| 欧美一区二区在线免费播放| 亚洲国产精品久久久久| 亚洲精品综合| 国自产拍偷拍福利精品免费一| 欧美日本一区二区高清播放视频| 亚洲欧美中文在线视频| 亚洲精品自在久久| 亚洲一区二区四区| 亚洲激情偷拍| 欧美久久久久久久久久| 久久av二区| 浪潮色综合久久天堂| 一色屋精品亚洲香蕉网站| 欧美吻胸吃奶大尺度电影| 欧美成人tv| 久久免费视频网站| 欧美国产日韩一区二区| 久久久999精品免费| 亚洲免费中文| 亚洲手机视频| 99视频有精品| 亚洲人成网站影音先锋播放| 狠狠入ady亚洲精品| 国产麻豆精品视频| 国产精品每日更新| 欧美三区美女| 欧美日韩国产小视频| 欧美电影在线免费观看网站| 久久婷婷影院| 亚洲精品日韩激情在线电影| 欧美福利视频在线| 欧美高清自拍一区| 欧美成人午夜视频| 欧美激情精品久久久久久大尺度| 噜噜噜在线观看免费视频日韩| 久久久久久久一区| 美女黄毛**国产精品啪啪| 蜜桃av噜噜一区二区三区| 免费成年人欧美视频| 欧美91大片| 亚洲国产成人久久| 亚洲欧洲一区二区三区在线观看| 亚洲国产三级网| 亚洲人成网站777色婷婷| 亚洲制服欧美中文字幕中文字幕| 99re66热这里只有精品4| 99视频一区二区| 在线视频欧美精品| 国内精品视频在线播放| 欧美日韩1区2区3区| 欧美精品久久一区二区| 欧美理论片在线观看| 欧美性色综合| 国产精品影视天天线| 国产一级一区二区| 亚洲国产精品嫩草影院| 一本色道久久88精品综合| 亚洲欧美日韩视频一区| 久久av一区二区三区漫画| 久久久久欧美精品| 欧美激情视频一区二区三区不卡| 亚洲电影免费在线| 亚洲精品四区| 亚洲免费在线观看| 久久久久成人精品免费播放动漫| 美日韩精品免费| 欧美日韩国产小视频| 国产精品每日更新| 亚洲成人在线视频播放| 在线视频精品一| 久久久久久综合| 亚洲精品久久久久久一区二区| 一区二区动漫| 久久视频在线免费观看| 欧美日韩一区二区三区视频 | 亚洲娇小video精品| 亚洲一区二区三区免费观看| 久久久久国产一区二区| 欧美日韩午夜精品| 国产一区二区中文字幕免费看| 亚洲国产高潮在线观看| 欧美亚洲在线视频| 亚洲欧洲日韩女同| 久久不射网站| 欧美久久久久久久久久| 国产欧美日韩精品一区| 国产精品theporn88| 精品999久久久| 伊人成人开心激情综合网| 制服丝袜亚洲播放| 免费观看在线综合色|