版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第3章第3章:3.3 數(shù)據(jù)傳送類指令數(shù)據(jù)傳送是計(jì)算機(jī)中最基本、最重要的一種操作,傳送指令也是最常使用的一類指令,在一個(gè)實(shí)際程序中,數(shù)據(jù)傳送指令使用的比例是最高的傳送指令把數(shù)據(jù)從一個(gè)位置傳送到另一個(gè)位置,它可以實(shí)現(xiàn)寄存器之間,寄存器和存儲(chǔ)器之間的字或字節(jié)的復(fù)制除標(biāo)志寄存器傳送指令外,均不影響標(biāo)志位 按傳送內(nèi)容,可分為四類:1. 通用數(shù)據(jù)傳送 MOV, PUSH, POP, XCHG, XLAT2. 地址傳送 LEA, LDS, LES3. 標(biāo)志傳送 PUSHF, POPF, LAHF, SAHF 4. 輸入輸出傳送 IN, OUT (在第六章介紹)重點(diǎn)掌握MOV XCHG PUSH POP LE
2、A1. 傳送指令MOV(move)把一個(gè)字節(jié)或字的操作數(shù)從源地址傳送至目的地址MOV reg/mem,imm;立即數(shù)送寄存器或主存MOV reg/mem/seg,reg;寄存器送(段)寄存器或主存MOV reg/seg,mem;主存送(段)寄存器MOV reg/mem,seg;段寄存器送寄存器或主存演示第3章: 3.3.1 通用數(shù)據(jù)傳送指令 格式 MOV dst,src 執(zhí)行 ( dst ) ( src )第3章:MOV指令傳送功能圖解MOV指令也并非任意傳送!立即數(shù)段寄存器CS DS ES SS通用寄存器AX BX CX DXBP SP SI DI存儲(chǔ)器非法指令的主要現(xiàn)象:兩個(gè)操作數(shù)的類型不
3、一致無(wú)法確定是字節(jié)量還是字量操作兩個(gè)操作數(shù)都是存儲(chǔ)器段寄存器的操作有一些限制 非法指令兩個(gè)操作數(shù)類型不一致在絕大多數(shù)雙操作數(shù)指令中,目的操作數(shù)和源操作數(shù)必須具有一致的數(shù)據(jù)類型,或者同為字量,或者同為字節(jié)量,否則為非法指令MOV AL, 050AH;非法指令,修正:;mov ax,050ahMOV SI, DL;非法指令,修正:;mov dh,0;mov si,dx第3章: 3.3.1 通用數(shù)據(jù)傳送指令 非法指令無(wú)法確定是字節(jié)量還是字量操作當(dāng)無(wú)法通過(guò)任一個(gè)操作數(shù)確定操作類型時(shí),需要利用匯編語(yǔ)言的操作符顯式指明MOV BX+SI, 255;非法指令,修正:;mov byte ptr bx+si,2
4、55;byte ptr 說(shuō)明是字節(jié)操作;mov word ptr bx+si,255;word ptr 說(shuō)明是字操作第3章: 3.3.1 通用數(shù)據(jù)傳送指令 非法指令兩個(gè)操作數(shù)都是存儲(chǔ)器8086/8088指令系統(tǒng)除串操作指令外,不允許兩個(gè)操作數(shù)都是存儲(chǔ)單元(存儲(chǔ)器操作數(shù))MOV buf2, buf1;非法指令,修正:;假設(shè)buf2和buf1是兩個(gè)字變量;mov ax,buf1;mov buf2,ax;假設(shè)buf2和buf1是兩個(gè)字節(jié)變量;mov al,buf1;mov buf2,al第3章: 3.3.1 通用數(shù)據(jù)傳送指令 非法指令段寄存器的操作有一些限制8088指令系統(tǒng)中,能直接對(duì)段寄存器操作的
5、指令只有MOV等個(gè)別傳送指令,并且不靈活MOV DS, ES;非法指令,修正:;mov ax,es;mov ds,axMOV DS, 100H;非法指令,修正:;mov ax,100h;mov ds,axMOV CS, SI;非法指令;指令存在,但不能執(zhí)行第3章: 3.3.1 通用數(shù)據(jù)傳送指令 2. 交換指令XCHG(exchange)把兩個(gè)地方的數(shù)據(jù)進(jìn)行互換寄存器與寄存器之間對(duì)換數(shù)據(jù)寄存器與存儲(chǔ)器之間對(duì)換數(shù)據(jù)不能在存儲(chǔ)器與存儲(chǔ)器之間對(duì)換數(shù)據(jù)XCHG reg,reg/mem;reg reg/mem演示第3章: 3.3.1 通用數(shù)據(jù)傳送指令格式 XCHG oprd1,oprd2執(zhí)行 (oprd1
6、) (oprd2)第3章:例3.2 數(shù)據(jù)交換例 XCHG AX, BX 字操作 執(zhí)行前(AX)= 1122H (BX)= 3344H 執(zhí)行后(AX)= 3344H (BX)= 1122H 例 XCHG AH, BL 字節(jié)操作 執(zhí)行前(AX)= 1122H (BX)= 3344H 執(zhí)行后(AX)= 4422H (BX)= 3311HXCHG oprd1,oprd2 注意事項(xiàng): 雙操作數(shù)指令可進(jìn)行字或字節(jié)操作,不影響標(biāo)志位。不允許對(duì)立即數(shù)、段寄存器做操作數(shù) XCHG AX, 4 XCHG BX, DS 存儲(chǔ)器之間不能交換,兩個(gè)操作數(shù)中必須有一個(gè)在寄存器中; 如:XCHG BX,DI 3. 換碼指令
7、XLAT(translate)將BX指定的緩沖區(qū)中、AL指定的位移處的一個(gè)字節(jié)數(shù)據(jù)取出賦給AL換碼指令執(zhí)行前:在主存建立一個(gè)字節(jié)量表格,內(nèi)含要轉(zhuǎn)換成的目的代碼表格首地址存放于BX,AL存放相對(duì)表格首地址的位移量換碼指令執(zhí)行后:將AL寄存器的內(nèi)容轉(zhuǎn)換為目標(biāo)代碼XLAT;alds:bx+al演示第3章: 3.3.1 通用數(shù)據(jù)傳送指令七段數(shù)字顯示器原理ag 7段,加上小數(shù)點(diǎn)DP共8段,COM為公共端。共陽(yáng)極 共陰極BCD-七段顯示譯碼器什么是顯示譯碼器?把數(shù)字量翻譯成數(shù)字顯示器所能識(shí)別的信號(hào)的譯碼器稱為數(shù)字顯示譯碼器。 七段顯示譯碼器7448是一種與共陰極數(shù)字顯示器配合使用的集成譯碼器,它的功能是將
8、輸入的4位二進(jìn)制代碼轉(zhuǎn)換成顯示器所需要的七個(gè)段信號(hào)ag。燈測(cè)試輸入滅零輸入滅燈輸入/滅零輸出例:已知十進(jìn)制數(shù)09的7段顯示碼譯碼表如表。試用XALT指令求數(shù)字5的7段顯示碼。 十進(jìn)制數(shù)字7段顯示碼十進(jìn)制數(shù)字7段顯示碼040H512H179H602H224H778H330H800H419H918H執(zhí)行XALT指令通過(guò)查上表可將任意一個(gè)十進(jìn)制數(shù)翻譯成7段顯示碼,其操作步驟如下:1)將譯碼表定位到某個(gè)邏輯段的一片連續(xù)地址中,并將其表首址的偏移地址 置入BX寄存器中。2)將待翻譯的十進(jìn)制數(shù)字送入AL寄存器中。3)執(zhí)行XALT指令。 例如,假設(shè)這段數(shù)據(jù)存放在偏移地址為4000H開(kāi)始的內(nèi)存中,取出“5”所
9、對(duì)應(yīng)的7段顯示碼,用如下幾條指令實(shí)現(xiàn):MOV BX, 4000HMOV AL, 5XLAT ;AL (4005H)例:內(nèi)存的數(shù)據(jù)段中有一張十六進(jìn)制數(shù)字的ASCII碼表。 首地址為:Hex_table ,欲查出表中第10個(gè)元素(A)執(zhí)行指令序列:MOV BX,OFFSET Hex_tableMOV AL,0AH XLAT Hex_table假設(shè): (DS)=F000H, Hex_table=0040H (AL)=0AH執(zhí)行XLAT以后: (AL)=41H=(F004AH),即“A”的ASCII碼。30H31H32H.39H41H42H.46H.Hex_tableHex_table+1Hex_ta
10、ble+2Hex_table+0AHHex_table+0BHHex_table+0FHFBA912016進(jìn)制數(shù)的ASCII碼表第3章:3.3.2 堆棧操作指令堆棧是一個(gè)“后進(jìn)先出FILO”(或說(shuō)“先進(jìn)后出FILO”)的主存區(qū)域,位于堆棧段中;SS段寄存器記錄其段地址堆棧只有一個(gè)出口,即當(dāng)前棧頂;用堆棧指針寄存器SP指定堆棧只有兩種基本操作:進(jìn)棧和出棧,對(duì)應(yīng)兩條指令PUSH和POP圖示 進(jìn)棧指令PUSH進(jìn)棧指令先使堆棧指針SP減2,然后把一個(gè)字操作數(shù)存入堆棧頂部PUSH r16/m16/seg;SPSP2;SS:SPr16/m16/seg演示push axpush 2000h第3章:3.3.2
11、 堆棧操作指令例: PUSH AX若執(zhí)行前: (SS)= 2000H(SP)= 1002H(SS:SP)= 2010H (AX)= 1234H3B2A10低高20地址SS:SP2000:1002指令執(zhí)行前(AX)=1234h指令執(zhí)行后則執(zhí)行后: (SS)= 2000H(SP)= 1000H(SS:SP)= 1234H(AX)= 1234H123410低高20地址SS:SP2000:1000(AX)=1234h不變 減2 變不變 出棧指令POP出棧指令把棧頂?shù)囊粋€(gè)字傳送至指定的目的操作數(shù),然后堆棧指針SP加2POP r16/m16/seg; r16/m16/segSS:SP;SPSP2pop a
12、xpop wvar演示第3章:3.3.2 堆棧操作指令若執(zhí)行前: (SS)= 2000H(SP)= 1000H(SS:SP)= 1234H (BX)= 5678H123410低高20SS:SP2000:1000指令執(zhí)行前地址(BX)=5678h例: POP BX123410低高20SS:SP2000:1002指令執(zhí)行后地址(BX)=1234h則執(zhí)行后: (SS)= 2000H(SP)= 1002H (SS:SP)= 2010H (BX)= 1234H 堆棧操作的特點(diǎn)堆棧操作的單位是字,進(jìn)棧和出棧只對(duì)字量字量數(shù)據(jù)從棧頂壓入和彈出時(shí),都是低地址字節(jié)送低字節(jié),高地址字節(jié)送高字節(jié)堆棧操作遵循先進(jìn)后出原
13、則,但可用存儲(chǔ)器尋址方式隨機(jī)存取堆棧中的數(shù)據(jù)堆棧段是程序中不可或缺的一個(gè)內(nèi)存區(qū),常用來(lái)臨時(shí)存放數(shù)據(jù)傳遞參數(shù)程序的地址、或是需要恢復(fù)的數(shù)據(jù)保存和恢復(fù)寄存器第3章:3.3.2 堆棧操作指令將存儲(chǔ)器操作數(shù)的有效地址送至指定的16位通用寄存器第3章:3.3.4 有效地址傳送指令LEA(load effective address)LEA r16, mem;r16mem的有效地址EA例: 有效地址的獲取mov bx,400hmov si,3chlea bx,bx+si+0f62h;BX400H3CH0F62H139EH格式 LEA reg, mem執(zhí)行 (reg) mem的EA 執(zhí)行后 ( BX ) =
14、 1000H注意: OFFSET是匯編程序提供的一個(gè)操作符,不是CPU的指令.LEA BX, buffer例 buffer是一個(gè)符號(hào)地址表示的內(nèi)存操作數(shù)(變量)。.12h34h56h.buffer內(nèi)存DS: 1000h若變量buffer的偏移地址= 1000H等價(jià)于 MOV BX ,OFFSET bufferLEA reg, mem特點(diǎn)及注意事項(xiàng):目的操作數(shù)reg應(yīng)是16位通用寄存器 LEA ES, BX LEA AL, buffer LEA 6, BX+SI LEA DI, buffer 源操作數(shù)應(yīng)是存儲(chǔ)器操作數(shù) LEA BX, AX 傳送的是內(nèi)存單元的有效地址,與其內(nèi)容無(wú)關(guān)。.12h34h
15、56h.buffer內(nèi)存第3章:例3.6 地址傳送與內(nèi)容傳送wvar dw 4142h;假設(shè)偏移地址為04Hmov ax,wvar;內(nèi)容傳送:AX4142Hlea si,wvar;地址傳送:SI0004H;等同于 lea si, 0004hmov cx,si;內(nèi)容傳送:CX4142Hmov di,offset wvar;mov di,0004h;利用操作符OFFSET獲取變量的有效地址mov dx,di ;內(nèi)容傳送:DX4142H第3章: 3.3.5 LDS(Load pointer into DS)格式:LDS reg16, mem32 ;(reg16)(EA) (DS)(EA)+2)功能:
16、把源操作數(shù)指定的4個(gè)相繼字節(jié)送指令指定的寄存器 及 DS寄存器中。 前兩個(gè)單元內(nèi)容(16位偏移量)裝入指定通用寄存器, 后兩個(gè)單元內(nèi)容(段地址) 裝入到DS段寄存器。 用于寫遠(yuǎn)地址指針。例: 假設(shè): (DS)=C 000H指令:LDS SI, 0010H執(zhí)行指令后: (SI)=0180H (DS)=2000H 80H01H00H20HC000H:0010H(DS)C0011HC0012HC0013H.存儲(chǔ)器第3章: 3.3.6 LES (Load pointer into ES)格式:LES reg16, mem32 ;(reg16)(EA) (ES)(EA)+2)功能:把源操作數(shù)指定的4個(gè)相
17、繼字節(jié)送指令指定的寄存器及ES寄存器中。 前兩個(gè)單元內(nèi)容(16位偏移量)裝入指定通用寄存器, 后兩個(gè)單元內(nèi)容(段地址) 裝入到ES段寄存器。 此指令常常指定DI寄存器。 用于寫遠(yuǎn)地址指針。例: 假設(shè): (DS)=B 000H (BX)=080AH指令:LES DI, BX執(zhí)行指令后: (DI)=05A2H (ES)=4000HA2H05H00H40HB000H:080AH(DS)B080BHB080CHB080DH.存儲(chǔ)器(BX)第3章: 3.3.7 標(biāo)志傳送指令(Flag register transfer)采用了隱含寄存器(AH、Flags)操作數(shù)方式。 8088有四條標(biāo)志傳送操作指令:(
18、1)LAHF(Load AH with flags)(2)SAHF(Store AH into flags) (3)PUSH F(Push flags onto stack)(4)POP F(Pop flags off stack) (1)LAHF(Load AH with flags)格式:LAHF ;(AH)(PSW的低字節(jié))功能:標(biāo)志寄存器低八位 (AH)。LAHF指令操作圖示意(2)SAHF(Store AH into flags)格式:SAHF ;(PSW的低字節(jié))(AH)功能:(AH)送標(biāo)志寄存器低八位。SFZFAFPFCF01234567TFIFDFOF8910111213141501234567FLAGSAHSS:SP SS:SP (PSW)(4). POPF標(biāo)志出棧格式 POPF執(zhí)行 (PSW) (SS:SP) (SP) (SP)+ 2SS:SP SS:SP (PSW)(3). PUSHF標(biāo)志入棧格式 PUSHF執(zhí)行 (
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 邊境邊防安全培訓(xùn)課件
- 車駕管窗口業(yè)務(wù)課件培訓(xùn)
- 車隊(duì)道路交通安全培訓(xùn)
- 安全三級(jí)教育試題
- 2026年人防護(hù)安全知識(shí)試題
- 《電動(dòng)機(jī)》物理授課課件
- 2026年小學(xué)心理健康教育領(lǐng)導(dǎo)小組及分工職責(zé)(3篇)
- 2026年密碼機(jī)要崗位考試題庫(kù)及答案
- 車間班組長(zhǎng)培訓(xùn)內(nèi)容課件
- 車間安全管理教育培訓(xùn)課件
- 智能安全帽解決方案-智能安全帽
- 中醫(yī)臨床路徑18脾胃科
- 2024年版煙霧病和煙霧綜合征診斷與治療專家共識(shí)(完整版)
- 零星維修合同模板
- 九三學(xué)社申請(qǐng)入社人員簡(jiǎn)歷表
- 聚氨酯門窗研究匯報(bào)
- 醫(yī)院電子病歷四級(jí)建設(shè)需求
- 上海2023屆高三二模數(shù)學(xué)卷匯總(全)
- 《銳角三角函數(shù)》復(fù)習(xí)(公開(kāi)課)課件
- 計(jì)算機(jī)視覺(jué)PPT完整全套教學(xué)課件
- YC/T 564-2018基于消費(fèi)體驗(yàn)的中式卷煙感官評(píng)價(jià)方法
評(píng)論
0/150
提交評(píng)論