微機原理與接口技術(shù)(第3版)課件 第3章 8086指令系統(tǒng)-part1_第1頁
微機原理與接口技術(shù)(第3版)課件 第3章 8086指令系統(tǒng)-part1_第2頁
微機原理與接口技術(shù)(第3版)課件 第3章 8086指令系統(tǒng)-part1_第3頁
微機原理與接口技術(shù)(第3版)課件 第3章 8086指令系統(tǒng)-part1_第4頁
微機原理與接口技術(shù)(第3版)課件 第3章 8086指令系統(tǒng)-part1_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

微機原理與接口技術(shù)第3章8086/8088指令系統(tǒng)目錄3.1尋址方式3.2傳送指令3.3算術(shù)運算指令3.4邏輯運算指令3.5移位指令3.6處理器控制指令、標志位處理指令33.1尋址方式概述隱含于機器指令內(nèi)處理的數(shù)據(jù)在什么地方?要處理的數(shù)據(jù)有多長?操作碼操作數(shù)……操作數(shù)指令的一般格式:微型計算機的組成部分有哪些?4操作碼操作數(shù)……操作數(shù)計算機要執(zhí)行的操作(助記符)操作數(shù)本身操作數(shù)地址或地址的一部分指向操作數(shù)地址的指針其它有關(guān)操作數(shù)的信息如何尋找操作數(shù)就是尋址方式對應(yīng)不同的尋址方式(7種)3.1尋址方式概述5符號含義REG,REG8,REG16寄存器,8位寄存器,16位寄存器SREG段寄存器MEM內(nèi)存操作數(shù)idata立即數(shù)ACC累加器(AX,或者AH、AL)EA/SA

偏移地址/段地址符號約定3.1尋址方式概述63.1尋址方式概述AHALBHBLCHCLDHDL15870AX累加器BX基址寄存器CX計數(shù)寄存器DX數(shù)據(jù)寄存器通用寄存器DISIBPSP目的變址寄存器源變址寄存器基址指針寄存器堆棧指針寄存器指針寄存器變址寄存器FRIP標志寄存器指令指針寄存器CSDSSSES代碼段寄存器數(shù)據(jù)段寄存器堆棧段寄存器附加段寄存器段寄存器寄存器73.1尋址方式立即尋址一般形式匯編指令機器碼(低字節(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ù)的長度一致立即數(shù)默認采用十進制,采用十六進制數(shù)以“H”為后綴,2進制數(shù)以“B”為后綴。以十六進制形式出現(xiàn)的立即數(shù),若以字母開頭,需以數(shù)字0為前綴。立即數(shù)只能是整數(shù),不能是小數(shù)或其他類型的數(shù)據(jù)。注意事項MOV12H,AL

MOVAL,1234H

MOVBH,11MOVBH,11HMOVBH,00110101BMOVBH,0FFH3.1尋址方式立即尋址10一般形式匯編指令機器碼(低字節(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尋址方式寄存器尋址注意事項源操作數(shù)的長度必須與目的操作數(shù)一致。16位操作數(shù):AX,BX,CX,DX,DI,SI,SP和BP等8位操作數(shù):AH,AL,BH,BL,CH,CL,DH和DL兩個操作數(shù)不能同時為段寄存器目的操作數(shù)不能為CSMOVBX,AL

MOVSS,DS

MOVCS,AX

3.1尋址方式寄存器尋址12一般形式匯編指令機器碼(低字節(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ù)物理地址計算分成兩種情況:以SI、DI、BX間接尋址,則通常操作數(shù)在現(xiàn)行數(shù)據(jù)段區(qū)域中,此時DS×16+REG為操作數(shù)的地址,REG表示寄存器可以是SI、DI、BX。以寄存器BP間接尋址,操作數(shù)在堆棧段中。即SS×16+BP作為操作數(shù)的地址。易錯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寄存器相對尋址操作數(shù)在內(nèi)存中,由指定的寄存器內(nèi)容,加上指令中給出的8位或16位偏移量作為操作數(shù)的偏移地址。寄存器為四個寄存器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尋址方式寄存器相對尋址19舉例說明B8H47H011234操作碼代碼段567810000H21000H21001H21002H21003H數(shù)據(jù)段2000HDSMOV AX,[BX+1]20000H1000H21001Hx16MOV BX,1000H1000HBXAL34HAH56H+0001H3.1尋址方式寄存器相對尋址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)存中偏移地址:基址寄存器+變址寄存器+相對偏移量尋址方式含義[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尋址方式相對基址加變址尋址23舉例說明8BH40H01H1234操作碼代碼段567810000H21000H21001H21002H21003H數(shù)據(jù)段2000HDSMOV AX,[BX+SI+1]20000H1000H21002H左移4位MOV BX,1000H1000HBXAL56HAH78H0001HMOV SI,0001H0001HSI+0001H3.1尋址方式相對基址加變址尋址直接尋址方式開始的尋址方式中,操作數(shù)都存放在除代碼段以外的內(nèi)存區(qū)域中。求操作數(shù)所在的有效地址,取得操作數(shù)。[idata]用一個常量來表示地址,可以用于直接定位一個內(nèi)存單元;實際程序設(shè)計中多使用符號地址,直接地址不加方括號,類似于變量名。NUMDW3556

MOVAX,NUM是直接尋址變量定義,詳見4.1.4節(jié)3.1尋址方式尋址方式小結(jié)內(nèi)存操作數(shù)MEM變量名對應(yīng)直接尋址3.1尋址方式尋址方式小結(jié)直接尋址方式開始的尋址方式中,操作數(shù)都存放在除代碼段以外的內(nèi)存區(qū)域中。求操作數(shù)所在的有效地址,取得操作數(shù)。[BX]用一個變量來表示內(nèi)存地址,可以用于間接定位一個內(nèi)存單元;26適用于對一串存儲器操作數(shù)處理的程序(數(shù)組的訪問),多為循環(huán)結(jié)構(gòu)。

將數(shù)組的首地址存儲寄存器(設(shè)置地址指針)MOVBX,1234HMOVAL,[BX]修改地址指針,加1INCBX3.1尋址方式尋址方式小結(jié)內(nèi)存操作數(shù)MEM直接尋址方式開始的尋址方式中,操作數(shù)都存放在除代碼段以外的內(nèi)存區(qū)域中。求操作數(shù)所在的有效地址,取得操作數(shù)。[BX+idata]用一個變量和常量來表示地址,可以在一個起始地址的基礎(chǔ)上用變量間接定位一個內(nèi)存單元;27適用于對一串存儲器操作數(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]用兩個變量表示地址;[BX+SI+idata]用兩個變量和一個常量表示地址。適用于有行和列的二維表格數(shù)據(jù),2個變量一個對應(yīng)于行,一個對應(yīng)于列。3.1尋址方式尋址方式小結(jié)內(nèi)存操作數(shù)MEM帶[]地址表達式必須遵守下列規(guī)則:由于方括號有相加的含義,下面幾種方法是等價的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ù)運算指令3.4邏輯運算指令3.5移位指令3.6處理器控制指令、標志位處理指令31主要內(nèi)容MOV指令棧指令交換指令累加器專用傳送指令地址傳送指令標志位傳送指令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指令運行傳送數(shù)據(jù)的途徑存儲器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ù)不能同時是內(nèi)存操作數(shù)源操作數(shù)和目的操作數(shù)必須類型相同(同為字節(jié)或字類型)注意36存儲器傳送指令中,不允許對CS和IP進行操作;不允許兩個存儲器操作數(shù)之間直接進行信息傳送兩個段寄存器之間不能直接傳送信息,也不允許用立即尋址方式為段寄存器賦初值目的操作數(shù),不能用立即尋址方式;操作數(shù)類型要匹配,字對字,字節(jié)對字節(jié)傳送。MOVIP,0010HMOVCS,AXMOV[1230H],[0010H]MOVAX,[0010H],MOV[1230H],AXMOVDS,SSMOVDS,1000HMOV1234H,AXMOVBX,ALMOV指令3.2傳送指令37主要內(nèi)容3.2傳送指令MOV指令棧指令交換指令累加器專用傳送指令地址傳送指令標志位傳送指令38棧的訪存特性3.2傳送指令所謂棧是在存儲器中開辟一個區(qū)域,用來存放需要暫時保存的數(shù)據(jù),其工作方式是“先進后出”或“后進先出”的方式。1234棧底棧頂8086系統(tǒng)中的堆棧段是由段定義語句在存儲器中定義的一個段,堆棧段容量小于等于64K字節(jié)。

段基址由堆棧段寄存器SS指定,棧頂由堆棧指針SP指定。第4章8086的棧是遞減型的“滿”棧。39棧的訪存特性CPU如何知道哪一段內(nèi)存空間作為??臻g使用?CPU如何知道棧頂?shù)奈恢??提示:寄存器SS和SP的作用是什么1250:0000H1250:0052H…1250:0051H1250:0050H24H56H…1250:0100H棧底SS:SPSS:堆棧段段寄存器SP:堆棧指針寄存器棧頂物理地址=SS16+SP

圖中棧頂物理地址是多少?3.2傳送指令40CSDSSSESIP內(nèi)部寄存器∑123456指令隊列緩沖器總線接口部件(BIU)8位16位20位地址總線外部總線輸入輸出控制電路例(補):

給定一堆棧區(qū),其地址為1250H:0000H~1250H:00FFH,SP=0052H,請問:

(1)棧頂?shù)刂返闹担?2)棧底地址的值;(3)SS的值;(4)若存入數(shù)據(jù)2456H,在堆棧區(qū)如何放置,此時SP的值是多少?棧頂?shù)倪壿嫷刂窞镾S:SP,物理地址=SS16+SP棧頂?shù)刂罚哼壿嫷刂?/p>

1250H:0052H物理地址=1250H16+0052H=12552H棧底地址:在??臻g最大地址單元的下一個地址(不屬于堆棧)物理地址=1250H16+00FFH+1=12600H8086的棧是遞減型的“滿”堆棧。(1)棧底在高地址端1250:0000H1250:00FFH……1250:0100H棧底棧的訪存特性3.2傳送指令41CSDSSSESIP內(nèi)部寄存器∑123456指令隊列緩沖器總線接口部件(BIU)8位16位20位地址總線外部總線輸入輸出控制電路例(補):

給定一堆棧區(qū),其地址為1250H:0000H~1250H:00FFH,SP=0052H,請問:

(1)棧頂?shù)刂返闹担?2)棧底地址的值;(3)SS的值;(4)若存入數(shù)據(jù)2456H,在堆棧區(qū)如何放置,此時SP的值是多少?1250:0000H1250:0052H…1250:0051H1250:0050HSPSP=0050H棧頂指針向低地址方向移動2個字節(jié)(SP←SP

-2),字數(shù)據(jù)的存放根據(jù)小尾順序:低字節(jié)存放在低地址,高字節(jié)存放在高地址24H56H…1250:0100H8086的棧是遞減型的“滿”堆棧。(2)向低地址端生長棧底存放字數(shù)據(jù)棧的訪存特性3.2傳送指令42CSDSSSESIP內(nèi)部寄存器∑123456指令隊列緩沖器總線接口部件(BIU)8位16位20位地址總線外部總線輸入輸出控制電路例(補):

給定一堆棧區(qū),其地址為1250H:0000H~1250H:00FFH,SP=0052H,請問:

(1)棧頂?shù)刂返闹担?2)棧底地址的值;(3)SS的值;(4)若存入數(shù)據(jù)2456H,在堆棧區(qū)如何放置,此時SP的值是多少?1250:0000H1250:0052H…1250:0051H1250:0050H24H56H…1250:0100H棧底SP

當前棧中有多少字節(jié)數(shù)據(jù)?棧底地址?棧頂?shù)刂?0100H?0050H =0B0H棧的訪存特性3.2傳送指令43棧指令

PUSH指令格式:PUSHsrc功能:將字類型的源操作數(shù)src壓入堆棧指令格式說明PUSHREG將一個寄存器中的數(shù)據(jù)入棧PUSHSREG將一個段寄存器中的數(shù)據(jù)入棧PUSHMEM將內(nèi)存單元處的字入棧字類型16位寄存器3.2傳送指令44棧指令

PUSH指令PUSHsrc

的執(zhí)行過程①SP←SP

2;②將src送入SS:SP指向的內(nèi)存單元中,此時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將一個寄存器中的數(shù)據(jù)入棧PUSHSREG將一個段寄存器中的數(shù)據(jù)入棧PUSHMEM將內(nèi)存單元處的字入棧字類型16位字數(shù)據(jù)SS:SP棧底分析指令:PUSH[0200H]已知DS=1600H物理地址=1600H16+0200H=16200H20000H2000AH2000BH2000CH2000DH2000EH2000FH20010H12H34H56H78H16200H16201H56H78H3.2傳送指令46棧指令

POP指令格式:POPdst功能:將當前棧頂?shù)囊粋€字送到目的操作數(shù)dst中指令格式說明POPREG將棧頂?shù)臄?shù)據(jù)送入一個寄存器中POPSREG將棧頂?shù)臄?shù)據(jù)送入一個段寄存器中(不能是CS)POPMEM將棧頂?shù)淖謹?shù)據(jù)送入內(nèi)存單元字為什么POP指令的目的操作數(shù)不能是CS3.2傳送指令47棧指令

POP指令POPdst

的執(zhí)行過程①將SS:SP指向的內(nèi)存單元中的一個字數(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:對比下圖所示的兩段指令,分析它們的功能。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指令棧指令交換指令累加器專用傳送指令地址傳送指令標志位傳送指令51交換指令3.2傳送指令指令格式舉例XCHGREG,REGXCHGCL,BLXCHGREG,MEMXCHGBX,[0]XCHGMEM,REGXCHG[0],BX格式:XCHGdst,src功能:dst?src,即把一個字節(jié)或一個字的源操作數(shù)與目的操作數(shù)相交換。段寄存器和立即數(shù)不能作為一個操作數(shù),不能在累加器之間進行。注意XCHGAH,AL

52分析:

交換兩個內(nèi)存操作數(shù),需要使用一個寄存器作為臨時存儲容器,并把MOV和XCHG指令結(jié)合使用。MOV AX,[0100H]XCHGAX,[1000H]MOV [0100H],AX

如何用堆棧實現(xiàn)同樣的功能?例3.2-3:編寫指令實現(xiàn)DS:[0100H]和DS:[1000H]處兩個字的交換。3.2傳送指令交換指令53MOV AX,[0100H]XCHGAX,[1000H]MOV [0100H],AX

例3.2-3:編寫指令實現(xiàn)[0100H]和[1000H]處兩個字的交換。DS:0100HDS:1000HDS:0101HDS:1001H…34H12H78H56H12H34H56H78H棧底棧頂PUSH[0100H]PUSH[1000H]POP[0100H]POP[1000H]56H78H12H34H使用堆棧實現(xiàn):3.2傳送指令交換指令54主要內(nèi)容3.2傳送指令MOV指令棧指令交換指令累加器專用傳送指令地址傳送指令標志位傳送指令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時,則必須用DX保存端口地址,這樣用DX作端口尋址最多可尋找64K個端口?!?553.2傳送指令56累加器專用傳送指令

IN指令從I/O端口輸入數(shù)據(jù)至AL或AX若端口地址超過255時,則必須用DX保存端口地址,這樣用DX作端口尋址最多可尋找64K個端口。INAL,43H端口地址小于255時或者MOV

DX,43HIN

AL,DX端口地址大于255時必須MOV

DX,1243HIN

AL,DX3.2傳送指令57累加器專用傳送指令

OUT指令將AL或AX中的內(nèi)容傳送到一個輸出端口指令格式含義OUTport,ALAL→portOUTport,AXAH→port+1,AL→portOUTDX,ALAL→(DX)OUTDX,AXAH→(DX+1),AL→(DX)接口部分(教材第6章時再深入學(xué)習)3.2傳送指令58累加器專用傳送指令

XLAT指令格式:XLAT

;AL←(DS×16+BX+AL)要求:①寄存器AL的內(nèi)容作為一個256字節(jié)的表的下標;②表的基地址在BX中;③轉(zhuǎn)換后的結(jié)果存放在AL中.功能:將數(shù)據(jù)段中偏移地址為BX+AL的對應(yīng)內(nèi)存單元中的一個字節(jié)送入AL,從而實現(xiàn)AL中的字節(jié)變換。0~2558位表中首元素在段內(nèi)的偏移地址3.2傳送指令59累加器專用傳送指令例3.2-5:已知AL中有一個0~9范圍內(nèi)的數(shù),試用查表指令寫出能查找出該數(shù)平方值的程序分析:假設(shè)內(nèi)存數(shù)據(jù)段有一張0~9的平方值表。平方值表的起始地址為21000H,則相應(yīng)平方值表如圖:21000H21001H21002H21003H21004H21005H21006H21007H21008H21009H…0149162536496481…偏移量0123456789數(shù)字恰好等于該數(shù)平方值對表起始地址的偏移量設(shè)DS=2000HBX=21000H?DS16=1000H3.2傳送指令60累加器專用傳送指令例3.2-5:已知AL中有一個0~9范圍內(nèi)的數(shù),試用查表指令寫出能查找出該數(shù)平方值的程序21000H21001H21002H21003H21004H21005H21006H21007H21008H21009H…0149162536496481…MOVAX,2000H ;取平方表的段地址MOVDS,AXMOVBX,1000H ;取平方表的偏移地址MOVAL,06H ;AL中為待查找的數(shù)XLATDS16+BXDS16+BX+ALAL636MOVAH,00ADDBX,AXMOVAL,[BX]等價于3.2傳送指令61主要內(nèi)容3.2傳送指令MOV指令棧指令交換指令累加器專用傳送指令地址傳送指令標志位傳送指令62地址傳送指令

LEA指令格式:LEAREG

溫馨提示

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

評論

0/150

提交評論