微機原理與接口技術(shù)38086尋址方式與指令系統(tǒng).ppt_第1頁
微機原理與接口技術(shù)38086尋址方式與指令系統(tǒng).ppt_第2頁
微機原理與接口技術(shù)38086尋址方式與指令系統(tǒng).ppt_第3頁
微機原理與接口技術(shù)38086尋址方式與指令系統(tǒng).ppt_第4頁
微機原理與接口技術(shù)38086尋址方式與指令系統(tǒng).ppt_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章,第3章 8086尋址方式與指令系統(tǒng),第3章:3.3 數(shù)據(jù)傳送類指令,數(shù)據(jù)傳送是計算機中最基本、最重要的一種操作,傳送指令也是最常使用的一類指令 傳送指令把數(shù)據(jù)從一個位置傳送到另一個位置 除標志寄存器傳送指令外,均不影響標志位 重點掌握 MOV XCHG XLAT PUSH POP LEA,第3章: 3.3.1 通用數(shù)據(jù)傳送指令,提供方便靈活的通用傳送操作 有3條指令 MOV XCHG XLAT,MOV,XCHG,XLAT,第3章:1. 傳送指令MOV(move),把一個字節(jié)或字的操作數(shù)從源地址傳送至目的地址,MOV reg/mem,imm ;立即數(shù)送寄存器或主存,MOV reg/mem/seg,reg ;寄存器送(段)寄存器或主存,MOV reg/seg,mem ;主存送(段)寄存器,MOV reg/mem,seg ;段寄存器送寄存器或主存,演示,第3章:MOV指令立即數(shù)傳送,mov cl,4 ;cl4,字節(jié)傳送 mov dx,0ffh ;dx00ffh,字傳送 mov si,200h ;si0200h,字傳送 mov bvar,0ah ;字節(jié)傳送 ;假設(shè)bvar是一個字節(jié)變量,定義如下:bvar db 0 mov wvar,0bh ;字傳送 ;假設(shè)wvar是一個字變量,定義如下:wvar dw 0,明確指令是字節(jié)操作還是字操作,第3章:MOV指令寄存器傳送,mov ah,al ;ahal,字節(jié)傳送 mov bvar,ch ;bvarch ,字節(jié)傳送 mov ax,bx ;axbx,字傳送 mov ds,ax ;dsax,字傳送 mov bx,al ;bxal,字節(jié)傳送,寄存器具有明確的字節(jié)和字類型,第3章:MOV指令存儲器傳送,mov al,bx ;alds:bx mov dx,bp ;dxss:bp+0 mov dx,bp+4 ;dxss:bp+4 mov es,si ;esds:si,不存在存儲器向存儲器的傳送指令,第3章:MOV指令段寄存器傳送,mov si,ds mov ax,ds ;axds mov es,ax ;esaxds,對段寄存器的操作不靈活,第3章:MOV指令傳送功能圖解,MOV指令也并非任意傳送!,非法指令的主要現(xiàn)象: 兩個操作數(shù)的類型不一致 無法確定是字節(jié)量還是字量操作 兩個操作數(shù)都是存儲器 段寄存器的操作有一些限制,第3章:非法指令兩個操作數(shù)類型不一致,在絕大多數(shù)雙操作數(shù)指令中,目的操作數(shù)和源操作數(shù)必須具有一致的數(shù)據(jù)類型,或者同為字量,或者同為字節(jié)量,否則為非法指令 MOV AL, 050AH ;非法指令,修正: ;mov ax,050ah MOV SI, DL ;非法指令,修正: ;mov dh,0 ;mov si,dx,第3章:非法指令無法確定是字節(jié)量還是字量操作,當(dāng)無法通過任一個操作數(shù)確定是操作類型時,需要利用匯編語言的操作符顯式指明 MOV BX+SI, 255 ;非法指令,修正: ;mov byte ptr bx+si,255 ;byte ptr 說明是字節(jié)操作 ;mov word ptr bx+si,255 ;word ptr 說明是字操作,第3章:非法指令兩個操作數(shù)都是存儲器,8088指令系統(tǒng)除串操作指令外,不允許兩個操作數(shù)都是存儲單元(存儲器操作數(shù)) MOV buf2, buf1 ;非法指令,修正: ;假設(shè)buf2和buf1是兩個字變量 ;mov ax,buf1 ;mov buf2,ax ;假設(shè)buf2和buf1是兩個字節(jié)變量 ;mov al,buf1 ;mov buf2,al,第3章:非法指令段寄存器的操作有一些限制,8088指令系統(tǒng)中,能直接對段寄存器操作的指令只有MOV等個別傳送指令,并且不靈活 MOV DS, ES ;非法指令,修正: ;mov ax,es ;mov ds,ax MOV DS, 100H ;非法指令,修正: ;mov ax,100h ;mov ds,ax MOV CS, SI ;非法指令 ;指令存在,但不能執(zhí)行,第3章:2. 交換指令XCHG(exchange),把兩個地方的數(shù)據(jù)進行互換,寄存器與寄存器之間對換數(shù)據(jù) 寄存器與存儲器之間對換數(shù)據(jù) 不能在存儲器與存儲器之間對換數(shù)據(jù),XCHG reg,reg/mem ;reg reg/mem,演示,第3章:例2.2 數(shù)據(jù)交換,mov ax,1199h ;ax=1199h xchg ah,al ;ax=9911h ;等同于 xchg al,ah mov wvar,5566h ;wvar是一個字量變量 xchg ax,wvar ;ax=5566h,wvar=9911h ;等同于 xchg wvar,ax xchg al,byte ptr wvar+1 ;ax=5599h,wvar=6611h ;“byte ptr wvar+1”強制為字節(jié)量,只取高字節(jié)與AL類型交換,否則數(shù)據(jù)類型不匹配,第3章:3. 換碼指令XLAT(translate),將BX指定的緩沖區(qū)中、AL指定的位移處的一個字節(jié)數(shù)據(jù)取出賦給AL,換碼指令執(zhí)行前: 在主存建立一個字節(jié)量表格,內(nèi)含要轉(zhuǎn)換成的目的代碼 表格首地址存放于BX,AL存放相對表格首地址的位移量 換碼指令執(zhí)行后: 將AL寄存器的內(nèi)容轉(zhuǎn)換為目標代碼,XLAT ;alds:bx+al,演示,第3章:3.3.2 堆棧操作指令,堆棧是一個“后進先出FILO”(或說“先進后出FILO”)的主存區(qū)域,位于堆棧段中;SS段寄存器記錄其段地址 堆棧只有一個出口,即當(dāng)前棧頂;用堆棧指針寄存器SP指定 堆棧只有兩種基本操作:進棧和出棧,對應(yīng)兩條指令PUSH和POP,圖示,第3章:進棧指令PUSH,進棧指令先使堆棧指針SP減2,然后把一個字操作數(shù)存入堆棧頂部,PUSH r16/m16/seg ;SPSP2 ;SS:SPr16/m16/seg,演示,push ax push 2000h,第3章:出棧指令POP,出棧指令把棧頂?shù)囊粋€字傳送至指定的目的操作數(shù),然后堆棧指針SP加2,POP r16/m16/seg ; r16/m16/segSS:SP ;SPSP2,pop ax pop wvar,演示,第3章:堆棧操作的特點,堆棧操作的單位是字,進棧和出棧只對字量 字量數(shù)據(jù)從棧頂壓入和彈出時,都是低地址字節(jié)送低字節(jié),高地址字節(jié)送高字節(jié) 堆棧操作遵循先進后出原則,但可用存儲器尋址方式隨機存取堆棧中的數(shù)據(jù) 堆棧段是程序中不可或缺的一個內(nèi)存區(qū),常用來 臨時存放數(shù)據(jù) 傳遞參數(shù) 保存和恢復(fù)寄存器,第3章:3.3.3 標志操作指令,1. 標志位操作指令 CLC ;復(fù)位進位標志:CF0 STC ;置位進位標志:CF1 CMC ;求反進位標志:CFCF CLD ;復(fù)位方向標志:DF0 STD ;置位方向標志:DF1 CLI ;復(fù)位中斷標志:IF0 STI ;置位中斷標志:IF1 2. 標志寄存器低字節(jié)與AH的傳送指令 3. 標志寄存器出入堆棧指令,將存儲器操作數(shù)的有效地址送至指定的16位通用寄存器,第3章:有效地址傳送指令LEA(load effective address),LEA r16, mem ;r16mem的有效地址EA,例題2.5 有效地址的獲取 mov bx,400h mov si,3ch lea bx,bx+si+0f62h ;BX400H3CH0F62H139EH,第3章:例2.6 地址傳送與內(nèi)容傳送,wvar dw 4142h ;假設(shè)偏移地址為04H mov ax,wvar ;內(nèi)容傳送:AX4142H lea si,wvar ;地址傳送:SI0004H ;等同于 lea si, 0004h mov cx,si ;內(nèi)容傳送:CX4142H mov di,offset wvar ;mov di,0004h ;利用操作符OFFSET獲取變量的有效地址 mov dx,di ;內(nèi)容傳送:DX4142H,第3章:調(diào)試程序DEBUG,DEBUG是常用的匯編語言級調(diào)試工具,為匯編語言程序員提供了分析指令、跟蹤程序的有效手段 常用命令: A 匯編 U 反匯編 T 單步執(zhí)行 G 斷點執(zhí)行 D 數(shù)據(jù)顯示 R 寄存器 啟動方法 DOS下執(zhí)行DEBUG.EXE程序 Windows 9x中進入M

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論