




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、8086/8088的指令系統的指令系統按照匯編指令格式劃分,指令有三種:雙操作數指令雙操作數指令:指令中指定兩個操作數,其中一個是源操作數(src),另一個是目的操作數(dest)。單操作數指令單操作數指令:指令只需一個操作數。它既是源操作數( src ),也是目的操作數( dest )。無操作數指令無操作數指令:雖然指令本身未指明操作數在哪里,但是指令卻隱含指明操作數的地方。學習每一條指令應該注意以下幾點:指令的格式和執行的操作指令的格式和執行的操作允許的尋址方式允許的尋址方式與標志位的關系與標志位的關系按照匯編指令功能劃分,8086的指令可以分成六大類:數據傳送指令數據傳送指令算術運算指令
2、算術運算指令位運算指令位運算指令串操作指令串操作指令控制轉移指令控制轉移指令處理器控制指令處理器控制指令指令類型指令類型指令指令指令功能指令功能通用數據傳送目標地址傳送標志位傳送i/o數據傳送movd, spush spop dxchg d, sxlat字節或字傳送字壓入堆棧字彈出堆棧字節或字交換字節翻譯(代碼轉換)lead, sldsd, slesd, s裝入有效地址裝入地址指針(用ds)裝入地址指針(用es)lahfsahfpushfpopf將f低字節裝入ah寄存器將ah內容裝入f低字節將f的內容壓入堆棧從堆棧中彈出一個字裝入fin累加器,端口out端口,累加器輸入字節或字輸出字節或字表一
3、表一數據傳送指令數據傳送指令列表列表有以下五條mov 把源操作數傳送到目的操作數push指針上移,源操作數進棧pop 出棧到目的操作數,指針下移xchg交換源,目的操作數xlat代碼轉換 mov 指令 基本格式和功能指令格式指令格式: mov dest,src 其中 dest 表示目的操作數,src表示源操作數 執行的操作執行的操作: (dest)(src)與標志的關系與標志的關系: 與標志沒有關系,不影響不影響標志位。 mov 指令 數據傳送通道立即數立即數存存儲儲器器通用寄存器通用寄存器axbx cx dxbp sp si di段寄存器段寄存器cs ds es ss圖圖1 mov 指令數據
4、傳送通道指令數據傳送通道mov 指令 一些說明說明:立即數不能直接不能直接傳給段寄存器;段寄存器之間也不能進行直接傳送。(這2種情況通常要通過通用寄存器間接進行)dest和src兩個操作數不能同時為存儲器操作數不能同時為存儲器操作數;兩個存儲單元之間不能用一條mov指令直接完成數據傳送。存儲器操作數可用任何一種存儲器尋址方式。dest和src長度長度須相同,即同時為字或字節。mov 指令 一些說明說明立即數立即數只能出現在源操作數位置,不能作destcs只能作源操作數,不能作目的操作數。傳送實質上是復制復制,對源操作數無影響。16位數據的傳送遵循地址“高對高,低對低高對高,低對低”的原則。這個
5、原則不僅對mov指令適用,對所有的傳送皆適用。mov 指令 例子立即數立即數r/m mov cl, 05h mov ax, 1234h mov addr, 12h mov addr, 1234hmov 指令 例子reg reg mov dh, al mov ds, axr m mov dl, da_byte mov dl, si mov ax, da_wordmov 指令 例子m m mov dl, da_byte1 mov da_byte2, dlm m(存儲單元內容互換存儲單元內容互換) mov cl,da_byte1 mov dl,da_byte2 mov da_byte1,dl mov
6、 da_byte2,clmov 指令 例子例子指令辯誤:判斷下列指令的正誤正誤并說明原因原因1.mov al,cx2.mov al, cx3.mov 3000h, bx4.mov al, 1200h5.mov cs, bx6.mov ds, 1200h7.mov es, ds mov 指令 練習練習 題目1:已知當前bx=1200h,cs=1800h,ip=0500h,ds=3000h,則執行指令mov bx+2000h,12abh 后,12abh放在哪兩個存儲單元(物理地址)?答案:12abh放在33200h和33201h存儲單元中。其中12h放在33201h單元中,而0abh放在33200
7、單元中。mov 指令 練習練習題目2:將ds段中2000h單元與3000h單元的內容互換,請寫出指令序列。解: mov al,2000hmov bl, 3000hmov 2000h, blmov 3000h, alpush 和 pop指令 基本格式和功能基本格式和功能指令格式指令格式: push src pop dest執行的操作執行的操作: push 壓入。源操作數進棧至棧頂。“先減再壓先減再壓” sp sp -2 ss:(sp),(sp)+1) (src) pop 彈出。棧頂出棧到目的操作數。“先彈再加先彈再加” (dest) ss:(sp),(sp)+1) sp sp +2 push 和
8、 pop指令 基本格式和功能與標志的關系:與標志的關系: 與各標志位無關,不影響不影響標志位尋址方式尋址方式: push mem / reg pop mem / reg 注意: 操作數一律為16位位操作數。允許使用段寄存器,但pop操作數不允許為cs。可以使用除立即數以外的任何數據尋址方式。push 和 pop指令 關于堆棧堆棧是一段特殊組織的內存區域,其內容的存取主要由堆棧指針控制,規則是:“先進后出先進后出”或者“后進后進先出先出”。xx32h30012h30013h30011h30010h3000fh3000eh30000h3000hss000fhsp6ch45h0ah0013hsp堆棧
9、段push 和 pop指令 關于堆棧例:將4456h壓入堆棧。xx30012h30013h30011h30010h3000fh3000eh30000h3000hss56h0013hsp堆棧段44h0012hsp0011hsp“先減再壓先減再壓”push 和 pop指令 關于堆棧例:從堆棧彈出兩個字節送ax。xx30012h30013h30011h30010h3000fh3000eh30000h3000hss56h0011hsp堆棧段78h0010hsp000fhsp12h34h34hax12hahal“先彈再加先彈再加”push 和 pop指令 用途堆棧常有兩個用途:暫存暫存和傳送傳送。暫存:
10、暫存: push ax push bx pop bx pop ax傳送:傳送: push ax push bx pop ax pop bxxx5a06hax1200hbxsppush 和 pop指令 練習題目:已知ss=2000h,ax=1600h,sp=0202h,cx=3456h,當執行以下兩條指令后: push ax push cx問:這時ss,ax,cx,sp的內容?存儲器中20200h單元的內容為多少?答案:答案:ss=2000h,ax=1600h,cx=3456h ,sp=01feh;(20200h)=00h01feh01ffh0200h0201h0202hxx16h00h34h5
11、6hxchg指令指令 基本格式和功能指令格式指令格式: xchg dest, src執行的操作執行的操作:源操作數與目的操作數內容互換 (dest) (src)與標志的關系與標志的關系: 與各標志位互不影響xchg指令指令 基本格式和功能尋址方式尋址方式: xchg mem/reg, mem/reg注意:注意:兩操作數均不允許為立即數和段寄存器,不能同為存儲器操作數;可以是字或字節交換。通用寄存器ax bx cx dxbp sp si di 存儲器 圖3 xchg指令的數據交換通路xchg指令指令 例子例:兩個存儲單元之間進行數據交換。(應用三條指令實現) moval,dabyte1xchga
12、l,dabyte2xchgal,dabyte1xlat指令指令 基本格式和功能指令格式指令格式: xlat 或 xlat al, bx執行的操作執行的操作: 其功能是從轉換表中找出一個字節的內容,用其取代al寄存器的內容。轉換表由用戶設計,最長為256個字節,換碼時,應將代碼表首地址保存在bx中, al中保存待查字節序號(即代碼表中字符序號),換碼后,a l取得對應的碼值。xlat指令指令 例子例:假設用戶設計轉換表table如下圖所示,如需要查找表中第8個單元的內容,則可以使用指令序列:movax,segtablemovds,axmovbx,offsettablemoval,07hxlatt
13、able+1+2+3+4+5+6+7+87eh30h6dh79h33h5bh1fh70h7fh執行后執行后al=70h課堂練習課堂練習1、請將存儲器中ds段內三個存儲單元的內容輪換。(設3個存儲單元的偏移地址分別是1020h,1040h,1060h)2、將cx與dx的內容互換,可以有多少種方法?參考答案參考答案1、mov al, 1020hxchg al, 1040hxchg al,1060hmov 1020h, al2、至少有三種:用mov指令:用堆棧指令:用xchg指令:mov ax, cxmov cx, dxmov dx, axpush cxpush dxpop cxpop dxxchg
14、 cx, dx共3條lea 取有效地址lds 從雙字中取偏移地址和數據段的段地址les 從雙字中取偏移地址和附加段的段地址lea指令指令 基本格式和功能指令格式:指令格式: lea dest, src執行的操作執行的操作:指令功能:源操作數的有效地址ea送給目的操作數。destsrc的有效地址ea與標志的關系:與標志的關系:指令對標志無影響。lea指令指令 基本格式和功能尋址方式尋址方式: lea reg, mem說明:說明:src必須是存儲器操作數。dest一定是一個16位通用寄存器,而不能是8位的寄存器或段寄存器。編程時,程序員不必了解數據或指令的有效地址,但有時這些地址會在程序其它部分用
15、到, 這時可以使用lea 指令。lea指令指令 例子例:如bx=00cdh,si=00a6h,存儲單元的內容為78abh,則指令movax,bxsi執行后,ax78abh;而 leaax,bxsi執行后,ax00cdh00a6h=0173h。lds和和les指令指令基本格式和功能指令格式:指令格式: lds dest, src les dest, src執行的操作執行的操作:功能:將src中的雙字雙字內容依次送入到dest及ds(lds指令)或es(les指令)中。 指令中src為一雙字指針,高位字送指定的段段寄存器,低位字送指定的寄存器。lds和和les指令指令基本格式和功能與標志的關系:與
16、標志的關系:指令對標志無影響。尋址方式:尋址方式: lds/ les reg, mem說明:說明:src處保存的一般是某個邏輯地址(seg:offset),事先由用戶準備好。dest必須是任一通用寄存器通用寄存器(16位);src一定是存儲器操作數。本指令用于同時建立段地址和段內偏移地址。lds和和les指令指令例子例:設當前ds2000h,di2400h,存儲單元2340ah處的內容如下圖所示。則指令ldssi,di100ah 執行后,ds與si的值分別為多少?80h01h30h22h2340ah答案:答案:dsds2230h2230h,sisi0180h0180h共有4條:lahf 標志送
17、ah指令sahf ah送標志指令pushf 標志進棧指令popf 標志出棧指令這些指令用于保存和恢復pswlahf 與與 sahf指令指令基本格式和功能指令格式:指令格式: lahf sahf功能:功能:lahf:ah flagslsahf:flagsl ahlahf 與與 sahf指令指令基本格式和功能說明:lahf指令對f本身無影響;sahf指令對f高8位無影響,對f低8位的影響要看ah的內容。復習:f標志寄存器各位位置of df if tf sf zfafpfcf15087lahf 與與 sahf指令指令例子例:欲將f中的進位標志和奇偶標志都設置為1,請寫出指令序列。pushf 與與 p
18、opf指令指令基本格式和功能指令格式:指令格式:pushf popf功能功能: pushf:stack flags (f進棧) popf :flags stack (f出棧)pushf 與與 popf指令指令基本格式和功能說明:pushf指令對f本身無影響。popf指令對f的影響由棧頂內容決定。flags中各標志位的值只有少數幾個能通過別的指令去設置,其余的只能通過上述4條指令去設置。pushf 與與 popf指令指令例子例1:欲將f的內容傳送到ax中。請寫出指令序列。 答案:pushf pop axpushf 與與 popf指令指令例子例2:欲設置f寄存器的內容為1234h。請寫出指令序列。 答案: push 1234h popf 正確答案: mov ax,1234h push ax popf 指令有誤in 和和 out指令指令 基本格式和功能指令格式:長格式(直接尋址): in al,端口地址端口地址 in ax, 端口地址端口地址 out 端口地址端口地址,al out 端口地址端口地址,ax注意:長格式中直接采用端口地址,但地址必須是8位的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 脊髓損傷病人護理查房
- 塔里木職業技術學院《中華射藝》2023-2024學年第一學期期末試卷
- 寧夏回族自治區中學衛市第五中學2025屆初三第二次診斷性考試語文試題含解析
- 遼寧裝備制造職業技術學院《生物組學》2023-2024學年第二學期期末試卷
- 景德鎮陶瓷職業技術學院《基礎醫學實驗(一)》2023-2024學年第一學期期末試卷
- 上海歐華職業技術學院《國際結算與貿易融資》2023-2024學年第二學期期末試卷
- 云南科技信息職業學院《藥物分析》2023-2024學年第一學期期末試卷
- 山西衛生健康職業學院《高級生物信息學》2023-2024學年第二學期期末試卷
- 秦皇島市重點中學2025屆高三下學期研七考試化學試題含解析
- 銅川職業技術學院《花紙設計與排版》2023-2024學年第二學期期末試卷
- DBJ15 31-2016建筑地基基礎設計規范(廣東省標準)
- 保險信息服務合同范本
- 老年人康樂活動-老年節慶活動組織策劃
- 預防接種服務提質行動方案2-4-10
- 綠化帶改停車位施工方案
- 綠化苗木組織供應及售后服務方案
- 2023-2024學年浙江省環大羅山聯盟高一下學期4月期中物理試題(解析版)
- 合用變壓器協議
- 護理人員崗位績效考核評價標準
- 2024年鄭州軌道工程職業學院單招職業適應性測試題庫學生專用
- 2024年山西省太原市中考二模地理試卷
評論
0/150
提交評論