第3微機原理與接口技術(shù)課清華大學(xué)_第1頁
第3微機原理與接口技術(shù)課清華大學(xué)_第2頁
第3微機原理與接口技術(shù)課清華大學(xué)_第3頁
第3微機原理與接口技術(shù)課清華大學(xué)_第4頁
第3微機原理與接口技術(shù)課清華大學(xué)_第5頁
已閱讀5頁,還剩94頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第第3 3章章 指令系統(tǒng)指令系統(tǒng)2主要內(nèi)容:n指令系統(tǒng)的一般概念指令系統(tǒng)的一般概念n對操作數(shù)的尋址方式對操作數(shù)的尋址方式n六大類指令的操作原理:六大類指令的操作原理:操作碼的含義操作碼的含義指令對操作數(shù)的要求指令對操作數(shù)的要求指令執(zhí)行的結(jié)果指令執(zhí)行的結(jié)果33.13.1 概述4了解:n指令及指令系統(tǒng);指令及指令系統(tǒng);n指令的格式;指令的格式;n指令中的操作數(shù)類型;指令中的操作數(shù)類型;n指令字長與機器字長;指令字長與機器字長;n指令的執(zhí)行時間指令的執(zhí)行時間ncisccisc和和riscrisc指令系統(tǒng)指令系統(tǒng)5一、指令與指令系統(tǒng)指令:指令:控制計算機完成某種操作的命令控制計算機完成某種操作的命令

2、指令系統(tǒng):指令系統(tǒng):處理器所能識別的所有指令的集合處理器所能識別的所有指令的集合指令的兼容性:指令的兼容性:同一系列機的指令都是兼容的。同一系列機的指令都是兼容的。6二、指令格式指令中應(yīng)包含的信息:指令中應(yīng)包含的信息:運算數(shù)據(jù)的來源運算數(shù)據(jù)的來源運算結(jié)果的去向運算結(jié)果的去向執(zhí)行的操作執(zhí)行的操作7指令格式操作碼操作碼 操作數(shù)操作數(shù),操作數(shù)操作數(shù)執(zhí)行何種操作執(zhí)行何種操作目標(biāo)操作數(shù)目標(biāo)操作數(shù)源操作數(shù)源操作數(shù)參加操作的數(shù)據(jù)參加操作的數(shù)據(jù)或數(shù)據(jù)存放的地址或數(shù)據(jù)存放的地址8指令格式: 零操作數(shù)指令:零操作數(shù)指令: 操作碼操作碼 單操作數(shù)指令:單操作數(shù)指令: 操作碼操作碼 操作數(shù)操作數(shù)雙操作數(shù)指令:雙操作數(shù)

3、指令: 操作碼操作碼 操作數(shù),操作數(shù)操作數(shù),操作數(shù)多操作數(shù)指令:多操作數(shù)指令: 三操作數(shù)及以上三操作數(shù)及以上9三、指令中的操作數(shù)立即數(shù)立即數(shù)寄存器寄存器存儲器存儲器表征參加操作的數(shù)據(jù)本身表征參加操作的數(shù)據(jù)本身表征數(shù)據(jù)存放的地址表征數(shù)據(jù)存放的地址10立即數(shù)操作數(shù)n立即數(shù)只能作為源操作數(shù)。立即數(shù)只能作為源操作數(shù)。其本身是參加操作其本身是參加操作的數(shù)據(jù),可以是的數(shù)據(jù),可以是8位或位或16位。位。 例:例: mov ax,1234h mov bl,22hn立即數(shù)無法作為目標(biāo)操作數(shù)立即數(shù)無法作為目標(biāo)操作數(shù)n立即數(shù)可以是無符號或帶符號數(shù),其數(shù)值應(yīng)在立即數(shù)可以是無符號或帶符號數(shù),其數(shù)值應(yīng)在可取值范圍內(nèi)??扇?/p>

4、值范圍內(nèi)。11寄存器操作數(shù):n參加運算的數(shù)存放在指令給出的寄存器中,參加運算的數(shù)存放在指令給出的寄存器中,可以是可以是16位或位或8位。位。n例:例:nmov ax,bxn mov dl,ch12存儲器操作數(shù)n參加運算的數(shù)存放在存參加運算的數(shù)存放在存儲器的某一個或某兩個儲器的某一個或某兩個單元中單元中n表現(xiàn)形式:表現(xiàn)形式: 立即數(shù)或寄存器立即數(shù)或寄存器13存儲器操作數(shù)例n例:例: mov ax,1200h mov al,1200h22h11h1200h偏移地址偏移地址ah al 14四、指令字長與機器字長n指令字長:指令字長:n由操作碼的長度、操作數(shù)地址長度、操作數(shù)個由操作碼的長度、操作數(shù)地址

5、長度、操作數(shù)個數(shù)決定;數(shù)決定;n機器字長:機器字長:n計算機能夠直接處理的二進制數(shù)的位數(shù)。計算機能夠直接處理的二進制數(shù)的位數(shù)。15五、指令的執(zhí)行速度n指令的字長影響指令的執(zhí)行速度指令的字長影響指令的執(zhí)行速度 (常用指令的執(zhí)行時間見表(常用指令的執(zhí)行時間見表3-4)n對不同的操作數(shù),指令執(zhí)行的時間不同:對不同的操作數(shù),指令執(zhí)行的時間不同: 存儲器存儲器快!快!立即數(shù)立即數(shù)寄存器寄存器16六、cisc和risc指令系統(tǒng)ncisc指令系統(tǒng)指令系統(tǒng)n指令的功能強,種類多,高級語言和機器語言間指令的功能強,種類多,高級語言和機器語言間的距離縮小;的距離縮??;n指令系統(tǒng)復(fù)雜,難使用。指令系統(tǒng)復(fù)雜,難使用。

6、nrisc指令系統(tǒng)指令系統(tǒng)n指令功能較弱,種類少,格式簡單;指令功能較弱,種類少,格式簡單;n多數(shù)指令在一個計算機周期內(nèi)完成;多數(shù)指令在一個計算機周期內(nèi)完成;n對存儲器的結(jié)構(gòu)和存取速度要求較高。對存儲器的結(jié)構(gòu)和存取速度要求較高。173.2 尋址方式18尋址方式 尋找操作數(shù)所在地址的方法尋找操作數(shù)所在地址的方法 尋找轉(zhuǎn)移地址的方法尋找轉(zhuǎn)移地址的方法 本節(jié)本節(jié)19一、立即尋址n指令中的源操作數(shù)是立即數(shù),即源操作數(shù)是參指令中的源操作數(shù)是立即數(shù),即源操作數(shù)是參加操作的數(shù)據(jù)本身加操作的數(shù)據(jù)本身n例:例:mov ax,1200h12h00hah almov代代碼碼段段 20二、直接尋址n指令中直接給出操作

7、數(shù)的指令中直接給出操作數(shù)的偏移地址偏移地址n例:例:mov ax,1200h22h11h1200h偏移地址偏移地址 數(shù)數(shù)據(jù)據(jù)段段ah al21直接尋址n直接尋址方式下,操作數(shù)的段地址默認(rèn)為數(shù)據(jù)直接尋址方式下,操作數(shù)的段地址默認(rèn)為數(shù)據(jù)段,但允許段重設(shè),即由指令定義段。段,但允許段重設(shè),即由指令定義段。n例:例:mov ax,es:1200h22三、寄存器尋址n參加操作的操作數(shù)在參加操作的操作數(shù)在cpu的通用寄存器中。的通用寄存器中。n例:例:mov ax,bx ax bx23四、寄存器間接尋址n參與操作的操作數(shù)存放在內(nèi)存中,其偏參與操作的操作數(shù)存放在內(nèi)存中,其偏移地址為指令中的寄存器的內(nèi)容。移地

8、址為指令中的寄存器的內(nèi)容。24寄存器間接尋址例n例:例:mov ax,bx 設(shè)設(shè)bx=1200h22h11h1200h偏移地址偏移地址ah al 11 22數(shù)數(shù)據(jù)據(jù)段段代代碼碼段段mov25寄存器間接尋址n由寄存器間接給出操作數(shù)的偏移地址;由寄存器間接給出操作數(shù)的偏移地址;n存放偏移地址的寄存器稱為存放偏移地址的寄存器稱為間址寄存器間址寄存器,它們,它們是:是:bx,bp,si,din操作數(shù)的段地址(數(shù)據(jù)處于哪個段)取決于選操作數(shù)的段地址(數(shù)據(jù)處于哪個段)取決于選擇哪一個間址寄存器:擇哪一個間址寄存器: bx,si,di bp默認(rèn)在數(shù)據(jù)段默認(rèn)在數(shù)據(jù)段默認(rèn)在堆棧段默認(rèn)在堆棧段26寄存器間接尋址

9、寄存器寄存器間接尋址間接尋址基址尋址(間址基址尋址(間址寄存器為基址寄存寄存器為基址寄存 器器bx,bp)變址尋址(間址變址尋址(間址寄存器為變址寄存寄存器為變址寄存 器器si,di)27五、寄存器相對尋址n操作數(shù)的偏移地址為寄存器的內(nèi)容加上一個位移操作數(shù)的偏移地址為寄存器的內(nèi)容加上一個位移量量n例:例:nmov ax,bx+data 設(shè):設(shè):ds=2000h,bx=0220h,data=05h n則:則:ax=20225h28六、基址、變址尋址n操作數(shù)的偏移地址為一個基址寄存器的內(nèi)容加操作數(shù)的偏移地址為一個基址寄存器的內(nèi)容加上一個變址寄存器的內(nèi)容,操作數(shù)的段地址由上一個變址寄存器的內(nèi)容,操作

10、數(shù)的段地址由選擇的基址寄存器決定選擇的基址寄存器決定n例:例:mov ax,si+bx29七、基址、變址、相對尋址n操作數(shù)的偏移地址為一個基址寄存器的內(nèi)容加上操作數(shù)的偏移地址為一個基址寄存器的內(nèi)容加上一個變址寄存器的內(nèi)容,再加上一個位移量。一個變址寄存器的內(nèi)容,再加上一個位移量。n操作數(shù)的段地址由選擇的基址寄存器決定操作數(shù)的段地址由選擇的基址寄存器決定n例:例:mov ax,bp+si+data30八、隱含尋址n指令隱含了的一個或兩個操作數(shù)的指令隱含了的一個或兩個操作數(shù)的地址,即操作數(shù)在默認(rèn)的地址中地址,即操作數(shù)在默認(rèn)的地址中n例:例: mul bl 指令的執(zhí)行:指令的執(zhí)行:alblax313

11、.33.3 8086指令系統(tǒng)32掌握:n指令碼的含義指令碼的含義n指令對操作數(shù)的要求指令對操作數(shù)的要求n指令的對標(biāo)志位的影響指令的對標(biāo)志位的影響n指令的功能指令的功能338086指令系統(tǒng)從功能上包括六大類:從功能上包括六大類:數(shù)據(jù)傳送數(shù)據(jù)傳送算術(shù)運算算術(shù)運算邏輯運算和移位邏輯運算和移位串操作串操作程序控制程序控制處理器控制處理器控制34數(shù)據(jù)傳送指令n通用數(shù)據(jù)傳送通用數(shù)據(jù)傳送n輸入輸出輸入輸出n地址傳送地址傳送n標(biāo)志位操作標(biāo)志位操作35一、通用數(shù)據(jù)傳送一般數(shù)據(jù)傳送指令一般數(shù)據(jù)傳送指令堆棧操作指令堆棧操作指令交換指令交換指令查表轉(zhuǎn)換指令查表轉(zhuǎn)換指令字位擴展指令字位擴展指令特點:特點:該類指令的執(zhí)行

12、對標(biāo)志位不產(chǎn)生影響該類指令的執(zhí)行對標(biāo)志位不產(chǎn)生影響 361. 一般數(shù)據(jù)傳送指令n一般數(shù)據(jù)傳送指令一般數(shù)據(jù)傳送指令 movn格式:格式:mov dest,srcn操作:操作:srcn例:例: mov al,bl dest37一般數(shù)據(jù)傳送指令注:注:n兩操作數(shù)字長必須相同兩操作數(shù)字長必須相同 ;n兩操作數(shù)不允許同時為存儲器操作數(shù);兩操作數(shù)不允許同時為存儲器操作數(shù);n兩操作數(shù)不允許同時為段寄存器;兩操作數(shù)不允許同時為段寄存器;n在源操作數(shù)是立即數(shù)時,目標(biāo)操作數(shù)不能是段在源操作數(shù)是立即數(shù)時,目標(biāo)操作數(shù)不能是段寄存器;寄存器;nip和和cs不作為目標(biāo)操作數(shù),不作為目標(biāo)操作數(shù),flags一般也不一般也不作

13、為操作數(shù)在指令中出現(xiàn)。作為操作數(shù)在指令中出現(xiàn)。38一般數(shù)據(jù)傳送指令判斷下列指令的正確性:判斷下列指令的正確性:nmov al,bxnmov ax,si05hnmov bxbp,bxnmov ds,1000hnmov dx,09hnmov 1200,si39一般數(shù)據(jù)傳送指令應(yīng)用例將將( (* *) ) 的的asciiascii碼碼2ah2ah送入內(nèi)存送入內(nèi)存1000h1000h開始的開始的100100個個單元中:單元中: mov dimov di,1000h1000h mov cx mov cx,64h64h mov al mov al,2ah2ahagainagain:mov dimov di

14、,alal inc di inc di ;di+1di+1 dec cx dec cx ;cx-1cx-1 jnz again jnz again ;cx0cx0則繼續(xù)則繼續(xù) hlt hlt 40上段程序在代碼段中的存放形式設(shè)設(shè)cs=109ehcs=109eh,ip=0100hip=0100h,則各條指令存放地址,則各條指令存放地址如下:如下: cs : ip cs : ip 機器指令機器指令 匯編指令匯編指令 109e109e:0100 b80010 0100 b80010 mov dimov di,1000h1000h 109e 109e:0103 0103 . . mov cx mov

15、cx,64h64h 109e 109e:0105 0105 . . mov al mov al,2ah2ah 109e 109e:0107 0107 . . mov di mov di,alal 109e 109e:0109 inc di0109 inc di 109e 109e:010a 010a dec cxdec cx 109e 109e:010b jnz 0107h010b jnz 0107h 109e 109e:010d hlt010d hlt41數(shù)據(jù)段中的分布 送上送上2ah2ah后數(shù)據(jù)段中相應(yīng)存儲單元的內(nèi)容改后數(shù)據(jù)段中相應(yīng)存儲單元的內(nèi)容改變?nèi)缦拢鹤內(nèi)缦拢篸sds:1000 2a

16、2a 2a 2a 2a 2a 2a 2a-2a 2a 2a 2a 2a 2a 2a 2a 1000 2a 2a 2a 2a 2a 2a 2a 2a-2a 2a 2a 2a 2a 2a 2a 2a dsds:1010 2a 2a 2a 2a 2a 2a 2a 2a-2a 2a 2a 2a 2a 2a 2a 2a 1010 2a 2a 2a 2a 2a 2a 2a 2a-2a 2a 2a 2a 2a 2a 2a 2a dsds:1020 2a 2a 2a 2a 2a 2a 2a 2a-2a 2a 2a 2a 2a 2a 2a 2a 1020 2a 2a 2a 2a 2a 2a 2a 2a-2a 2

17、a 2a 2a 2a 2a 2a 2a dsds:1030 2a 2a 2a 2a 2a 2a 2a 2a-2a 2a 2a 2a 2a 2a 2a 2a1030 2a 2a 2a 2a 2a 2a 2a 2a-2a 2a 2a 2a 2a 2a 2a 2adsds:1040 2a 2a 2a 2a 2a 2a 2a 2a-2a 2a 2a 2a 2a 2a 2a 2a 1040 2a 2a 2a 2a 2a 2a 2a 2a-2a 2a 2a 2a 2a 2a 2a 2a dsds:1050 2a 2a 2a 2a 2a 2a 2a 2a-2a 2a 2a 2a 2a 2a 2a 2a 10

18、50 2a 2a 2a 2a 2a 2a 2a 2a-2a 2a 2a 2a 2a 2a 2a 2a dsds:1060 2a 2a 2a 2a 00 00 00 00 00 00 00 00 00 00 00 001060 2a 2a 2a 2a 00 00 00 00 00 00 00 00 00 00 00 00偏移地址偏移地址di422. 堆棧操作指令掌握:掌握:n有關(guān)堆棧的概念有關(guān)堆棧的概念 棧頂、棧首、棧底棧頂、棧首、棧底n堆棧指令的操作原理堆棧指令的操作原理 執(zhí)行過程,執(zhí)行結(jié)果執(zhí)行過程,執(zhí)行結(jié)果43堆棧操作的原則n先進后出先進后出n以字為單位以字為單位44堆棧操作指令n壓棧指令壓

19、棧指令 push 格式格式: push oprdn出棧指令出棧指令 pop 格式格式: pop oprd45壓棧指令 pushn指令執(zhí)行過程:指令執(zhí)行過程: (sp(sp)(spsp)-2-2 (spsp)-1-1操作數(shù)高字節(jié)操作數(shù)高字節(jié) (spsp)-2-2操作數(shù)低字節(jié)操作數(shù)低字節(jié) sp堆堆棧棧段段sp高高8位位低低8位位46壓棧指令的操作設(shè)設(shè)ax=1234h,sp=1200h執(zhí)行執(zhí)行 push ax 指令后堆棧區(qū)的狀態(tài):指令后堆棧區(qū)的狀態(tài): 1200h 堆堆棧棧段段 sp-2=11feh12h34h1200h 堆堆棧棧段段12h 34hax入棧后入棧后入棧前入棧前47出棧指令popn指令執(zhí)

20、行過程:指令執(zhí)行過程: spsp sp+1 sp+1 sp sp+2 sp sp+2操作數(shù)低字節(jié)操作數(shù)低字節(jié)操作數(shù)高字節(jié)操作數(shù)高字節(jié) sp堆堆棧棧段段sp高高8位位低低8位位48出棧指令的操作執(zhí)行執(zhí)行 pop ax 12h34h11feh 堆堆棧棧段段代代碼碼段段push 12 34 ax sp+21200h 出棧后出棧后出棧前出棧前49堆棧操作指令說明n指令的操作數(shù)必須是指令的操作數(shù)必須是1616位的;位的;n操作數(shù)可以是寄存器或存儲器兩單元,但不能操作數(shù)可以是寄存器或存儲器兩單元,但不能是立即數(shù);是立即數(shù);n不能從棧頂彈出一個字給不能從棧頂彈出一個字給cscs;npushpush和和pop

21、pop指令在程序中一般成對出現(xiàn);指令在程序中一般成對出現(xiàn);npushpush指令的操作方向是從高地址向低地址,而指令的操作方向是從高地址向低地址,而poppop指令的操作正好相反。指令的操作正好相反。50堆棧操作指令例npush axnpush bxnpush word ptrbxnpop word ptrbxnpop axnpop bx 如此,會使如此,會使ax和和bx的內(nèi)容互換的內(nèi)容互換513. 交換指令n格式:格式: xchg regxchg reg,mem/regmem/regn注:注:n兩操作數(shù)必須有一個是寄存器操作數(shù)兩操作數(shù)必須有一個是寄存器操作數(shù)n不允許使用段寄存器不允許使用段寄

22、存器。n例:例: nxchgxchgaxax,bxbxnxchgxchg20002000,clcl524. 查表指令n格式:格式: xlatn說明:說明:n用用bx的內(nèi)容代表表格首地址,的內(nèi)容代表表格首地址,al內(nèi)容為表內(nèi)位移量,內(nèi)容為表內(nèi)位移量,bx+al得到要查找元素的偏移地址得到要查找元素的偏移地址n操作:操作:n將將bx+al所指單元的內(nèi)容送所指單元的內(nèi)容送al53查表指令例數(shù)據(jù)段中存放有一數(shù)據(jù)段中存放有一張張asciiascii碼轉(zhuǎn)換表,碼轉(zhuǎn)換表,設(shè)首地址為設(shè)首地址為2000h2000h,現(xiàn)欲查出表中第現(xiàn)欲查出表中第1111個代碼的個代碼的asciiascii碼碼303132.394

23、142.45462000h+02000h+110129abef54查表指令例555. 字位擴展指令 n將符號數(shù)的符號位擴展到高位;將符號數(shù)的符號位擴展到高位;n指令為零操作數(shù)指令,采用隱含尋址,隱含指令為零操作數(shù)指令,采用隱含尋址,隱含的操作數(shù)為的操作數(shù)為ax及及ax,dxn無符號數(shù)的擴展規(guī)則為在高位補無符號數(shù)的擴展規(guī)則為在高位補056字節(jié)到字的擴展指令n格式:格式: cbwn操作:將操作:將al內(nèi)容擴展到內(nèi)容擴展到axn規(guī)則:規(guī)則:n若最高位若最高位=1,則執(zhí)行后,則執(zhí)行后ah=ffhn若最高位若最高位=0,則執(zhí)行后,則執(zhí)行后ah=00h57字到雙字的擴展指令n格式:格式: cwdn操作:將

24、操作:將ax內(nèi)容擴展到內(nèi)容擴展到dx axn規(guī)則:規(guī)則:n若最高位若最高位=1,則執(zhí)行后,則執(zhí)行后dx=ffffhn若最高位若最高位=0,則執(zhí)行后,則執(zhí)行后dx=0000h58字位擴展指令例判斷以下指令執(zhí)行結(jié)果:判斷以下指令執(zhí)行結(jié)果: mov al,44h cbw mov ax,0afdeh cwd mov al,86h cbw59二、輸入輸出指令掌握:掌握:n指令的格式及操作指令的格式及操作n指令的兩種尋址方式指令的兩種尋址方式n指令對操作數(shù)的要求指令對操作數(shù)的要求60輸入輸出指令n專門面向?qū)iT面向i/o端口操作的指令端口操作的指令n指令格式:指令格式:輸入指令:輸入指令: in acc,p

25、ort輸出指令輸出指令 :out port,acc端口地址端口地址61指令尋址方式n直接尋址直接尋址 直接給出直接給出8位端口地址,可尋址位端口地址,可尋址256個端口個端口n間接尋址間接尋址 16位端口地址由位端口地址由dx指定,可尋址指定,可尋址64k個端口個端口62i/o指令例nin ax,80hnmov dx,2400hnin al,dxnout dx,axnout 35h , alnout al,35h63三、三、地址傳送指令取偏移地址指令取偏移地址指令lea*lds指令指令*les指令指令64取偏移地址指令lean操作:操作:n將變量的將變量的1616位偏移地址取出送目標(biāo)寄存器位偏

26、移地址取出送目標(biāo)寄存器n格式:格式: lea reglea reg,memmem n指令要求:指令要求:n源操作數(shù)源操作數(shù)必須是一個必須是一個存儲器操作數(shù)存儲器操作數(shù),目標(biāo)操作,目標(biāo)操作數(shù)通常是間址寄存器。數(shù)通常是間址寄存器。65lea指令n比較下列指令:比較下列指令: mov si,data1 lea si,data1 mov bx,bx lea bx,bx data1符號符號地址地址12h34h1100h88h77hbx=1100h66lea指令在程序中的應(yīng)用n將數(shù)據(jù)段中首地址為將數(shù)據(jù)段中首地址為mem1 的的50個字節(jié)的數(shù)個字節(jié)的數(shù)據(jù)傳送到同一邏輯段首地址為據(jù)傳送到同一邏輯段首地址為me

27、m2的區(qū)域的區(qū)域存放。編寫相應(yīng)的程序段存放。編寫相應(yīng)的程序段 。 67lea指令在程序中的應(yīng)用 開開 始始取源地址取源地址取目標(biāo)地址取目標(biāo)地址送數(shù)據(jù)塊長度到送數(shù)據(jù)塊長度到cl傳送一個字節(jié)傳送一個字節(jié)修改地址指針修改地址指針修改計數(shù)值修改計數(shù)值計數(shù)值計數(shù)值=0? 結(jié)結(jié) 束束ny68lea指令在程序中的應(yīng)用 lea si,mem1 lea di,mem2 mov cl,50next: mov al,si mov di,al inc si inc di dec cl jnz next hlt 69四、標(biāo)志位操作指令 lahfsahfpushfpopf隱含操作數(shù)隱含操作數(shù)ah隱含操作數(shù)隱含操作數(shù)fla

28、gs701. lahf,sahfn指令格式:指令格式:lahf n操作:將操作:將flags的低的低8位裝入位裝入ahcfpfafzfcf.ahflagsd15d0d7d0n sahf執(zhí)行與執(zhí)行與lahf相反的操作相反的操作712. pushf,popfn針對針對flags的堆棧操作指令的堆棧操作指令 將標(biāo)志寄存器壓?;驈亩褩棾鰧?biāo)志寄存器壓?;驈亩褩棾?2算術(shù)運算類指令73算術(shù)運算類指令n加法運算指令加法運算指令n減法運算指令減法運算指令n乘法指令乘法指令n除法指令除法指令算術(shù)運算指令的執(zhí)行大多對狀態(tài)標(biāo)志位會產(chǎn)生影響算術(shù)運算指令的執(zhí)行大多對狀態(tài)標(biāo)志位會產(chǎn)生影響74一、加法指令 普通加法指

29、令普通加法指令add 帶進位位的加法指令帶進位位的加法指令adc 加加1指令指令inc加法指令對操作數(shù)的要求與加法指令對操作數(shù)的要求與mov指令相同指令相同751. add指令n格式:格式: add oprd1,oprd2n操作:操作: oprd1+oprd2add指令的執(zhí)行對全部指令的執(zhí)行對全部6個狀態(tài)標(biāo)志位都產(chǎn)生影響個狀態(tài)標(biāo)志位都產(chǎn)生影響oprd176add指令例 mov al,78h add al,99h指令執(zhí)行后指令執(zhí)行后6個狀態(tài)標(biāo)志位的狀態(tài)個狀態(tài)標(biāo)志位的狀態(tài)77add指令例 01111000 + 10011001 000100011標(biāo)志位狀態(tài):標(biāo)志位狀態(tài): cf= sf= af= z

30、f= pf= of=101010782. adc指令n指令格式、對操作數(shù)的要求、對標(biāo)志位的影響指令格式、對操作數(shù)的要求、對標(biāo)志位的影響與與add指令完全一樣指令完全一樣n指令的操作:指令的操作: oprd1+oprd2+cf oprd1nadc指令多用于多字節(jié)數(shù)相加,使用前要先將指令多用于多字節(jié)數(shù)相加,使用前要先將cf清零。清零。793. inc指令n格式:格式: inc oprdn操作:操作: oprd+1 oprd常用于在程序中修改地址指針常用于在程序中修改地址指針不能是段寄存器不能是段寄存器或立即數(shù)或立即數(shù)80二、減法指令普通減法指令普通減法指令sub考慮借位的減法指令考慮借位的減法指令

31、sbb減減1指令指令dec比較指令比較指令cmp求補指令求補指令neg減法指令對操作數(shù)的要求與對應(yīng)的加法指令相同減法指令對操作數(shù)的要求與對應(yīng)的加法指令相同811. sub指令n格式:格式: sub oprd1,oprd2n操作:操作: oprd1- oprd2 oprd1n對標(biāo)志位的影響與對標(biāo)志位的影響與add指令同指令同822. sbb指令n指令格式、對操作數(shù)的要求、對標(biāo)志位的影響指令格式、對操作數(shù)的要求、對標(biāo)志位的影響與與sub指令完全一樣指令完全一樣n指令的操作:指令的操作: oprd1- oprd2- cf oprd1833. dec指令n格式:格式: dec oprdn操作:操作:

32、oprd - 1 oprd指令對操作數(shù)的要求與指令對操作數(shù)的要求與inc相同相同指令常用于在程序中修改計數(shù)值指令常用于在程序中修改計數(shù)值84應(yīng)用程序例 mov bl,2next1 :mov cx,0ffffhnext2: dec cx jnz next2 ; zf=0轉(zhuǎn)轉(zhuǎn)next2 dec bl jnz next1 ; zf=0轉(zhuǎn)轉(zhuǎn)next1 hlt ; 暫停執(zhí)行暫停執(zhí)行854. neg指令n格式:格式: neg oprdn操作:操作: 0 - oprd oprd8/16位寄存器或位寄存器或存儲器操作數(shù)存儲器操作數(shù)用用0減去操作數(shù),相當(dāng)于對該操作數(shù)求補碼減去操作數(shù),相當(dāng)于對該操作數(shù)求補碼兩點注

33、意請兩點注意請見教材見教材p117865. cmp指令n格式:格式: cmp oprd1,oprd2n操作:操作: oprd1- oprd2 指令執(zhí)行的結(jié)果不影響目標(biāo)操作數(shù),僅影響標(biāo)志位!指令執(zhí)行的結(jié)果不影響目標(biāo)操作數(shù),僅影響標(biāo)志位!87cmp指令n用途:用途: 用于比較兩個數(shù)的大小,可作為條件轉(zhuǎn)移指令用于比較兩個數(shù)的大小,可作為條件轉(zhuǎn)移指令轉(zhuǎn)移的條件轉(zhuǎn)移的條件n指令對操作數(shù)的要求及對標(biāo)志位的影響與指令對操作數(shù)的要求及對標(biāo)志位的影響與sub指令相同指令相同88cmp指令n兩個無符號數(shù)的比較:兩個無符號數(shù)的比較: cmp ax,bx 若若 ax bx 若若 ax bx of和和sf狀態(tài)不同狀態(tài)不同 ax bx90cmp指令例 lea bx,max lea si,buf mov cl,20 mov al,sinext:inc si cmp al,si jnc goon ;cf=0轉(zhuǎn)移 xchg si,algoon:dec

溫馨提示

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

評論

0/150

提交評論