![微機(jī)原理與接口技術(shù)(第3版)課件 第3章 8086指令系統(tǒng)-part1_第1頁](http://file4.renrendoc.com/view12/M08/00/25/wKhkGWdr7wiAVzlRAAF-YtO7k6I062.jpg)
![微機(jī)原理與接口技術(shù)(第3版)課件 第3章 8086指令系統(tǒng)-part1_第2頁](http://file4.renrendoc.com/view12/M08/00/25/wKhkGWdr7wiAVzlRAAF-YtO7k6I0622.jpg)
![微機(jī)原理與接口技術(shù)(第3版)課件 第3章 8086指令系統(tǒng)-part1_第3頁](http://file4.renrendoc.com/view12/M08/00/25/wKhkGWdr7wiAVzlRAAF-YtO7k6I0623.jpg)
![微機(jī)原理與接口技術(shù)(第3版)課件 第3章 8086指令系統(tǒng)-part1_第4頁](http://file4.renrendoc.com/view12/M08/00/25/wKhkGWdr7wiAVzlRAAF-YtO7k6I0624.jpg)
![微機(jī)原理與接口技術(shù)(第3版)課件 第3章 8086指令系統(tǒng)-part1_第5頁](http://file4.renrendoc.com/view12/M08/00/25/wKhkGWdr7wiAVzlRAAF-YtO7k6I0625.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
微機(jī)原理與接口技術(shù)第3章8086/8088指令系統(tǒng)目錄3.1尋址方式3.2傳送指令3.3算術(shù)運(yùn)算指令3.4邏輯運(yùn)算指令3.5移位指令3.6處理器控制指令、標(biāo)志位處理指令33.1尋址方式概述隱含于機(jī)器指令內(nèi)處理的數(shù)據(jù)在什么地方?要處理的數(shù)據(jù)有多長(zhǎng)?操作碼操作數(shù)……操作數(shù)指令的一般格式:微型計(jì)算機(jī)的組成部分有哪些?4操作碼操作數(shù)……操作數(shù)計(jì)算機(jī)要執(zhí)行的操作(助記符)操作數(shù)本身操作數(shù)地址或地址的一部分指向操作數(shù)地址的指針其它有關(guān)操作數(shù)的信息如何尋找操作數(shù)就是尋址方式對(duì)應(yīng)不同的尋址方式(7種)3.1尋址方式概述5符號(hào)含義REG,REG8,REG16寄存器,8位寄存器,16位寄存器SREG段寄存器MEM內(nèi)存操作數(shù)idata立即數(shù)ACC累加器(AX,或者AH、AL)EA/SA
偏移地址/段地址符號(hào)約定3.1尋址方式概述63.1尋址方式概述AHALBHBLCHCLDHDL15870AX累加器BX基址寄存器CX計(jì)數(shù)寄存器DX數(shù)據(jù)寄存器通用寄存器DISIBPSP目的變址寄存器源變址寄存器基址指針寄存器堆棧指針寄存器指針寄存器變址寄存器FRIP標(biāo)志寄存器指令指針寄存器CSDSSSES代碼段寄存器數(shù)據(jù)段寄存器堆棧段寄存器附加段寄存器段寄存器寄存器73.1尋址方式立即尋址一般形式匯編指令機(jī)器碼(低字節(jié)在前)用C語言描述MOVAX,10HB81000HAX=16MOVAL,28HB028HAL=40操作數(shù)直接放在指令中,緊跟在操作碼后,與操作碼一起放在代碼段源操作數(shù)目的操作數(shù)83.1尋址方式立即尋址舉例說明B8H10H00HB0H28H操作碼操作數(shù)操作碼操作數(shù)MOV AX,10HAHAL10H00HMOV AL,28HAL28H代碼段9立即數(shù)只能作源操作數(shù),不能作目的操作數(shù)。立即數(shù)應(yīng)與目的操作數(shù)的長(zhǎng)度一致立即數(shù)默認(rèn)采用十進(jìn)制,采用十六進(jìn)制數(shù)以“H”為后綴,2進(jìn)制數(shù)以“B”為后綴。以十六進(jìn)制形式出現(xiàn)的立即數(shù),若以字母開頭,需以數(shù)字0為前綴。立即數(shù)只能是整數(shù),不能是小數(shù)或其他類型的數(shù)據(jù)。注意事項(xiàng)MOV12H,AL
MOVAL,1234H
MOVBH,11MOVBH,11HMOVBH,00110101BMOVBH,0FFH3.1尋址方式立即尋址10一般形式匯編指令機(jī)器碼(低字節(jié)在前)用C語言描述指令執(zhí)行前數(shù)據(jù)的位置
MOVAX,BXB9D8HAX=BXCPU內(nèi)寄存器BXMOVAL,BL88DBHAL=BLCPU內(nèi)寄存器BL操作數(shù)包含在CPU的內(nèi)部寄存器中,如寄存器AX、BX、CX、DX等。寄存器可以是8位或者16位。3.1尋址方式寄存器尋址注意事項(xiàng)源操作數(shù)的長(zhǎng)度必須與目的操作數(shù)一致。16位操作數(shù):AX,BX,CX,DX,DI,SI,SP和BP等8位操作數(shù):AH,AL,BH,BL,CH,CL,DH和DL兩個(gè)操作數(shù)不能同時(shí)為段寄存器目的操作數(shù)不能為CSMOVBX,AL
MOVSS,DS
MOVCS,AX
3.1尋址方式寄存器尋址12一般形式匯編指令機(jī)器碼(低字節(jié)在前)指令執(zhí)行前數(shù)據(jù)的位置
MOVAX,[2]A10200H內(nèi)存的DS:2~3單元MOVAL,[2]A00200H內(nèi)存的DS:2單元MOVBX,ES:[2]8B1E0200H
內(nèi)存的ES:2~3單元
操作數(shù)在內(nèi)存中,指令中以具體數(shù)值的形式(在[]中)給出操作數(shù)所在單元的有效地址EA。邏輯地址為段地址(SA):偏移地址(EA)。一般是代碼段以外的內(nèi)存空間段前綴3.1尋址方式直接尋址13舉例說明A0H02H00H1234操作碼代碼段567810000H20000H20001H20002H20003H地址低位地址高位數(shù)據(jù)段2000HDSMOV AL,[0002H]20000H+0002H20002H偏移量左移4位(
16)AL56H字節(jié)地址8位操作數(shù)(字節(jié)型)3.1尋址方式直接尋址舉例說明16位操作數(shù)(字型)A1H02H00H1234操作碼代碼段567810000H20000H20001H20002H20003H地址低位地址高位數(shù)據(jù)段2000HDSMOV AX,[0002H]20000H+0002H20002H偏移量左移4位AL56HAH78H字地址3.1尋址方式直接尋址15一般形式操作數(shù)在內(nèi)存中操作數(shù)的16位EA包含在寄存器SI、DI、BP、BX中為了區(qū)別于寄存器尋址方式,指令中指定的寄存器名要用“[]”括起來。例如[SI]一般是代碼段以外的內(nèi)存空間MOV AX,[BX]MOV AX,BX寄存器尋址寄存器間接尋址3.1尋址方式寄存器間接尋址16操作數(shù)物理地址計(jì)算分成兩種情況:以SI、DI、BX間接尋址,則通常操作數(shù)在現(xiàn)行數(shù)據(jù)段區(qū)域中,此時(shí)DS×16+REG為操作數(shù)的地址,REG表示寄存器可以是SI、DI、BX。以寄存器BP間接尋址,操作數(shù)在堆棧段中。即SS×16+BP作為操作數(shù)的地址。易錯(cuò)MOV AX,[BX];物理地址=DS×16+BXMOV AX,[BP];物理地址=SS×16+BP3.1尋址方式寄存器間接尋址17舉例說明B8H04H1234操作碼代碼段567810000H21000H21001H21002H21003H數(shù)據(jù)段2000HDSMOV AX,[SI]20000H+1000H21000H左移4位MOV SI,1000H1000HSIAL12HAH34H3.1尋址方式寄存器間接尋址18寄存器相對(duì)尋址操作數(shù)在內(nèi)存中,由指定的寄存器內(nèi)容,加上指令中給出的8位或16位偏移量作為操作數(shù)的偏移地址。寄存器為四個(gè)寄存器SI、DI、BX、BP之一尋址方式含義[BX+idata]/idata[BX]EA=BX+idata,SA=DS[SI+idata]/idata[SI]EA=SI+idata,SA=DS[DI+idata]/idata[DI]EA=DI+idata,SA=DS[BP+idata]/idata[BP]EA=BP+idata,SA=SS3.1尋址方式寄存器相對(duì)尋址19舉例說明B8H47H011234操作碼代碼段567810000H21000H21001H21002H21003H數(shù)據(jù)段2000HDSMOV AX,[BX+1]20000H1000H21001Hx16MOV BX,1000H1000HBXAL34HAH56H+0001H3.1尋址方式寄存器相對(duì)尋址20
一般形式操作數(shù)在內(nèi)存中其偏移地址由“基址寄存器”+“變址寄存器”形成基址寄存器——BX(DS),BP(SS)變址寄存器——SI、DI尋址方式含義[BX+SI]/[BX][SI]EA=BX+SI,SA=DS[BX+DI]/[BX][DI]EA=BX+DI,SA=DS[BP+SI]/[BP][SI]EA=BP+SI,SA=SS[BP+DI]/[BP][DI]EA=BP+DI,SA=SS3.1尋址方式基址加變址尋址21舉例說明8BH00H1234操作碼代碼段567810000H21000H21001H21002H21003H數(shù)據(jù)段2000HDSMOV AX,[BX+SI]20000H1000H21001H左移4位MOV BX,1000H1000HBXAL34HAH56H+0001HMOV SI,0001H0001HSI3.1尋址方式基址加變址尋址22
一般形式操作數(shù)在內(nèi)存中偏移地址:基址寄存器+變址寄存器+相對(duì)偏移量尋址方式含義[BX+SI+idata]/idata[BX][SI]EA=BX+SI+idata,SA=DS[BX+DI+idata]/idata[BX][DI]EA=BX+DI+idata,SA=DS[BP+SI+idata]/idata[BP][SI]EA=BP+SI+idata,SA=SS[BP+DI+idata]/idata[BP][DI]EA=BP+DI+idata,SA=SS3.1尋址方式相對(duì)基址加變址尋址23舉例說明8BH40H01H1234操作碼代碼段567810000H21000H21001H21002H21003H數(shù)據(jù)段2000HDSMOV AX,[BX+SI+1]20000H1000H21002H左移4位MOV BX,1000H1000HBXAL56HAH78H0001HMOV SI,0001H0001HSI+0001H3.1尋址方式相對(duì)基址加變址尋址直接尋址方式開始的尋址方式中,操作數(shù)都存放在除代碼段以外的內(nèi)存區(qū)域中。求操作數(shù)所在的有效地址,取得操作數(shù)。[idata]用一個(gè)常量來表示地址,可以用于直接定位一個(gè)內(nèi)存單元;實(shí)際程序設(shè)計(jì)中多使用符號(hào)地址,直接地址不加方括號(hào),類似于變量名。NUMDW3556
MOVAX,NUM是直接尋址變量定義,詳見4.1.4節(jié)3.1尋址方式尋址方式小結(jié)內(nèi)存操作數(shù)MEM變量名對(duì)應(yīng)直接尋址3.1尋址方式尋址方式小結(jié)直接尋址方式開始的尋址方式中,操作數(shù)都存放在除代碼段以外的內(nèi)存區(qū)域中。求操作數(shù)所在的有效地址,取得操作數(shù)。[BX]用一個(gè)變量來表示內(nèi)存地址,可以用于間接定位一個(gè)內(nèi)存單元;26適用于對(duì)一串存儲(chǔ)器操作數(shù)處理的程序(數(shù)組的訪問),多為循環(huán)結(jié)構(gòu)。
將數(shù)組的首地址存儲(chǔ)寄存器(設(shè)置地址指針)MOVBX,1234HMOVAL,[BX]修改地址指針,加1INCBX3.1尋址方式尋址方式小結(jié)內(nèi)存操作數(shù)MEM直接尋址方式開始的尋址方式中,操作數(shù)都存放在除代碼段以外的內(nèi)存區(qū)域中。求操作數(shù)所在的有效地址,取得操作數(shù)。[BX+idata]用一個(gè)變量和常量來表示地址,可以在一個(gè)起始地址的基礎(chǔ)上用變量間接定位一個(gè)內(nèi)存單元;27適用于對(duì)一串存儲(chǔ)器操作數(shù)處理的程序(數(shù)組的訪問),多為循環(huán)結(jié)構(gòu)。將數(shù)組首地址以常量表示,地址指針初值為0MOVBX,0MOVAL,ARRAY[BX]修改地址指針,加1INCBX3.1尋址方式尋址方式小結(jié)內(nèi)存操作數(shù)MEM直接尋址方式開始的尋址方式中,操作數(shù)都存放在除代碼段以外的內(nèi)存區(qū)域中。求操作數(shù)所在的有效地址,取得操作數(shù)。[BX+SI]用兩個(gè)變量表示地址;[BX+SI+idata]用兩個(gè)變量和一個(gè)常量表示地址。適用于有行和列的二維表格數(shù)據(jù),2個(gè)變量一個(gè)對(duì)應(yīng)于行,一個(gè)對(duì)應(yīng)于列。3.1尋址方式尋址方式小結(jié)內(nèi)存操作數(shù)MEM帶[]地址表達(dá)式必須遵守下列規(guī)則:由于方括號(hào)有相加的含義,下面幾種方法是等價(jià)的6[BX][SI] [BX+6][SI] [BX+SI+6]6[BX+SI]若[]內(nèi)包含BP,則隱含使用SS來提供基地址,物理地址=SS16+EA其余情況隱含使用DS提供基地址段超越前綴的使用MOVAX,DS:[BP]物理地址=DS16+BP3.1尋址方式尋址方式小結(jié)目錄3.1尋址方式3.2傳送指令3.3算術(shù)運(yùn)算指令3.4邏輯運(yùn)算指令3.5移位指令3.6處理器控制指令、標(biāo)志位處理指令31主要內(nèi)容MOV指令棧指令交換指令累加器專用傳送指令地址傳送指令標(biāo)志位傳送指令3.2傳送指令32MOV指令指令格式格式:MOVdst,src
功能:dst←src說明:MOV是操作碼,dst和src分別是目的操作數(shù)和源操作數(shù)。指令格式舉例MOVREG,idataMOVAX,8MOVREG,REGMOVBX,AXMOVREG,MEMMOVAX,[0000H]MOVMEM,REGMOV[0000H],AX內(nèi)存操作數(shù)(后5種尋址方式)3.2傳送指令33指令格式格式:MOVdst,src
功能:dst←src說明:MOV是操作碼,dst和src分別是目的操作數(shù)和源操作數(shù)。指令格式舉例MOVSREG,REGMOVDS,AXMOVREG,SREGMOVAX,DSMOVSREG,MEMMOVDS,[0000H]MOVMEM,SREGMOV[0000H],DSMOVMEM,idataMOVBYTEPTR[0000H],01H偽指令(4.1節(jié))聲明操作數(shù)為字節(jié)型MOV指令3.2傳送指令34指令運(yùn)行傳送數(shù)據(jù)的途徑存儲(chǔ)器MEM立即數(shù)idata段寄存器CS,DS,ES,SS通用寄存器AX,AHBX,ALCX,BHDX,BLSI,CHDI,CLSP,DHBP,DL16位8位CS不能作為目的操作數(shù)MOV指令3.2傳送指令MOV指令3.2傳送指令35立即數(shù)和CS只能作為源操作數(shù)IP和FLAGS都不允許作為源操作數(shù)和目的操作數(shù)立即數(shù)不允許直接送至DS,ES,SS或CS源操作數(shù)和目的操作數(shù)不能同時(shí)是內(nèi)存操作數(shù)源操作數(shù)和目的操作數(shù)必須類型相同(同為字節(jié)或字類型)注意36存儲(chǔ)器傳送指令中,不允許對(duì)CS和IP進(jìn)行操作;不允許兩個(gè)存儲(chǔ)器操作數(shù)之間直接進(jìn)行信息傳送兩個(gè)段寄存器之間不能直接傳送信息,也不允許用立即尋址方式為段寄存器賦初值目的操作數(shù),不能用立即尋址方式;操作數(shù)類型要匹配,字對(duì)字,字節(jié)對(duì)字節(jié)傳送。MOVIP,0010HMOVCS,AXMOV[1230H],[0010H]MOVAX,[0010H],MOV[1230H],AXMOVDS,SSMOVDS,1000HMOV1234H,AXMOVBX,ALMOV指令3.2傳送指令37主要內(nèi)容3.2傳送指令MOV指令棧指令交換指令累加器專用傳送指令地址傳送指令標(biāo)志位傳送指令38棧的訪存特性3.2傳送指令所謂棧是在存儲(chǔ)器中開辟一個(gè)區(qū)域,用來存放需要暫時(shí)保存的數(shù)據(jù),其工作方式是“先進(jìn)后出”或“后進(jìn)先出”的方式。1234棧底棧頂8086系統(tǒng)中的堆棧段是由段定義語句在存儲(chǔ)器中定義的一個(gè)段,堆棧段容量小于等于64K字節(jié)。
段基址由堆棧段寄存器SS指定,棧頂由堆棧指針SP指定。第4章8086的棧是遞減型的“滿”棧。39棧的訪存特性CPU如何知道哪一段內(nèi)存空間作為棧空間使用?CPU如何知道棧頂?shù)奈恢茫刻崾荆杭拇嫫鱏S和SP的作用是什么1250:0000H1250:0052H…1250:0051H1250:0050H24H56H…1250:0100H棧底SS:SPSS:堆棧段段寄存器SP:堆棧指針寄存器棧頂物理地址=SS16+SP
圖中棧頂物理地址是多少?3.2傳送指令40CSDSSSESIP內(nèi)部寄存器∑123456指令隊(duì)列緩沖器總線接口部件(BIU)8位16位20位地址總線外部總線輸入輸出控制電路例(補(bǔ)):
給定一堆棧區(qū),其地址為1250H:0000H~1250H:00FFH,SP=0052H,請(qǐng)問:
(1)棧頂?shù)刂返闹担?2)棧底地址的值;(3)SS的值;(4)若存入數(shù)據(jù)2456H,在堆棧區(qū)如何放置,此時(shí)SP的值是多少?棧頂?shù)倪壿嫷刂窞镾S:SP,物理地址=SS16+SP棧頂?shù)刂罚哼壿嫷刂?/p>
1250H:0052H物理地址=1250H16+0052H=12552H棧底地址:在??臻g最大地址單元的下一個(gè)地址(不屬于堆棧)物理地址=1250H16+00FFH+1=12600H8086的棧是遞減型的“滿”堆棧。(1)棧底在高地址端1250:0000H1250:00FFH……1250:0100H棧底棧的訪存特性3.2傳送指令41CSDSSSESIP內(nèi)部寄存器∑123456指令隊(duì)列緩沖器總線接口部件(BIU)8位16位20位地址總線外部總線輸入輸出控制電路例(補(bǔ)):
給定一堆棧區(qū),其地址為1250H:0000H~1250H:00FFH,SP=0052H,請(qǐng)問:
(1)棧頂?shù)刂返闹担?2)棧底地址的值;(3)SS的值;(4)若存入數(shù)據(jù)2456H,在堆棧區(qū)如何放置,此時(shí)SP的值是多少?1250:0000H1250:0052H…1250:0051H1250:0050HSPSP=0050H棧頂指針向低地址方向移動(dòng)2個(gè)字節(jié)(SP←SP
-2),字?jǐn)?shù)據(jù)的存放根據(jù)小尾順序:低字節(jié)存放在低地址,高字節(jié)存放在高地址24H56H…1250:0100H8086的棧是遞減型的“滿”堆棧。(2)向低地址端生長(zhǎng)棧底存放字?jǐn)?shù)據(jù)棧的訪存特性3.2傳送指令42CSDSSSESIP內(nèi)部寄存器∑123456指令隊(duì)列緩沖器總線接口部件(BIU)8位16位20位地址總線外部總線輸入輸出控制電路例(補(bǔ)):
給定一堆棧區(qū),其地址為1250H:0000H~1250H:00FFH,SP=0052H,請(qǐng)問:
(1)棧頂?shù)刂返闹担?2)棧底地址的值;(3)SS的值;(4)若存入數(shù)據(jù)2456H,在堆棧區(qū)如何放置,此時(shí)SP的值是多少?1250:0000H1250:0052H…1250:0051H1250:0050H24H56H…1250:0100H棧底SP
當(dāng)前棧中有多少字節(jié)數(shù)據(jù)?棧底地址?棧頂?shù)刂?0100H?0050H =0B0H棧的訪存特性3.2傳送指令43棧指令
PUSH指令格式:PUSHsrc功能:將字類型的源操作數(shù)src壓入堆棧指令格式說明PUSHREG將一個(gè)寄存器中的數(shù)據(jù)入棧PUSHSREG將一個(gè)段寄存器中的數(shù)據(jù)入棧PUSHMEM將內(nèi)存單元處的字入棧字類型16位寄存器3.2傳送指令44棧指令
PUSH指令PUSHsrc
的執(zhí)行過程①SP←SP
2;②將src送入SS:SP指向的內(nèi)存單元中,此時(shí)SS:SP指向新棧頂。例3.2-1:設(shè)將20000H~2000FH這段內(nèi)存區(qū)間用做棧,分析依次指令一下前后堆棧的變化情況。PUSHAXPOPBX1234HAX20000H2000AH2000BH2000CH2000DH2000EH2000FH20010HSS:SP12H34H棧底??臻g的使用是從高地址往低地址方向的。目的操作數(shù)由SS:SP隱含指出空棧的棧頂和棧底是重合的3.2傳送指令45棧指令
PUSH指令格式:PUSHsrc功能:將字類型的源操作數(shù)src壓入堆棧指令格式說明PUSHREG將一個(gè)寄存器中的數(shù)據(jù)入棧PUSHSREG將一個(gè)段寄存器中的數(shù)據(jù)入棧PUSHMEM將內(nèi)存單元處的字入棧字類型16位字?jǐn)?shù)據(jù)SS:SP棧底分析指令:PUSH[0200H]已知DS=1600H物理地址=1600H16+0200H=16200H20000H2000AH2000BH2000CH2000DH2000EH2000FH20010H12H34H56H78H16200H16201H56H78H3.2傳送指令46棧指令
POP指令格式:POPdst功能:將當(dāng)前棧頂?shù)囊粋€(gè)字送到目的操作數(shù)dst中指令格式說明POPREG將棧頂?shù)臄?shù)據(jù)送入一個(gè)寄存器中POPSREG將棧頂?shù)臄?shù)據(jù)送入一個(gè)段寄存器中(不能是CS)POPMEM將棧頂?shù)淖謹(jǐn)?shù)據(jù)送入內(nèi)存單元字為什么POP指令的目的操作數(shù)不能是CS3.2傳送指令47棧指令
POP指令POPdst
的執(zhí)行過程①將SS:SP指向的內(nèi)存單元中的一個(gè)字?jǐn)?shù)據(jù)送入dst中②SP←SP+2,SS:SP指向新棧頂。例3.2-1:設(shè)將20000H~2000FH這段內(nèi)存區(qū)間用做棧,分析依次指令一下前后堆棧的變化情況。PUSHAXPOPBX
BHBL20000H2000AH2000BH2000CH2000DH2000EH2000FH20010HSS:SP12H34H12H34H已不屬于堆棧棧底源操作數(shù)由SS:SP隱含指出位于棧頂和棧底之間存放的數(shù)據(jù),邏輯上屬于棧元素3.2傳送指令48棧指令例3.2-2:對(duì)比下圖所示的兩段指令,分析它們的功能。MOVAX,2000HMOVDS,AXMOVAX,1234HMOV[0000H],AXMOV AX,2000HMOV SS,AXMOV SP,2MOV AX,1234HPUSHAX2000HAX2000HDS1234HAXDS:020000H20001H20002H20003H12H34H2000HAX2000HSS0002HSPSS:SP20000H20001H20002H20003H1234HAX12H34H3.2傳送指令49棧指令棧指令與MOV指令的區(qū)別PUSH和POP指令訪問的內(nèi)存單元地址不是在指令中給出的,而是由SS:SP指出的;CPU執(zhí)行MOV指令只需要一步操作;而執(zhí)行PUSH和POP指令則要分兩步:PUSH:先修改SP,然后向SS:SP傳送數(shù)據(jù);POP:先取SS:SP處的數(shù)據(jù),后改變SP。MOV[1234H],BXPUSHBX3.2傳送指令50主要內(nèi)容3.2傳送指令MOV指令棧指令交換指令累加器專用傳送指令地址傳送指令標(biāo)志位傳送指令51交換指令3.2傳送指令指令格式舉例XCHGREG,REGXCHGCL,BLXCHGREG,MEMXCHGBX,[0]XCHGMEM,REGXCHG[0],BX格式:XCHGdst,src功能:dst?src,即把一個(gè)字節(jié)或一個(gè)字的源操作數(shù)與目的操作數(shù)相交換。段寄存器和立即數(shù)不能作為一個(gè)操作數(shù),不能在累加器之間進(jìn)行。注意XCHGAH,AL
52分析:
交換兩個(gè)內(nèi)存操作數(shù),需要使用一個(gè)寄存器作為臨時(shí)存儲(chǔ)容器,并把MOV和XCHG指令結(jié)合使用。MOV AX,[0100H]XCHGAX,[1000H]MOV [0100H],AX
如何用堆棧實(shí)現(xiàn)同樣的功能?例3.2-3:編寫指令實(shí)現(xiàn)DS:[0100H]和DS:[1000H]處兩個(gè)字的交換。3.2傳送指令交換指令53MOV AX,[0100H]XCHGAX,[1000H]MOV [0100H],AX
例3.2-3:編寫指令實(shí)現(xiàn)[0100H]和[1000H]處兩個(gè)字的交換。DS:0100HDS:1000HDS:0101HDS:1001H…34H12H78H56H12H34H56H78H棧底棧頂PUSH[0100H]PUSH[1000H]POP[0100H]POP[1000H]56H78H12H34H使用堆棧實(shí)現(xiàn):3.2傳送指令交換指令54主要內(nèi)容3.2傳送指令MOV指令棧指令交換指令累加器專用傳送指令地址傳送指令標(biāo)志位傳送指令55累加器專用傳送指令
IN指令從I/O端口輸入數(shù)據(jù)至AL或AX指令格式含義INAL,portAL←portINAX,portAH←port+1,AL←portINAL,DXAL←(DX)INAX,DXAH←(DX+1),AL←(DX)若端口地址超過255時(shí),則必須用DX保存端口地址,這樣用DX作端口尋址最多可尋找64K個(gè)端口。≤2553.2傳送指令56累加器專用傳送指令
IN指令從I/O端口輸入數(shù)據(jù)至AL或AX若端口地址超過255時(shí),則必須用DX保存端口地址,這樣用DX作端口尋址最多可尋找64K個(gè)端口。INAL,43H端口地址小于255時(shí)或者M(jìn)OV
DX,43HIN
AL,DX端口地址大于255時(shí)必須MOV
DX,1243HIN
AL,DX3.2傳送指令57累加器專用傳送指令
OUT指令將AL或AX中的內(nèi)容傳送到一個(gè)輸出端口指令格式含義OUTport,ALAL→portOUTport,AXAH→port+1,AL→portOUTDX,ALAL→(DX)OUTDX,AXAH→(DX+1),AL→(DX)接口部分(教材第6章時(shí)再深入學(xué)習(xí))3.2傳送指令58累加器專用傳送指令
XLAT指令格式:XLAT
;AL←(DS×16+BX+AL)要求:①寄存器AL的內(nèi)容作為一個(gè)256字節(jié)的表的下標(biāo);②表的基地址在BX中;③轉(zhuǎn)換后的結(jié)果存放在AL中.功能:將數(shù)據(jù)段中偏移地址為BX+AL的對(duì)應(yīng)內(nèi)存單元中的一個(gè)字節(jié)送入AL,從而實(shí)現(xiàn)AL中的字節(jié)變換。0~2558位表中首元素在段內(nèi)的偏移地址3.2傳送指令59累加器專用傳送指令例3.2-5:已知AL中有一個(gè)0~9范圍內(nèi)的數(shù),試用查表指令寫出能查找出該數(shù)平方值的程序分析:假設(shè)內(nèi)存數(shù)據(jù)段有一張0~9的平方值表。平方值表的起始地址為21000H,則相應(yīng)平方值表如圖:21000H21001H21002H21003H21004H21005H21006H21007H21008H21009H…0149162536496481…偏移量0123456789數(shù)字恰好等于該數(shù)平方值對(duì)表起始地址的偏移量設(shè)DS=2000HBX=21000H?DS16=1000H3.2傳送指令60累加器專用傳送指令例3.2-5:已知AL中有一個(gè)0~9范圍內(nèi)的數(shù),試用查表指令寫出能查找出該數(shù)平方值的程序21000H21001H21002H21003H21004H21005H21006H21007H21008H21009H…0149162536496481…MOVAX,2000H ;取平方表的段地址MOVDS,AXMOVBX,1000H ;取平方表的偏移地址MOVAL,06H ;AL中為待查找的數(shù)XLATDS16+BXDS16+BX+ALAL636MOVAH,00ADDBX,AXMOVAL,[BX]等價(jià)于3.2傳送指令61主要內(nèi)容3.2傳送指令MOV指令棧指令交換指令累加器專用傳送指令地址傳送指令標(biāo)志位傳送指令62地址傳送指令
LEA指令格式:LEAREG
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 乙肝患者購買合同范本
- 2025年度人工智能與制造業(yè)融合項(xiàng)目合同補(bǔ)充協(xié)議示范文本
- 保羅皮爾斯合同范本
- 出賣公司合同范本
- 買房銀行抵押合同范本
- 2025年度海鮮餐飲連鎖門店食材供應(yīng)合同
- 兔寶寶合同范本
- 上門做飯創(chuàng)業(yè)計(jì)劃書國(guó)家層面
- 供氣標(biāo)準(zhǔn)合同范本
- 【班級(jí)管理表格】學(xué)生檢討反思承諾書
- 湖南省長(zhǎng)沙市長(zhǎng)郡教育集團(tuán)聯(lián)考2023-2024學(xué)年九年級(jí)上學(xué)期期中道德與法治試卷
- 農(nóng)村宅基地和建房(規(guī)劃許可)申請(qǐng)表
- (完整版)袱子的書寫格式和稱呼
- 供應(yīng)商新增或變更申請(qǐng)表
- 2023年中國(guó)農(nóng)業(yè)銀行應(yīng)急預(yù)案大全
- 低壓電工考試題庫(含答案)
- 邊坡抗滑樁計(jì)算
- 【新版本】華為 H12-711 V4.0 HCIA-Security 認(rèn)證華為安全題庫(含答案)
- 村衛(wèi)生室2023年度績(jī)效考核評(píng)分細(xì)則(基本公共衛(wèi)生服務(wù))
- 關(guān)聯(lián)公司合作合同
評(píng)論
0/150
提交評(píng)論