![第3章-2數(shù)據(jù)傳送指令教材_第1頁](http://file4.renrendoc.com/view12/M00/05/06/wKhkGWX7YJqAcJnjAAECXYL2KYc262.jpg)
![第3章-2數(shù)據(jù)傳送指令教材_第2頁](http://file4.renrendoc.com/view12/M00/05/06/wKhkGWX7YJqAcJnjAAECXYL2KYc2622.jpg)
![第3章-2數(shù)據(jù)傳送指令教材_第3頁](http://file4.renrendoc.com/view12/M00/05/06/wKhkGWX7YJqAcJnjAAECXYL2KYc2623.jpg)
![第3章-2數(shù)據(jù)傳送指令教材_第4頁](http://file4.renrendoc.com/view12/M00/05/06/wKhkGWX7YJqAcJnjAAECXYL2KYc2624.jpg)
![第3章-2數(shù)據(jù)傳送指令教材_第5頁](http://file4.renrendoc.com/view12/M00/05/06/wKhkGWX7YJqAcJnjAAECXYL2KYc2625.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
80X86的尋址方式和指令系統(tǒng)
之
數(shù)據(jù)傳送類指令2024/3/2113.38086/8088指令系統(tǒng)8086/8088的指令系統(tǒng)可分為以下6類(功能組) 3.3.1 數(shù)據(jù)傳送類指令
3.3.2 算術(shù)運算類指令
3.3.3 邏輯運算與位移
3.3.4 串操作指令
3.3.5 控制轉(zhuǎn)移指令
3.3.6 處理器的控制類指令
2024/3/2123.3.1數(shù)據(jù)傳送類指令數(shù)據(jù)傳送是計算機(jī)中最基本、最重要的一種操作,傳送指令也是最常使用的一類指令傳送指令把數(shù)據(jù)從一個位置傳送到另一個位置除標(biāo)志寄存器傳送指令外,均不影響標(biāo)志位重點掌握MOVXCHGXLATPUSHPOPLEA2024/3/213一、通用數(shù)據(jù)傳送指令提供方便靈活的通用傳送操作有5條指令
MOV
XCHG
XLAT
PUSH/POP2024/3/2141.
傳送指令MOV(move)把一個字節(jié)或字的操作數(shù)從源地址傳送至目的地址MOVreg/mem,imm;立即數(shù)送寄存器或主存MOVreg/mem/seg,reg;寄存器送(段)寄存器或主存MOVreg/seg,mem;主存送(段)寄存器MOVreg/mem,seg;段寄存器送寄存器或主存演示2024/3/2151.
傳送指令MOV(move)具體傳送方向:REG
REG(除了CS和IP以外)MOVAX,BXREG
內(nèi)存
MOVAX,[2010H]
MOV[SI],CX
REG←立即數(shù)MOVAL,32H
內(nèi)存←立即數(shù)
MOVWORDPTR[DI],1080HMOV指令不能實現(xiàn)兩個存儲單元之間的數(shù)據(jù)傳送。例:
MOVAL,AREA1MOVAREA2,AL2024/3/216MOV指令——立即數(shù)傳送movCL,4
;CL←4,字節(jié)傳送movDX,0FFh
;DX←00FFh,字傳送movSI,200h
;SI←0200h,字傳送movbvar,0Ah
;字節(jié)傳送;假設(shè)bvar是一個字節(jié)變量,定義如下:bvar
DB
0movwvar,0Bh
;字傳送;假設(shè)wvar是一個字變量,定義如下:wvar
DW
0明確指令是字節(jié)操作還是字操作以字母開頭的常數(shù)要有前導(dǎo)02024/3/217MOV指令——寄存器傳送movah,al ;ah←al,字節(jié)傳送mov
bvar,ch ;bvar←ch,字節(jié)傳送mov
ax,bx ;ax←bx,字傳送mov
ds,ax ;ds←ax,字傳送mov[bx],al ;[bx]←al,字節(jié)傳送寄存器具有明確的字節(jié)和字類型2024/3/218MOV指令——存儲器傳送mov
al,[bx] ;al←ds:[bx]mov
dx,[bp] ;dx←ss:[bp+0]movdx,[bp+4] ;dx←ss:[bp+4]mov
es,[si] ;es←ds:[si]MOV傳送指令不存在存儲器向存儲器傳送2024/3/219MOV指令——段寄存器傳送mov[si],dsmov
ax,ds ;ax←dsmov
es,ax ;es←ax←ds對段寄存器的操作不靈活2024/3/2110例3.1數(shù)據(jù)傳送有如下兩條指令:
MOVDS,[1000H] MOV[BX],ES設(shè)執(zhí)行前:
(DS)=4000H,[41000H]=00H,[41001H]=11H,
(ES)=3000H,(BX)=2000H則這兩條指令執(zhí)行后:
(DS)=1100H, [13000H]=00H, [13001H]=30H2024/3/2111MOV指令傳送功能圖解非法指令的主要現(xiàn)象:兩個操作數(shù)的類型不一致無法確定是字節(jié)量還是字量操作兩個操作數(shù)都是存儲器兩個段寄存器之間直接傳送數(shù)據(jù)立即數(shù)、CS、IP作為目的操作數(shù)立即數(shù)直接送段寄存器立即數(shù)存儲器通用寄存器AXBXCXDXBPSPSIDI段寄存器CSDSESSSMOV指令也并非任意傳送!2024/3/2112非法指令——兩個操作數(shù)類型不一致在絕大多數(shù)雙操作數(shù)指令中,目的操作數(shù)和源操作數(shù)必須具有一致的數(shù)據(jù)類型,或者同為字量,或者同為字節(jié)量,否則為非法指令
MOVAL,050AH ;非法指令,修正:;movax,050ahMOVSI,DL;非法指令,修正:;movdh,0;mov
si,dx2024/3/2113非法指令——無法確定是字節(jié)量還是字量操作當(dāng)無法通過任一個操作數(shù)確定是操作類型時,需要利用匯編語言的操作符顯式指明
MOV[BX+SI],255 ;非法指令,修正: ;mov
byteptr[bx+si],255
;byteptr
說明是字節(jié)操作 ;mov
wordptr[bx+si],255
;wordptr
說明是字操作2024/3/2114非法指令——兩個操作數(shù)都是存儲器8088指令系統(tǒng)除串操作指令外,不允許兩個操作數(shù)都是存儲單元(存儲器操作數(shù))
MOVbuf2,buf1 ;非法指令,修正: ;假設(shè)buf2和buf1是兩個字變量 ;movax,buf1 ;movbuf2,ax ;假設(shè)buf2和buf1是兩個字節(jié)變量 ;moval,buf1 ;movbuf2,al2024/3/2115非法指令——段寄存器的操作有一些限制8088指令系統(tǒng)中,能直接對段寄存器操作的指令只有MOV等個別傳送指令,并且不靈活
MOVDS,ES ;非法指令,修正: ;mov
ax,es ;mov
ds,ax MOVDS,100H ;非法指令,修正: ;movax,100h ;mov
ds,ax MOVCS,[SI] ;非法指令 ;指令存在,但不能執(zhí)行2024/3/21162.交換指令XCHG(exchange)把兩個數(shù)據(jù)進(jìn)行互換XCHGreg,reg/mem;reg
reg/mem寄存器與寄存器之間對換數(shù)據(jù)寄存器與存儲器之間對換數(shù)據(jù)不能在存儲器與存儲器之間對換數(shù)據(jù)演示2024/3/2117例3.2數(shù)據(jù)交換movax,1199h ;ax=1199hxchgah,al ;ax=9911h;等同于xchgal,ahmovwvar,5566h ;wvar是一個字量變量xchg
ax,wvar ;ax=5566h,wvar=9911h;等同于xchg
wvar,ax
xchgal,byteptrwvar+1 ;ax=5599h,wvar=6611h ;“byteptrwvar+1”強(qiáng)制為字節(jié)量,只取高字節(jié)與AL類型交換,否則數(shù)據(jù)類型不匹配2024/3/2118例3.2數(shù)據(jù)交換注意:①目的和源操作數(shù)不能均為內(nèi)存操作數(shù)。②不允許使用CS和IP。③段寄存器和立即數(shù)不能作為操作數(shù)。2024/3/21193.換碼(查表)指令XLAT(translate)將BX指定的緩沖區(qū)中、AL指定的位移處的一個字節(jié)數(shù)據(jù)取出賦給ALXLAT;al←ds:[bx+al]
或XLAT表首址;表首址置于BX中將一種代碼翻譯成另一種代碼。功能:完成一個字節(jié)長的查表轉(zhuǎn)換。演示2024/3/2120換碼(查表)指令XLAT(translate)換碼指令執(zhí)行前:建立字節(jié)表格BX←表首地址AL←需轉(zhuǎn)換的代碼(相對表格首地址的位移量)表格的內(nèi)容即為轉(zhuǎn)換后的代碼 換碼指令執(zhí)行后:將AL寄存器的內(nèi)容轉(zhuǎn)換為目標(biāo)代碼注意:因AL寄存器只有8位,所以表格的長度≤2562024/3/2121例3.3換碼(查表)查平方表,32=?
LEABX,TABLE ;令BX=TABLE地址值MOVAL,3 XLATTABLE ;AL=[BX+3] ;=[TABLE+3] ;=32注:XLAT指令將非線性的代碼操作轉(zhuǎn)換化線性的查找操作。2024/3/21224.堆棧操作指令堆棧是一個“后進(jìn)先出FILO”(或說“先進(jìn)后出FILO”)的主存區(qū)域,位于堆棧段中;SS段寄存器記錄其段地址堆棧只有一個出口,即當(dāng)前棧頂;用堆棧指針寄存器SP指定堆棧只有兩種基本操作:進(jìn)棧和出棧,對應(yīng)兩條指令PUSH和POP圖示2024/3/2123進(jìn)棧指令PUSH進(jìn)棧指令先使堆棧指針SP減2,然后把一個字操作數(shù)存入堆棧頂部PUSHr16/m16/seg;SP←SP-2;SS:[SP]←r16/m16/segpushaxpush[2000h]演示2024/3/2124出棧指令POP出棧指令把棧頂?shù)囊粋€字傳送至指定的目的操作數(shù),然后堆棧指針SP加2POPr16/m16/seg;r16/m16/seg←SS:[SP];SP←SP+2popaxpopwvar演示2024/3/2125堆棧操作的特點堆棧操作的單位是字,進(jìn)棧和出棧只對字操作數(shù)字操作數(shù)據(jù)從棧頂壓入和彈出時,都是低地址字節(jié)送低位字節(jié),高地址字節(jié)送高位字節(jié)堆棧操作遵循先進(jìn)后出原則,但可用存儲器尋址方式隨機(jī)存取堆棧中的數(shù)據(jù)MOVAX,[BP+04H]堆棧段是程序中不可或缺的一個內(nèi)存區(qū),常用來臨時存放數(shù)據(jù)傳遞參數(shù)保存和恢復(fù)寄存器棧底的定義:SS:SP賦初值—規(guī)定堆棧在內(nèi)存中的位置,SP的初值規(guī)定了所用堆棧段的大小。2024/3/2126堆棧操作的特點注意:①堆棧操作總是按字進(jìn)行,沒有字節(jié)操作。
PUSHAL×POPDH
×②操作數(shù):reg/seg/內(nèi)存單元
PUSH1000H
×③PUSHCS
√POPCS
×2024/3/2127二、有效地址傳送指令LEA(loadeffectiveaddress)將存儲器操作數(shù)的有效地址送至指定的16位通用寄存器LEAr16,mem;r16←mem的有效地址EA例題有效地址的獲取
movbx,400h
movsi,3chleabx,[bx+si+0f62h];BX←400H+3CH+0F62H=139EH2024/3/2128例3.4地址傳送與內(nèi)容傳送與MOV指令的區(qū)別:不是傳送變量本身,而是傳送變量的地址。wvar
dw4142h ;假設(shè)偏移地址為04H…mov
ax,wvar ;內(nèi)容傳送:AX=4142Hleasi,wvar ;地址傳送:SI=0004H;等同于leasi,[0004h]mov
cx,[si] ;內(nèi)容傳送:CX=4142Hmov
di,offset
wvar ;=movdi,0004h ;利用操作符OFFSET獲取變量的有效地址mov
dx,[di] ;內(nèi)容傳送:DX=4142H2024/3/2129地址傳送指令LDSLDSReg16,源;
目的REG←“源”開始的兩單元內(nèi)容(地址偏移量)
DS←“源+2”開始的兩單元內(nèi)容(段基地址)
例:LDSSI,[2030H]
若執(zhí)行前:DS=5000H,[52030H]=0240H,[52032H]=3000H。
指令執(zhí)行后:SI=0240H,DS=3000H2024/3/2130四、標(biāo)志位傳送FR←→AH(字節(jié));FR←→堆棧(字)單字節(jié)指令,操作數(shù)——隱含規(guī)定,無操作數(shù)指令1.讀取標(biāo)志指令LAHF
格式:LAHF
功能:AH←FR的低字節(jié)即:AHSFZF×AF×PF×CF2024/3/2131四、標(biāo)志位傳送2.設(shè)置標(biāo)志指令SAHF
格式:SAHF
功能:FR的低字節(jié)←AH
這些指令不影響溢出標(biāo)志、方向標(biāo)志DF,中斷允許標(biāo)志和跟蹤標(biāo)志。可能影響標(biāo)志寄存器的SF、ZF、AF、PF和CF,它取決于AH中相應(yīng)位的狀態(tài)。2024/3/2132四、標(biāo)志位傳送3.PUSHF
功能:先執(zhí)行(SP)←(SP)-2;再將FR內(nèi)容壓入堆棧4.POPF
功能:從堆棧彈出一個字送FR,同時(SP)←(SP)+2
這條指令執(zhí)行后,標(biāo)志寄存器的標(biāo)志位就取決于源堆棧頂部單元的內(nèi)容。用途:①PUSHF和POPF指令一般用于子程序和中斷處理程序的首尾,對主程序標(biāo)志起保護(hù)和恢復(fù)作用。②實現(xiàn)對跟蹤標(biāo)志TF狀態(tài)的修改。2024/3/2133五、輸入輸出指令(InputandOutput)輸入輸出指令共兩條:IN(Inputbyteorword)OUT(Outputbyteorword)
輸入指令用于CPU從外設(shè)端口接受數(shù)據(jù),輸出指令用于CPU向外設(shè)端口發(fā)送數(shù)據(jù)。無論接受還是發(fā)送數(shù)據(jù),必須通過累加器AX(字)或AL(字節(jié)),又稱累加器專用傳送指令。輸入、輸出指令不影響標(biāo)志位。2024/3/2134關(guān)于外設(shè)端口每個外設(shè)要占幾個端口:數(shù)據(jù)口,狀態(tài)口和控制口。CPUI/O設(shè)備譯碼數(shù)據(jù)端口DBABCBI/O接口狀態(tài)端口控制端口2024/3/2135關(guān)于外設(shè)端口信息交換要通過端口。在IBMPC機(jī)里,可以配接許多外部設(shè)備。每個外設(shè)與CPU之間交換數(shù)據(jù),狀態(tài)信息和控制命令,每一種信息交換都要通過一個端口來進(jìn)行。端口數(shù):外部設(shè)備最多有65536個I/O端口。A0~A15譯碼形成。端口號:端口號(即外設(shè)端口地址)為0000H~FFFFH。2024/3/2136端口的訪問直接尋址:端口號中前256個端口(0~FFH),可以直接寫在指令中,這就是直接尋址。間接尋址:當(dāng)端口號≥256時,只能使用間接尋址必須先把端口號放到DX寄存器中。不需要用任何段寄存器來修改它的值。2024/3/2137IN(Inputbyteorword)輸入指令格式:INacc,port;(acc)
(port)具體形式有四種:
INAL,imm8;端口地址8位,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度房地產(chǎn)外匯借款合同書規(guī)范范本
- 冷庫委托經(jīng)營管理合同范例
- 關(guān)于改造合同范本
- 2025年度國際研討會會務(wù)場地租賃合同范本
- 辦理社保申請書
- 二零二五年度辦公室專用地彈門安裝與節(jié)能照明配套合同
- 電視購物節(jié)目制作中的聲音設(shè)計藝術(shù)
- 溫濕度計計量檢定項目可行性報告-圖文
- 中國壓縮冷凝機(jī)組行業(yè)市場深度分析及投資潛力預(yù)測報告
- 2024-2027年中國加固材料行業(yè)發(fā)展趨勢及行業(yè)發(fā)展方向建議報告
- 煤礦重大災(zāi)害治理中長期規(guī)劃(防治煤塵爆炸、火災(zāi)事故)
- 安全風(fēng)險隱患舉報獎勵制度
- 教學(xué)成果獎培育工作方案
- 廈門三固科技有限公司貨幣資金管理優(yōu)化設(shè)計
- 北京卷2025屆高考語文倒計時模擬卷含解析
- 2023學(xué)年廣東省深圳實驗學(xué)校初中部九年級(下)開學(xué)語文試卷
- 貫徹《法治思想學(xué)習(xí)綱要》一書專題課件
- (完整版)施工組織設(shè)計范本
- 二年級口算題大全1000道(打印版)
- 年終總結(jié)總經(jīng)理講話
- 2024年事業(yè)單位考試(綜合管理類A類)綜合應(yīng)用能力試題及解答參考
評論
0/150
提交評論