绠鏄巟86姹囩紪璇█鏁欑▼(5)
鍙戝竷: 2008-6-26 22:45 | 浣滆: admin | 鏌ョ湅: 5娆
绠鏄巟86姹囩紪璇█鏁欑▼(5)锛3.4 涓叉搷浣
鎴戜滑鍓嶉潰宸茬粡鎻愬埌锛屽唴瀛樺彲浠ュ拰瀵勫瓨鍣ㄤ氦鎹㈡暟鎹紝涔熷彲浠ヨ璧嬩簣绔嬪嵆鏁般傞棶棰樻槸锛屽鏋滄垜浠渶瑕佹妸鍐呭瓨鐨勬煇閮ㄥ垎鍐呭澶嶅埗鍒板彟涓涓湴鍧锛屽張鎬庝箞鍋氬憿锛
璁炬兂灏咲S:SI澶勭殑杩炵画512瀛楄妭鍐呭澶嶅埗鍒癊S:DI锛堝厛涓嶈冭檻鍙兘鐨勯噸鍙狅級銆備篃璁镐細鏈変汉鍐欏嚭杩欐牱鐨勪唬鐮侊細
NextByte: mov cx,512
mov al,ds:[si]
mov es:[di],al
inc si
inc di
loop NextByte ; 寰幆娆℃暟
鎴戜笉鍠滄涓婇潰鐨勪唬鐮併傚畠鐨勭‘鑳借揪鍒颁綔鐢紝浣嗘槸锛屾晥鐜囦笉濂姐傚鏋滀綘鏄湪鍋氫紭鍖栵紝閭d箞鍐欏嚭杩欐牱鐨勪唬鐮佹剰鍛崇潃璧斾簡澶汉鍙堟姌鍏点
Intel鐨凜PU鐨勫己椤规槸涓叉搷浣溿傛墍璋撲覆鎿嶄綔灏辨槸鐢盋PU鍘诲畬鎴愭煇涓鏁伴噺鐨勩侀噸澶嶇殑鍐呭瓨鎿嶄綔銆傞渶瑕佽鏄庣殑鏄紝鎴戜滑甯哥敤鐨凨MP绠楁硶锛堢敤浜庡尮閰嶅瓧绗︿覆涓殑妯″紡锛夌殑鏀硅繘鈥曗旴oyer绠楁硶锛岀敱浜庢病鏈夊埄鐢ㄤ覆鎿嶄綔锛屽洜姝ゅ湪Intel鐨凜PU涓婄殑鏁堢巼骞堕潪鏈浼樸傚ソ鐨勭紪璇戝櫒寰寰鍙互鍒╃敤Intel CPU鐨勮繖涓鐗规т紭鍖栦唬鐮侊紝鐒惰岋紝骞堕潪鎵鏈夌殑鏃跺欏畠閮借兘浜х敓鏈濂界殑浠g爜銆
鏌愪簺鎸囦护鍙互鍔犱笂REP鍓嶇紑锛坮epeat, 鍙嶅涔嬫剰锛夛紝杩欎簺鎸囦护閫氬父琚彨鍋氫覆鎿嶄綔鎸囦护銆
涓句緥鏉ヨ锛孲TOSD鎸囦护灏咵AX鐨勫唴瀹逛繚瀛樺埌ES:DI锛屽悓鏃跺湪DI涓婂姞鎴栧噺鍥涖傜被浼肩殑锛孲TOSB鍜孲TOSW鍒嗗埆浣1瀛楄妭鎴1瀛楃殑涓婅堪鎿嶄綔锛屽湪DI涓婂姞鎴栧噺鐨勬暟鏄1鎴2銆
璁$畻鏈鸿瑷閫氬父鏄笉鍏佽浜屼箟鎬х殑銆備负浠涔堟垜瑕佽鈥滃姞鎴栧噺鈥濆憿锛熸病閿欙紝瀛ょ珛鍦扮湅STOS?鎸囦护锛屽苟涓嶈兘鐭ラ亾鍒板簳鏄姞杩樻槸鍑忥紝鍥犱负杩欏彇鍐充簬鈥滄柟鍚戔濇爣蹇(DF, Direction Flag)銆傚鏋淒F琚浣嶏紝鍒欏姞锛涘弽涔嬪垯鍑忋
缃綅銆佸浣嶇殑鎸囦护鍒嗗埆鏄疭TD鍜孋LD銆
褰撶劧锛孯EP鍙槸鍑犵鍙敤鍓嶇紑涔嬩竴銆傚父鐢ㄧ殑杩樺寘鎷琑EPNE锛岃繖涓墠缂閫氬父琚敤鏉ユ瘮杈冧袱涓覆锛屾垨鎼滅储鏌愪釜鐗瑰畾瀛楃锛堝瓧銆佸弻瀛楋級銆俁EPZ銆丷EPE銆丷EPNZ涔熸槸闈炲父甯哥敤鐨勬寚浠ゅ墠缂锛屽垎鍒唬琛╖F(Zero Flag)鍦ㄤ笉鍚岀姸鎬佹椂閲嶅鎵ц銆
涓嬮潰璇翠笁涓彲浠ュ鍒舵暟鎹殑鎸囦护锛 鍔╄绗 鎰忎箟 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
浜庢槸涓婇潰鐨勭▼搴忔敼鍐欎负 cld
mov cx, 128
rep movsd ; 澶嶄綅DF
; 512/4 = 128锛屽叡128涓弻瀛
; 琛屽姩锛
绗竴鍙ld寰堝鏃跺欐槸澶氫綑鐨勶紝鍥犱负瀹為檯鍐欑▼搴忔椂锛屽緢灏戜細鍑虹幇缃瓺F鐨勬儏鍐点備笉杩囧湪姝e紡鍐冲畾鍒犳帀瀹冧箣鍓嶏紝寤鸿浣犱粩缁嗗湴璋冭瘯鑷繁鐨勭▼搴忥紝骞剁‘璁ゆ瘡涓涓兘澶熻蛋鍒拌繖閲岀殑璺緞涓兘涓嶄細灏咲F缃綅銆
閿欒锛堥潪棰勬湡鐨勶級鐨凞F鏄嵄闄╃殑銆傚畠寰堝彲鑳芥柇閫佹帀浣犵殑绋嬪簭锛屽洜涓鸿繖鐩存帴閫犳垚 缂撳啿鍖烘孩鍑 闂銆
浠涔堟槸缂撳啿鍖烘孩鍑哄憿锛熺紦鍐插尯婧㈠嚭鍒嗕负涓ょ被锛屼竴绫绘槸鍐欏叆缂撳啿鍖轰互澶栫殑鍐呭锛屼竴绫绘槸璇诲彇缂撳啿鍖轰互澶栫殑鍐呭銆傚悗涓绉嶅線寰鏇撮殣钄斤紝浣嗛殢渚垮摢涓涓兘鏈夊彲鑳芥柇閫佹帀浣犵殑绋嬪簭銆
缂撳啿鍖烘孩鍑哄浜庝竴涓綉缁滄湇鍔℃潵璇村緢鍙兘鏇村姞鍗遍櫓銆傛鏈夋伓鎰忕殑鐢ㄦ埛鑳藉鍒╃敤瀹冩墽琛岃嚜宸卞笇鏈涚殑鎸囦护銆傛湇鍔¢氬父鎷ユ湁鏇撮珮鐨勭壒鏉冿紝鑰岃繖寰堝彲鑳戒細閫犳垚鐗规潈鎻愬崌锛涘嵆浣夸笉鑳芥彁鍗囨敾鍑昏呮嫢鏈夌殑鐗规潈锛屼粬涔熷彲浠ュ埄鐢ㄨ繖绉嶉棶棰樹娇鏈嶅姟宕╂簝锛屼粠鑰屽舰鎴愪竴娆℃垚鍔熺殑DoS锛堟嫆缁濇湇鍔★級鏀诲嚮銆傛瘡骞碈ERT鐨勫畨鍏ㄥ叕鍛婁腑锛岄兘鏈6鎴愬乏鍙崇殑闂鏄敱浜庣紦鍐插尯婧㈠嚭閫犳垚鐨勩
鍦ㄤ娇鐢ㄦ眹缂栬瑷锛屾垨C璇█缂栧啓绋嬪簭鏃讹紝寰堝鏄撳湪鏃犳剰涓紩鍏ョ紦鍐插尯婧㈠嚭銆傜劧鑰屽苟涓嶆槸鎵鏈夌殑璇█閮戒細寮曞叆缂撳啿鍖烘孩鍑洪棶棰橈紝Java鍜孋#锛岀敱浜庢病鏈夋寚閽堬紝骞朵笖缂撳啿鍖洪噰鍙栧姩鎬佸垎閰嶇殑鏂瑰紡锛屾湁鏁堝湴娑堥櫎浜嗛犳垚缂撳啿鍖烘孩鍑虹殑鍦熷¥銆
姹囩紪璇█涓紝鐢变簬REP*鍓嶇紑閮界敤CX浣滀负璁℃暟鍣紝鍥犳鎯呭喌浼氬ソ涓浜涳紙褰撶劧锛屾湁鏃朵篃浼氭洿绯熺硶锛屽洜涓虹敱浜嶤X鐨勯檺鍒讹紝寰堝彲鑳戒娇鍘熸湰鍙兘鏀瑰彉绋嬪簭琛屼负鐨勭紦鍐插尯婧㈠嚭鐨勮寖鍥寸缉灏忥紝浠庤屾洿涓洪殣钄斤級銆傞伩鍏嶇紦鍐插尯婧㈠嚭鐨勪竴涓富瑕佹柟娉曞氨鏄粩缁嗘鏌ワ紝杩欏寘鎷袱鏂归潰锛氳缃悎鐞嗙殑缂撳啿鍖哄ぇ灏忥紝鍜屾牴鎹ぇ灏忕紪鍐欑▼搴忋傞櫎姝や箣澶栵紝闈炲父閲嶈鐨勪竴鐐瑰氨鏄紝鍦ㄦ眹缂栬瑷杩欎釜绾у埆鍐欑▼搴忥紝浣犺偗瀹氬笇鏈涘幓鎺夋墍鏈夌殑鏃犵敤鎸囦护锛岀劧鑰屽啀鍘绘帀涔嬪墠锛屼竴瀹氳杩涜涓ユ牸鐨勬祴璇曪紱鏇磋繘涓姝ワ紝濡傛灉鑳藉姞涓婃敞閲婏紝骞堕氳繃鍠勭敤瀹忔潵鍋氳皟璇曟ā寮忔鏌ワ紝寰寰鑳藉杈惧埌鏇村ソ鐨勬晥鏋溿 3.5 鍏充簬淇濇姢妯″紡涓唴瀛樻搷浣滅殑涓鐐硅鏄
姝e3.2鑺傛彁鍒板埌鐨勯偅鏍凤紝淇濇姢妯″紡涓紝浣犲彲浠ヤ娇鐢32浣嶇殑绾挎у湴鍧锛岃繖鎰忓懗鐫鐩存帴璁块棶4GB鐨勫唴瀛樸傜敱浜庤繖涓師鍥狅紝閫夋嫨鍣ㄤ笉鐢ㄥ儚瀹炴ā寮忎腑娈靛瘎瀛樺櫒閭f牱棰戠箒鍦颁慨鏀广傞『渚挎彁涓鍙ワ紝杩欎唤鏁欑▼涓墍璇寸殑淇濇姢妯″紡鎸囩殑鏄386浠ヤ笂鐨勪繚鎶ゆā寮忥紝鎴栬咃紝Microsoft閫氬父绉颁负鈥滃寮烘ā寮忊濈殑閭g銆
鍦ㄤ负閫夋嫨鍣ㄨ鍏ユ暟鍊肩殑鏃跺欎竴瀹氳闈炲父灏忓績銆傞敊璇殑鏁板煎線寰浼氬鑷存棤鏁堥〉闈㈤敊璇(鍦╓indows涓粡甯稿嚭鐜:)銆傚悓鏃讹紝涔熶笉瑕佸繕璁颁綘鐨勫湴鍧鏄32浣嶇殑锛岃繖涔熸槸淇濇姢妯″紡鐨勪富瑕佷紭鍔夸箣涓銆
鐜板湪鍋囪瀛樺湪涓涓弿杩扮鎻忚堪浠庣墿鐞嗙殑0:0寮濮嬬殑鍏ㄩ儴鍐呭瓨锛屽苟宸茬粡鍔犺浇杩汥S(鏁版嵁閫夋嫨鍣)锛屽垯鎴戜滑鍙互閫氳繃涓嬮潰鐨勭▼搴忔潵鎿嶄綔VGA鐨刅RAM锛 mov edi,0a0000h
mov byte ptr [edi],0fh ; VGA鏄惧瓨鐨勫亸绉婚噺
; 灏嗙涓瀛楄妭鏀逛负0fh
寰堟槑鏄撅紝杩欐瘮瀹炴ā寮忎笅鐨勭▼搴 mov ax,0a000h
mov ds,ax
mov di,0
mov [di],0fh ; AX -> VGA娈靛湴鍧
; 灏咥X鍊艰浇鍏S
; DI娓呴浂
; 淇敼绗竴瀛楄妭
鐪嬩笂鍘昏鑸掓湇涓浜涖 3.6 鍫嗘爤
鍒扮洰鍓嶄负姝紝鎮ㄥ凡缁忎簡瑙d簡鍩烘湰鐨勫瘎瀛樺櫒浠ュ強鍐呭瓨鐨勬搷浣滅煡璇嗐備簨瀹炰笂锛屾偍鐜板湪宸茬粡鍙互鍐欏嚭寰堝鐨勫簳灞傛暟鎹鐞嗙▼搴忎簡銆
涓嬮潰鎴戞潵璇磋鍫嗘爤銆傚爢鏍堝疄鍦ㄤ笉鏄竴涓浜洪檶鐢熺殑鏁版嵁缁撴瀯锛屽畠鏄竴涓 鍏堣繘鍚庡嚭 (FILO)鐨勭嚎鎬ц〃锛岃兘澶熷府鍔╀綘瀹屾垚寰堝寰堝ソ鐨勫伐浣溿
鍏堣繘鍚庡嚭 (FILO)鏄繖鏍蜂竴涓蹇碉細 鏈鍚 鏀捐繘琛ㄤ腑
鐨勬暟鎹湪鍙栧嚭鏃 鏈鍏 鍑烘潵銆 鍏堣繘鍚庡嚭 (FILO)鍜 鍏
杩涘厛鍑 (FIFO, 鍜屽厛杩涘悗鍑虹殑瑙勫垯鐩稿弽)锛屼互鍙 闅
鏈哄瓨鍙 鏄渶涓昏鐨勪笁绉嶅瓨鍌ㄥ櫒璁块棶鏂瑰紡銆
瀵逛簬鍫嗘爤鑰岃█锛屾渶鍚庢斁鍏ョ殑鏁版嵁鍦ㄥ彇鍑烘椂鏈鍏堝嚭
鐜般傚浜庡瓙绋嬪簭璋冪敤锛岀壒鍒槸閫掑綊璋冪敤鏉ヨ锛岃繖
鏄竴涓潪甯告湁鐢ㄧ殑鐗规с




发表于 2009-1-5 19:48
| 











