指令系統(數據傳送類)_第1頁
指令系統(數據傳送類)_第2頁
指令系統(數據傳送類)_第3頁
指令系統(數據傳送類)_第4頁
指令系統(數據傳送類)_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

●8086指令系統按功能可分為6大類:數據傳送指令算術運算指令邏輯指令串處理指令控制轉移指令處理機控制指令指令系統教學進程立即數存儲器通用寄存器AX

BXCXDXBPSPSIDI段寄存器CSDSESSS數據傳送指令

1.通用數據傳送指令(1)數據傳送MOV指令●指令功能:將數據從源操作數傳送到目的操作數,具有“復制”性質;●指令格式:MOVDST,SRC;

MOV為指令助記符,DST、SRC分別為目的操作數和源操作數例如:MOV AX,1234H;立即數1234H送AXMOV AL,CL;通用寄存器CL中內容送ALMOV指令源、目標操作數長度必須一致,即兩者同為8位或同為16位;目的操作數DST不能為立即數;DST、SRC不能同時為段寄存器,也不能同時為存儲器單元;不能使用此指令為代碼段寄存器CS以及指令指針IP賦值;

MOV指令不影響標志位寄存器的值。注意1)2)3)4)5)例:判斷指令的對錯MOVAX,DSMOV10H,[SI]MOVCS,AXMOVDS,2000HMOV[3567H],56HMOVAL,[4567H]MOVBP,[9886H]MOV[3000H],[BX]MOVBX,CLMOVSS,[5678H]●

1.通用數據傳送指令●指令功能:將一個字節或一個字的源操作數和目的操作數相交換;●指令格式:XCHG OPR1,OPR2;執行操作:OPR1?OPR2;

兩個操作數必須有一個在寄存器(不包括段寄存器)中;XCHG交換指令不影響標志寄存器的值。注意1)2)(2)交換指令XCHG(3)堆棧操作指令●

1.通用數據傳送指令●堆棧操作指令分為兩類:進棧(壓棧)指令PUSH和出棧指令POP●壓棧指令格式為:PUSHSRC;執行的操作:SP←(SP)-2(SP)+1,(SP)←(SRC)●出棧指令格式為:

POPDST;執行的操作: DST←((SP)+1,(SP)) SP←(SP)+2;

堆棧指令必須是16位雙字節數,即每進行一次PUSH操作,SP減2;每進行一次POP操作SP加2;目的操作數DST,與原操作數SRC都不能為立即數;DST不能為代碼段寄存器CS;堆棧指令不影響標志寄存器的值。注意1)2)3)4)5)PUSHAXPUSHBLPUSHCSPUSHBPPOPCSPUSH5678HPOPDSPOPCHPOPBXXCHGAX,BXXCHGBL,[SI]XCHGDS,BXXCHG[BX],[DI]XCHGAX,BLXCHG[6788H],DX判斷指令的對錯●2.累加器專用傳送指令(1)輸入/輸出指令●指令功能:輸入/輸出指令用來完成I/O端口與累加器之間的數據傳送;●指令格式: INAL,n INAX,n INAL,DX INAX,DX;執行操作:OUTn,ALOUTn,AXOUTDX,ALOUTDX,AX(n)AL,B(n)AL,(n+1)AH,W((DX))AL,((DX)+1)AH,W;((DX))AL,BnAX,WnAL,B(DX)AL,B(DX)AX,W例:INAL,08H前:(08H)=34H,DS=2000H(20008H)=78H后:AL=?34H例:INAL,DX前:(DX)=2345H,(DS)=2000H,(22345H)=78H,(2345H)=34H后:AL=?34HINAX,[32H]INBX,56HINAL,5678HINAX,45HINAL,[DX]INAL,DXOUTDX,ALOUT[45H],AXOUT4578H,AXOUT67H,AX判斷指令的對錯●指令功能:以(BX)為基,(AL)為索引,將索引到的值返回到AL中。●指令格式:XLAT

執行操作:AL←((BX)+(AL))

(2)查表指令XLAT表的首地址置于BX中,AL中存放對象在表中的相對地址。表中的內容則是所需要轉換的代碼,表的長度不得超過256個字節。指令執行后,所查找的對象自動存于AL中,BX內容保持不變。XLAT的操作數是隱含的,也可用表的首地址名稱來表示。注意例:數字0~9對應的格雷碼為13H,34H,05H,06H,09H,0AH,0CH,11H,12H,14H。依次放在內存以TABLE開始的區域,當#10H端口輸入一個十進制數時,要求CPU將其轉換為格雷碼,再從#10H輸出。MOVBX,TABLEINAL,10HXLATOUT10H,AL注:此程序有問題,請改正!●3.目標地址傳送指令(1)LEA有效地址送寄存器●指令功能:將源操作數的偏移(有效)地址傳送給16位寄存器;●指令格式:LEA REG,SRC;執行操作:

REG←SRC;源操作數的尋址方式為:存儲器尋址目標操作數的尋址方式為:寄存器尋址(不包括段寄存器)例:LEABX,[2000H]后,(BX)=2000H區別于MOVBX,[2000H](2)數據段寄存器傳送指令LDS●3.目標地址傳送指令●指令功能:從源操作數所指定的存儲單元開始取出4個字節的數,把低地址字單元的內容傳送給目標操作數,高地址字單元的內容傳送給DS段寄存器;●指令格式:LDS REG,SRC;

執行操作: REG←(SRC)

DS←(SRC+2);源操作數的尋址方式為:存儲器尋址目標操作數的尋址方式為:寄存器尋址(不包括段寄存器)例:LDSSI,(2000H)前:(DS)=2000H,(22000H)=4000H,(22002H)=3000H后(SI)=4000H,(DS)=3000H(3)附加段寄存器傳送指令LES●指令功能:從源操作數所指定的存儲單元開始取出4個字節的數,把低地址字單元的內容傳送給目標操作數,高地址單元的內容傳送給ES段寄存器;●指令格式:LES

REG,SRC;

執行操作:

REG←SRC;

ES←(SRC+2);

目的操作數16位通用寄存器(REG)不能使用段寄存器;源操作數SRC只能使用存儲器尋址方式來確定地址;地址傳送指令不影響標志寄存器的值注意1)2)3)標志位傳送指令●4.(1)LAHF指令(2)SAHF指令●指令功能:把標志寄存器的低8位送入寄存器AH;●指令格式:LAHF

執行操作:AH←(PSW低8位)●指令功能:與LAHF指令執行相反的操作,寄存器AH的相應位分別傳送至標志位寄存器PSW的相應位中。(3)PUSHF指令●指令功能:把標志寄存器PSW的內容壓棧;●指令格式:PUSHF

執行操作:SP←(SP)-2;

SP←(PSW低8位);

SP+1←(PSW高8位);(4)POPF指令●指令功能:與PUSHF指令執行相反的操作,將堆棧棧頂兩個單元的內容彈出至標志寄存器。●指令格式:POPF

執行操作: PSW低8位←[SP];

PSW高8位←[SP+1];

SP←(SP)+2;例:試編程將TF置1。PUSHFMOVBP,SPOR[BP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論