锘??xml version="1.0" encoding="utf-8" standalone="yes"?>assume聽cs:code,ds:data
聽聽;鏁版嵁孌?br />
聽聽;----------------------------------------------
data聽segment
data聽ends
聽聽;浠g爜孌?br />
聽聽;----------------------------------------------
code聽segment聽聽聽聽
start:
聽聽;瀹夎do0瀛愮▼搴忓埌0:200h
聽聽;----------------------------------------------
聽聽mov聽ax,cs聽聽聽聽聽聽聽聽聽;孌靛瘎瀛樺櫒涔嬮棿涓嶅噯鐩存帴浼犻掓暟鎹?br />
聽聽mov聽ds,ax聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽mov聽si,offset聽do0
聽
聽聽mov聽ax,0
聽聽mov聽es,ax
聽聽mov聽di,200h
聽聽
聽聽;movsb灝哾s:si鎸囧悜鐨勫唴瀛樺崟鍏冧腑鐨勫瓧鑺傞佸叆es:di涓?br />
聽聽;if(DF==0){聽si++;di++}聽else{si--,di--}聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽mov聽cx,offset聽do0end-offset聽do0聽聽;璁劇疆澶嶅埗浠g爜鐨勯暱搴?br />
聽聽cld聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽;DF=0聽聽
聽聽rep聽movsb聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽;絳変環浜巜hile(cx--!=0)聽movsb;
聽聽
聽聽;璁劇疆涓柇紼嬪簭0鎸囧悜0:200h澶?br />
聽聽;--------------------------------
聽聽mov聽ax,0
聽聽mov聽es,ax
聽聽;涓柇鍚戦噺鍗犱袱涓瓧,楂樺瓧鍦板潃瀛樻斁孌靛湴鍧,浣庡瓧鍦板潃瀛樻斁鍋忕Щ鍦板潃
聽聽mov聽word聽ptr聽es:[0*4],200h
聽聽mov聽word聽ptr聽es:[0*4+2],0
聽聽
聽聽;璋冪敤0鍙蜂腑鏂?br />
聽聽;---------------------------------
聽聽int聽0
聽聽聽
聽聽;紼嬪簭榪斿洖dos
聽聽mov聽ax,4c00h
聽聽int聽21h
聽聽;do0瀛愮▼搴?鏄劇ず瀛楃涓?hello聽world!"
聽聽;----------------------------------
do0:
聽jmp聽short聽do0start
聽db聽"hello聽world!"
do0start:
聽mov聽ax,0b800h聽聽聽聽聽聽聽;0b800h鍦板潃涓烘樉瀛樺湴鍧
聽mov聽es,ax
聽mov聽di,12*160+36*2
聽
聽mov聽ax,cs
聽mov聽ds,ax
聽mov聽si,202h
聽mov聽cx,12
聽s:mov聽al,[si]
聽聽聽mov聽es:[di],al
聽聽聽inc聽si
聽聽聽add聽di,2
聽loop聽s
聽
聽mov聽ax,4c00h
聽int聽21h聽聽
do0end:nop
code聽ends
end聽start
MOV AL,050AH 錛涢潪娉曟寚浠わ細050Ah涓哄瓧錛岃孉L涓哄瓧鑺?br />瀵勫瓨鍣ㄦ湁鏄庣‘鐨勫瓧鑺傛垨瀛楃被鍨嬶紝鏈夊瘎瀛樺櫒鍙備笌鐨勬寚浠ゅ叾鎿嶄綔鏁扮被鍨嬪氨鏄瘎瀛樺櫒鐨勭被鍨嬨傚浜庡瓨鍌ㄥ櫒鍗曞厓涓庣珛鍗蟲暟鍚屾椂浣滀負鎿嶄綔鏁扮殑鎯呭喌錛屽繀欏繪樉寮忔寚鏄庛傜敤byte ptr鎸囩ず瀛楄妭綾誨瀷錛岀敤word ptr鎸囩ず瀛楃被鍨嬨?br />2. 涓や釜鎿嶄綔鏁頒笉鑳介兘鏄瓨鍌ㄥ櫒錛氫紶閫佹寚浠ゅ緢鐏墊椿錛屼絾涓誨瓨涔嬮棿鐨勭洿鎺ヤ紶閫佸嵈涓嶅厑璁?br />8086鎸囦護緋葷粺涓嶅厑璁鎬袱涓搷浣滄暟閮芥槸瀛樺偍鍗曞厓錛堥櫎涓叉搷浣滄寚浠わ級錛屾病鏈変富瀛樿嚦涓誨瓨鐨勬暟鎹紶閫併傝瀹炵幇榪欑浼犻侊紝鍙氳繃瀵勫瓨鍣ㄩ棿鎺ュ疄鐜般?br />3. 孌靛瘎瀛樺櫒鐨勬搷浣滄湁涓浜涢檺鍒訛細孌靛瘎瀛樺櫒灞炰笓鐢ㄥ瘎瀛樺櫒錛屽浠栦滑鐨勬搷浣滆兘鍔涙湁闄?br />涓嶅厑璁哥珛鍗蟲暟浼犻佺粰孌靛瘎瀛樺櫒錛屼緥濡傦細
MOV DS,100H 錛涢潪娉曟寚浠わ細绔嬪嵆鏁頒笉鑳戒紶閫佹瀵勫瓨鍣?br />涓嶈鐩存帴鏀瑰彉CS鍊鹼紝渚嬪錛?br />MOV CS,[SI] 錛涗笉鍏佽浣跨敤鐨勬寚浠?br />涓嶅厑璁告瀵勫瓨鍣ㄤ箣闂寸殑鐩存帴鏁版嵁浼犻侊紝渚嬪錛?br />MOV DS,ES 錛涢潪娉曟寚浠わ細涓嶅厑璁告瀵勫瓨鍣ㄩ棿浼犻?img src ="http://www.tkk7.com/xfan/aggbug/55235.html" width = "1" height = "1" />
1.R
1)鏌ョ湅褰撳墠鎵鏈夊瘎瀛樺櫒. r
2)鏀瑰彉瀵勫瓨鍣ㄧ殑鍊?/SPAN>. r ax脿杈撳叆鏁版嵁
2.D
1)鏌ョ湅鍐呭瓨鐨勫?/SPAN>. d 孌靛湴鍧:鍋忕Щ鍦板潃 鎴?/SPAN> d(鏄劇ず緙虹渷鍦板潃)
3.E
1)鏀瑰啓鍐呭瓨鐨勫?/SPAN>. e孌靛湴鍧:鍋忕Щ鍦板潃脿鍥炶濺脿杈撳叆鏁版嵁(鏁板兼垨瀛楃)
e孌靛湴鍧:鍋忕Щ鍦板潃 鏁版嵁(鏁板兼垨瀛楃涓?/SPAN>)脿鍥炶濺
4.U
1)鏌ョ湅鏈哄櫒鐮佺殑姹囩紪鎸囦護. u 孌靛湴鍧:鍋忕Щ鍦板潃
5.T
1)鎵ц鎸囦護. t(浠?/SPAN>CS:IP澶勬墽琛屾寚浠?/SPAN>)
6.A
1)浠ユ眹緙栨寚浠ゅ艦寮忓湪鍐呭瓨涓啓鍏ユ満鍣ㄧ爜. a 孌靛湴鍧:鍋忕Щ鍦板潃脿鍥炶濺脿杈撳叆姹囩紪紼嬪簭
鍦ㄥ涔?/SPAN>80x86鏃訛紝緇冧範姹囩紪鎸囦護鐨勭敤娉曟帹鑽愮敤emu8086.澶嶆潅姹囩紪紼嬪簭鎺ㄨ崘鐢?/SPAN>radasm2.208
cao_chong姹夊寲鐗?/SPAN>(鑷甫masm32,ollyDBG).1.璁$畻鏈烘渶灝忕殑鍌ㄥ瓨鍗曚綅涓哄瓧鑺?/SPAN>(byte),緙╁啓涓?/SPAN>B銆?/SPAN>
1B=8b(bit),1KB=1024B,1MB=1024KB,1GB=1024MB
2.姣忎釜CPU鑺墖閮芥湁璁稿綆¤剼錛岃繖浜涚鑴氬拰鎬葷嚎鐩歌繛銆?/SPAN>CPU鏈変互涓嬩笁縐嶆葷嚎錛?/SPAN>(鏍囧織CPU鐨勪笉鍚屾柟闈㈢殑鎬ц兘)
1)鍦板潃鎬葷嚎錛氬畠鐨勫搴﹀喅瀹氫簡CPU鐨勫鍧鑳藉姏銆?/SPAN>
2)鏁版嵁鎬葷嚎錛氬畠鐨勫搴﹀喅瀹氫簡CPU涓庡叾浠栧櫒浠惰繘琛屾暟鎹紶閫佹椂鐨勪竴嬈℃暟鎹紶閫侀噺銆?/SPAN>
3)鎺у埗鎬葷嚎錛氬畠鐨勫搴﹀喅瀹氫簡CPU瀵圭郴緇熶腑鍏朵粬鍣ㄤ歡鐨勬帶鍒惰兘鍔涖?/SPAN>
3.涓涓?/SPAN>CPU鐨勫鍧鑳藉姏涓?/SPAN>8KB錛岄偅涔堝畠鐨勫湴鍧鎬葷嚎鐨勫搴︿負13銆?/SPAN>
4.涓繪澘鏈変互涓嬪櫒浠剁粍鎴?/SPAN>:CPU,瀛樺偍鍣?/SPAN>,澶栧洿鑺墖緇?/SPAN>,鎵╁睍鎻掓Ы(鎻掓湁RAM鍐呭瓨鏉″拰鍚勭被鎺ュ彛鍗?/SPAN>)銆?/SPAN>
5.CPU鍙互瀵誨潃鐨勫唴瀛樼┖闂存湁浠ヤ笅鍑犵瀛樺偍鍣ㄧ粍鎴愶細
榪欎笁綾葷粍鎴愪竴涓昏緫瀛樺偍鍣?/SPAN>,涔熷氨鏄唴瀛樼殑鍦板潃絀洪棿銆?/SPAN>
1)闅忔満瀛樺偍鍣細鐢ㄤ簬瀛樻斁渚?/SPAN>CPU浣跨敤鐨勭粷澶ч儴鍒嗙▼搴忓拰鏁版嵁錛屼富闅忔満瀛樺偍鍣ㄤ竴鑸敱涓や釜浣嶇疆涓婄殑RAM緇勬垚錛岃鍦ㄤ富鏉夸笂鐨?/SPAN>RAM鍜屾彃鍦ㄦ墿灞曟彃妲戒笂鐨?/SPAN>RAM(鍗沖唴瀛樻潯)銆?/SPAN>
2)瑁呮湁BIOS鐨?/SPAN>ROM錛?/SPAN>BIOS鏄湁涓繪澘鍜屽悇綾繪帴鍙e崱(濡?/SPAN>:鏄懼崱錛岀綉鍗$瓑)鍘傚晢鎻愪緵鐨勮蔣浠剁郴緇燂紝鍙互閫氳繃瀹冨埄鐢ㄨ璁懼榪涜鏈鍩烘湰鐨勮緭鍏ヨ緭鍑恒傚湪涓繪澘鍜屾煇浜涙帴鍙e崱涓婃彃鏈夊偍瀛樼浉搴?/SPAN>BIOS鐨?/SPAN>ROM銆?/SPAN>
3)鎺ュ彛鍗′笂鐨?/SPAN>RAM錛氭煇浜涙帴鍙e崱闇瑕佸澶ф壒閲忚緭鍏ワ紝杈撳嚭鏁版嵁榪涜鏆傛椂瀛樺偍錛屽湪鍏朵笂瑁呮湁RAM銆傛渶鍏稿瀷鐨勬槸鏄劇ず鍗′笂鐨?/SPAN>RAM錛屼竴鑸О涓烘樉瀛樸傚綋鎴戜滑灝嗛渶瑕佹樉紺虹殑鍐呭鍐欏叆鏄懼瓨錛屽氨浼氬嚭鐜板湪鏄劇ず鍣ㄤ笂銆?/SPAN>
6.8086PC鍐呭瓨鍦板潃絀洪棿鍒嗛厤
00000錛?/SPAN>9FFFF涓誨瓨鍌ㄥ櫒鍦板潃絀洪棿(RAM)
A0000錛?/SPAN>BFFFF鏄懼瓨鍦板潃絀洪棿
C0000錛?/SPAN>FFFFF鍚勭被ROM鍦板潃絀洪棿
浜屻佸瘎瀛樺櫒(CPU宸ヤ綔鍘熺悊)
1.CPU鏈夎繍綆楀櫒銆佹帶鍒跺櫒銆佸瘎瀛樺櫒絳夊櫒浠舵瀯鎴愩傝繖浜涘櫒浠墮潬鍐呴儴鎬葷嚎鐩歌繛銆?/SPAN>
2.8086CPU鏈?/SPAN>14涓?/SPAN>(16浣嶇殑瀵勫瓨鍣?/SPAN>):
鏅氬瘎瀛樺櫒:AX,BX,CX,DX
孌靛瘎瀛樺櫒:CS,SS,DS,ES
鎸囬拡瀵勫瓨鍣?/SPAN>:IP
鍏朵粬瀵勫瓨鍣?/SPAN>:SI,DI,SP,BP,PSW.
鍏朵腑AX,BX,CX,DX鍒嗕負*H鍜?/SPAN>*L(*鍒嗗埆涓?/SPAN>A,B,C,D).AX=1234H錛屽垯AH:12H,AL:34H
3.al浣滀負涓涓嫭绔嬬殑瀵勫瓨鍣ㄦ潵鐢ㄦ椂錛屽拰ah娌″叧緋?/SPAN>.al鍗曠嫭榪愮畻鏃朵駭鐢熺殑榪涗綅涓嶄細淇濆瓨鍒?/SPAN>ah涓?/SPAN>.
4.鍥犱負8086CPU涓?/SPAN>16浣嶇粨鏋勭殑錛屽嵆涓嬈℃у鐞嗐佷紶杈撱佹殏鏃跺瓨鍌ㄧ殑淇℃伅鐨勬渶澶ч暱搴︿負16浣?/SPAN>,浣嗗湴鍧鎬葷嚎涓?/SPAN>20浣嶏紝鎵鏈夊氨鐢ㄤ袱涓?/SPAN>16浣嶇殑鍦板潃鍚堟垚涓涓?/SPAN>20浣嶇殑鐗╃悊鍦板潃.
鍏紡:鐗╃悊鍦板潃=孌靛湴鍧(SA)*10H+鍋忕Щ鍦板潃(EA).
孌靛湴鍧涓?/SPAN>0001H,瀵誨潃絀洪棿涓?/SPAN>00010H---1000FH.(鍔?/SPAN>FFFFH)
5.涓涓鐨勬渶澶ч暱搴︿負64K銆?/SPAN>
6. 8086CPU宸ヤ綔榪囩▼
1)浠?/SPAN>CS:IP鎸囧悜鐨勫唴瀛樺崟鍏冭鍙栨寚浠わ紝璇誨彇寰楁寚浠よ繘鍏ユ寚浠ょ紦鍐插櫒銆?/SPAN>
2)IP=IP+鎵璇誨彇鎸囦護鐨勯暱搴︼紝浠庤屾寚鍚戜笅涓鏉℃寚浠ゃ?/SPAN>
3)鎵ц鎸囦護銆傝漿鍒版楠?/SPAN>1,閲嶅榪欎釜榪囩▼銆?/SPAN>