匯編語(yǔ)言程序設(shè)計(jì)課件第二章(2)_第1頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)課件第二章(2)_第2頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)課件第二章(2)_第3頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)課件第二章(2)_第4頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)課件第二章(2)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2.2.1資料傳輸類(lèi)命令、從一個(gè)位置資料傳輸?shù)搅硪粋€(gè)位置的14個(gè)命令5組1、通用資料傳輸:MOV XCHG XLAT 2、堆棧操作:PUSH POP 3、標(biāo)志寄存器傳輸:LAHF SAHF PUSHF POPF 4、地址傳輸命令也是最常用的命令類(lèi)型。傳輸命令將數(shù)據(jù)從一個(gè)位置傳輸?shù)搅硪粋€(gè)位置。除了圖志寄存器傳輸指令外,不會(huì)影響圖志位元集中。MOV推送點(diǎn)尤其熟悉。XCHG XLAT LEA一般理解:在LAHF SAHF PUSHF POPF LDS LES之后擴(kuò)展:IN OUT、傳輸命令MOV(move)、單字節(jié)或單詞立即寄存器或主內(nèi)存:件2.1、movreg/mem/seg寄存器傳輸(段)寄存器

2、或主內(nèi)存:件2.2、movreg/seg、mem主內(nèi)存寄存器:例2.3例,mobreg/mm,seg分段寄存器發(fā)送寄存器或主內(nèi)存:件2.4,傳輸指令不是萬(wàn)能的,非法傳輸也不少。示例2.1:立即傳輸數(shù)量,MOV AL,55H MOV AX,55AAH MOV CX,0F943H MOV BYTE PTR BX,12h12hDS:BX MOV WORD PTR BX SI,100h:100 HDS 3360 BX SI,注意:立即數(shù)字為字節(jié)或單詞。也就是說(shuō),您可以知道命令是字節(jié)操作還是單詞操作。其他說(shuō)明,示例2.2:寄存器傳輸、MOV AX、BX MOV AH、BL、示例2.3:存儲(chǔ)傳輸、MOV

3、AX、BX MOV SI、AL MOV SS、2000H MOV ES:DI、CS非法轉(zhuǎn)移,兩個(gè)操作數(shù)的類(lèi)型不匹配。例如,源操作數(shù)是字節(jié),目標(biāo)操作數(shù)是單詞?;蛘呦喾矗瑑蓚€(gè)操作數(shù)都不能是存儲(chǔ)傳輸命令,但是主內(nèi)存之間的直接傳輸不允許分段寄存器操作。段寄存器是專(zhuān)用寄存器,受限制的操作能力、實(shí)例、實(shí)例、實(shí)例和兩個(gè)操作數(shù)的類(lèi)型必須匹配。除非另有說(shuō)明,否則目標(biāo)操作數(shù)和源操作數(shù)必須匹配。莫卜蛋,050ah無(wú)效命令:050Ah是單詞,AL是字節(jié)寄存器,寄存器參與的指令是操作數(shù)類(lèi)型是寄存器的類(lèi)型。如果存儲(chǔ)單元和即時(shí)計(jì)數(shù)同時(shí)是操作數(shù),則必須明確表示。Byte ptr表示字節(jié)類(lèi)型,word ptr表示單詞類(lèi)型。兩個(gè)

4、操作數(shù)都不能是陣列。8086命令系統(tǒng)不能將兩個(gè)操作數(shù)都牙齒到存儲(chǔ)單元(串行操作命令除外),并且沒(méi)有向主內(nèi)存發(fā)送數(shù)據(jù)。要實(shí)現(xiàn)這種傳輸,可以通過(guò)寄存器間接實(shí)現(xiàn)。范例2.5:buffer1儲(chǔ)存格中的資料位于buffer2儲(chǔ)存格mov ax、buffer 1;發(fā)送到。Axbuffer1(將buffer1內(nèi)容發(fā)送到ax)mov buffer 2,ax;Buffer2ax其中buffer1和buffer2是兩個(gè)字母的變量。實(shí)際上是指直接尋址方式。段寄存器的操作有一些茄子限制,不能立即傳輸?shù)蕉渭拇嫫鱉OVDS,100H。無(wú)效命令:無(wú)法立即傳輸段寄存器。不能直接更改CS值MOVCS,SI。不允許的指令不允許段

5、寄存器之間的直接資料傳輸MOVDS,ES。非法命令:允許在段寄存器之間傳輸渡邊杏,更換命令XCHG(exchange),兩個(gè)數(shù)據(jù)更換,XCHGReg,Reg/MEM;Regreg/mem,更換命令可以在寄存器和寄存器之間交換數(shù)據(jù)。可以在寄存器和內(nèi)存之間交換數(shù)據(jù)。例如2.7,示例2.6,Why,示例2.6:寄存器和寄存器數(shù)據(jù)更換,MOV AX,1234H MOV BX,操作,節(jié)目已運(yùn)行:AX=5678H,BX=1234H,示例2.7:寄存器和存儲(chǔ)數(shù)據(jù)更換,MOV BP,0200H MOV SI,0046H XCHG AX,BP SI此處的BP,相應(yīng)的段寄存器為SS,設(shè)置SS=5000H,存儲(chǔ)設(shè)備

6、的物理地址PA=SS * 16 EA=50000H0200H0046H=50246h,發(fā)出命令之前:AX=5621H,(5000h 0200h 0046h)ALds:BX AL:示例2.8,執(zhí)行更改代碼命令之前:在主內(nèi)存中創(chuàng)建字節(jié)表,內(nèi)容為要轉(zhuǎn)換的目標(biāo)代碼。表中的第一個(gè)地址存儲(chǔ)在bx中,al存儲(chǔ)相對(duì)于表中第一個(gè)地址的位移量,然后運(yùn)行代碼更改命令。因?yàn)閍l寄存器的內(nèi)容轉(zhuǎn)換為目標(biāo)代碼的隱式尋址方法(例如2.8),代碼更改命令使用隱式尋址方法。隱式尋址方法使用基本操作數(shù)的尋址方法。是的。范例2.8: 09,將AF的十六進(jìn)位數(shù)字轉(zhuǎn)換為ASCII程式碼,并顯示. model small . stack

7、. datatabledb 0123456789 ABC def。09,AF的ASCII代碼。代碼。STARTUP MOV BX,OFFSET TABLE MOV AL,10xlatAL=41H,a的ASCII代碼MOV DL,AL MOV AH,02H INT 21H。EXIT 0 END,堆棧操作指令,堆棧的概念堆棧操作:堆棧輸入和堆棧退出功能,push r16/M16/s堆棧命令:Spsp2Ss : SPR 16/M16/seg,流行r16/M16/seg;“堆疊輸出”命令:r16/M16/segss 3360 sp:SPs p2,堆棧是什么?堆棧是“先進(jìn)先出”的主內(nèi)存區(qū)域,位于堆棧段中

8、,使用SS段寄存器記錄段地址。堆棧只有一個(gè)出口,即當(dāng)前堆棧的頂部。堆棧頂部是由堆棧指針寄存器SP指定的地址較小的端點(diǎn)(底部端點(diǎn))。圖a中的堆棧是空堆棧。堆棧操作,堆棧只有兩個(gè)茄子基本操作:堆棧進(jìn)入和堆棧退出,以及兩個(gè)茄子命令PUSH和POP。請(qǐng)參閱范例2.9和范例2.10。圖B和圖C、堆棧的實(shí)例和圖例、MOV AX、1278H PUSH AX、POP AX、操作、堆棧的特征、堆棧操作的單位是一個(gè)詞。高地址字節(jié)傳輸高字節(jié)堆棧操作經(jīng)常用于根據(jù)先進(jìn)先出原則隨機(jī)訪問(wèn)堆棧的數(shù)據(jù)堆棧,以臨時(shí)存儲(chǔ)資料傳輸參數(shù)和恢復(fù)寄存器(例如2.11,示例進(jìn)入子例程后pushbx pushds.popds在返回主程序之前,

9、發(fā)送pop bx pop ax、有效地址發(fā)送命令LEA(load EA)、將內(nèi)存操作數(shù)的有效地址發(fā)送到指定寄存器、LEAR16、MEMR16mem的有效地址,例如2.12:有效地址的LEA BX,2000H執(zhí)行BX命令后,將2000H操作數(shù)的偏移地址發(fā)送到:BX=2000H。與MOV BX、2000H的區(qū)別在于將DS: 2000H的內(nèi)容發(fā)送到BX。操作,指針傳輸命令,LDS r16,memR16mem,DSmem 2 LDS命令將主內(nèi)存中的mem指定單詞發(fā)送到r16,將mem中的下一個(gè)單詞發(fā)送到DS寄存器、LESR16和mem。R16mem,ESmem 2 LES命令將主內(nèi)存中的mem指定單詞

10、發(fā)送到r16,將mem中的下一個(gè)單詞發(fā)送到ES寄存器(例如2.13,示例2.14,示例2.13:ldsbx,ADDRxSI DS=2000H,SI=1000H)執(zhí)行命令后:BX=1040H,DS=4000H,(21020H)=1040H,(21022H)=4000H。操作,例如2.14、LES BX、SI DS=2000H、SI=1000H,存儲(chǔ)操作數(shù)的物理地址為PA=DS * 16=20000H 1000H=21000H,在發(fā)出命令之前設(shè)置: (執(zhí)行命令后:BX=1400H,ES=4000H,(21000H)=1400H,(21002H)=4000H。,徽標(biāo)低字節(jié)訪問(wèn)AH命令,lahfAHF

11、LAGS的低字節(jié)LAHF命令將標(biāo)志寄存器的低字節(jié)發(fā)射寄存器AH SF/ZF/AF/PF/CF狀態(tài)標(biāo)志位分別發(fā)送到AH的7/6/4/2/0位,將AH的5/3/1位隨機(jī),發(fā)送到SAHF。FLAGS中的低字節(jié)AH SAHF將AH寄存器內(nèi)容發(fā)送到FLAGS中的低字節(jié)。將SF/ZF/AF/PF/CF標(biāo)志設(shè)置為AH的7/6/4/2/0位,將標(biāo)志寄存器設(shè)置為出入堆棧命令,PUSHFSpsp2SS:SPFLAGS PUSHF命令將標(biāo)志寄存器的內(nèi)容推入堆棧,同時(shí)從堆棧頂部指針SP中減去2,POPF。flag SSS 3360 sp:SPs p2 POPF命令將堆棧頂部單元格內(nèi)容發(fā)送到標(biāo)志寄存器,將堆棧頂部指針S

12、P發(fā)送到2,示例2.15,示例2.15:位置單步標(biāo)志,pushf;將所有標(biāo)志存儲(chǔ)在堆棧popax堆棧中所有標(biāo)志or ax,0100h移除。D8=TF=1,Ax其他位不變。push ax;堆棧popf的ax;推入。將堆棧內(nèi)容導(dǎo)入到標(biāo)志寄存器。FLAGSAX、I/o命令、inal/ax、i8/dx;AL/AXI/O通信端口輸入IN命令將外圍設(shè)備數(shù)據(jù)傳輸?shù)紺PU內(nèi)的al/ax、outi8/dx、al/ax。I/O通信端口AL/AX輸出OUT命令將CPU內(nèi)的AL/AX數(shù)據(jù)傳輸?shù)酵鈬O(shè)備,8086通過(guò)I/O命令傳輸外圍設(shè)備和數(shù)據(jù),輸入I/O命令,8086通過(guò)I/O命令與外圍設(shè)備交換數(shù)據(jù)。提供給程序員的外

13、圍設(shè)備是通信端口(Port),即用于尋址I/o地址8086外圍設(shè)備通信端口的地址線為16個(gè),端口最多為21665536個(gè)(64K),通信端口編號(hào)為0000HFFFFH。每個(gè)端口1字節(jié)的外圍設(shè)備資料傳輸,I/o尋址方法,8086的端口為64k,有兩種直接尋址方法。也就是說(shuō),只有00HFFH的前256個(gè)端口可尋址,操作數(shù)i8可用于通信端口編號(hào)間接尋址:64K個(gè)通信端口均可尋址。DX寄存器的值是,對(duì)于通信端口編號(hào)對(duì)大于FFH的端口,只能使用間接尋址方法(例如2.16、Inal、60H)。從通信端口60H讀取1個(gè)字節(jié)為AL的INAX,20H。AX MOV DX,2f8h in Al,DX;通信端口20H,21H由“高”構(gòu)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論