版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章尋址方式及指令系統(tǒng)
3.1基本概念3.2尋址方式
操作數(shù)的尋址方式轉(zhuǎn)移指令的尋址方式3.3指令系統(tǒng)傳送指令算術(shù)運(yùn)算指令位運(yùn)算指令CPU控制指令I/O類指令串操作指令轉(zhuǎn)移類指令3.4常用DOS系統(tǒng)功能調(diào)用和BIOS中斷調(diào)用
DOS系統(tǒng)功能調(diào)用常用DIOS中斷
3.1基本概念一、指令及指令系統(tǒng)指令是CPU可以理解并執(zhí)行的操作命令。指令系統(tǒng)是CPU的所有指令的集合。指令的兼容性:同一系列機(jī)的指令都是兼容的。二、程序執(zhí)行的基本流程程序是為了解決某一問(wèn)題而編寫(xiě)的有限指令序列。指令的執(zhí)行過(guò)程主要有兩個(gè)階段:取指階段和分析執(zhí)行階段。圖3.1程序執(zhí)行流程圖三、指令的級(jí)別機(jī)器級(jí)和匯編級(jí)機(jī)器指令是指由二進(jìn)制代碼構(gòu)成的可由CPU直接理解并執(zhí)行的指令;匯編指令實(shí)質(zhì)上是機(jī)器指令符號(hào)化的結(jié)果,它與機(jī)器指令是一對(duì)一的。例如:MOVAL,1(易于理解、記憶、書(shū)寫(xiě)不易出錯(cuò))
1011000000000001(難理解、難記憶、書(shū)寫(xiě)易出錯(cuò))四、指令格式指令中應(yīng)包含的信息:“做什么操作”“對(duì)什么操作”指令格式操作碼[操作數(shù)],[操作數(shù)]執(zhí)行何種操作參加操作的數(shù)據(jù)或數(shù)據(jù)存放的地址或操作數(shù)地址計(jì)算方法說(shuō)明:①操作數(shù)的尋址方式是指尋找指令中操作數(shù)的方式。
操作數(shù)可能的存放方式:直接包含在指令中立即數(shù)立即尋址方式包含在某個(gè)寄存器中寄存器操作數(shù)寄存器尋址方式在內(nèi)存中存儲(chǔ)器操作數(shù)(內(nèi)存操作數(shù))存儲(chǔ)器尋址方式在端口中端口操作數(shù)端口尋址方式②操作數(shù)的分類:根據(jù)其在指令中的位置分為第一操作數(shù)和第二操作數(shù)以及隱含操作數(shù)(無(wú)操作數(shù),在指令中不會(huì)出現(xiàn)但會(huì)用到);根據(jù)操作數(shù)的作用分為源操作數(shù)(SRC)和目的操作數(shù)(DST);
例如:MOVAL,80根據(jù)操作數(shù)所對(duì)應(yīng)的操作對(duì)象的字節(jié)數(shù)(也叫數(shù)據(jù)類型)分為字節(jié)操作數(shù)(Byte)、字操作數(shù)(Word)(8088/86字長(zhǎng)為兩個(gè)字節(jié))、雙字操作數(shù)(DoubleWord)、8字節(jié)操作數(shù)(Octalbyets,LongWord)、十字節(jié)操作數(shù)(TenBytes)。按操作數(shù)的個(gè)數(shù)將指令分為零地址指令(無(wú)操作數(shù))、一地址指令(只有一個(gè)操作數(shù))、二地址指令(有二個(gè)操作數(shù))、多地址指令(多于二個(gè)操作數(shù));按指令級(jí)別分為機(jī)器指令和匯編指令;按是否轉(zhuǎn)移分為轉(zhuǎn)移指令和順序指令;按功能分為七大類:傳送類、算術(shù)運(yùn)算類、位操作類、I/O類、串操作類、CPU控制類、轉(zhuǎn)移類;按指令長(zhǎng)度(即指令占用的字節(jié)數(shù))分為一字節(jié)指令、二字節(jié)指令等,8088/86指令長(zhǎng)度是不同的,叫變字長(zhǎng),不同的指令有不同的指令長(zhǎng)度,從一字節(jié)到六字節(jié)均有;按指令執(zhí)行期間取操作數(shù)是否需要與總線打交道分為內(nèi)部指令(不需)和外部指令(需要)。五、指令分類
3.2尋址方式與數(shù)據(jù)有關(guān)的尋址方式與轉(zhuǎn)移地址有關(guān)的尋址方式(轉(zhuǎn)移指令)與數(shù)據(jù)有關(guān)的尋址方式:以MOV
指令為例立即尋址MOVAX,3069H寄存器尋址MOVAL,BH直接尋址MOVAX,[2000H]寄存器間接尋址MOVAX,[BX]
寄存器相對(duì)尋址MOVAX,COUNT[SI]
基址變址尋址MOVAX,[BP][DI]相對(duì)基址變址尋址MOVAX,MASK[BX][SI]存儲(chǔ)器尋址3.2.1操作數(shù)的尋址方式操作數(shù)直接存放在指令中,緊跟在操作碼之后,作為指令的一部分,存放在代碼段里,這種操作數(shù)稱為立即數(shù)。例如:MOVAL,5MOVAX,3064H
圖例MOVAL,‘A’主要用來(lái)給REG或M賦初值。3.2.1.1立即尋址方式AH
AL
AXCS段…………操作碼存儲(chǔ)器例:MOVAX,3064HB8H64H30H∴(AX)=3064H例3.1:MOV
AL,5 ;5為十進(jìn)制字節(jié)常數(shù)MOV
AX,5 ;5為十進(jìn)制字常數(shù)MOVAX,300H ;300H為十六進(jìn)制字常數(shù)MOV
CX,N;在此之前N已定義為常量MOV
AX,DATA ;DATA為段名MOV
AX,5+2*3;5+2*3=11為常數(shù)表達(dá)式注意:立即數(shù)可以是:各種進(jìn)制的常數(shù)、字符常數(shù)、符號(hào)常量、地址(段名、段地址、偏移地址)、常數(shù)表達(dá)式等。立即數(shù)只能作為源操作數(shù),不能作為目的操作數(shù)。立即數(shù)的數(shù)據(jù)類型由指令本身決定。字節(jié)數(shù)據(jù)的取值范圍為-128-+255,字?jǐn)?shù)據(jù)的取值范圍為-32768-+65535。MOV40H,AL錯(cuò)MOVAH,3064H錯(cuò)3.2.1.2寄存器尋址方式指令中出現(xiàn)的寄存器名作為操作數(shù)的尋址方式叫寄存器尋址方式。操作對(duì)象是寄存器中的內(nèi)容。例3.2:MOV
AX,BXMOV
DH,CLMOV
DS,AX注意:匯編指令涉及到的寄存器名有20個(gè)。其中,字節(jié)寄存器只有
AHALBHBLCHCLDHDL寄存器尋址既可以作DST,也可以作SRC。源操作數(shù)和目的操作數(shù)的字長(zhǎng)一致
圖例CS不能作為目的操作數(shù)如:MOVCS,AX錯(cuò)例:MOVAX,BXAX
BX
若(AX)=1234H,(BX)=5678H,則CPU執(zhí)行上條指令后,(AX)=5678H,而(BX)不變。
又如:MOVCX,DL(語(yǔ)法錯(cuò)誤)
錯(cuò)誤原因:類型不一致。3.2.1.3存儲(chǔ)器尋址方式
指令中操作數(shù)是操作對(duì)象在內(nèi)存中的存放地址的尋址方式叫存儲(chǔ)器尋址方式。操作對(duì)象是內(nèi)存地址所對(duì)應(yīng)的存儲(chǔ)單元中的內(nèi)容。存儲(chǔ)器尋址方式分為五種:直接尋址方式、寄存器間接尋址方式、寄存器相對(duì)尋址方式、基址變址尋址方式、相對(duì)基址變址方式。由段地址及段內(nèi)偏移地址確定內(nèi)存地址對(duì)應(yīng)的SR及EA1、直接尋址方式—有效地址EA由指令直接給出
例:MOVAX,[2000H]
*
隱含的段為數(shù)據(jù)段DS*
可使用段超越前綴
例:
MOVES:[2000H],AL*
操作數(shù)地址常數(shù)、常量或常數(shù)表達(dá)式加[]表示,也可由變量名(符號(hào)地址)或變量名加減常量表示。例如:MOVBX,[N] ;N為常量名
MOVBX,ES:[2+3*5] MOVDX,A ;A為變量名
MOV
SI,A+5
EA=N圖例圖例AXCS段操作碼例1:MOVAX,[2000H]若DS為3000H,則:AH
AL
32000H32001H30000H
+DS……
……存儲(chǔ)器數(shù)據(jù)段20H00HA1H2000H
PA=32000H
3050CS段操作碼例2:MOVES:[2000H],AL若ES為2050H,則:AL
22500H20500H
+ES………存儲(chǔ)器附加數(shù)據(jù)段20H00H2000H
PA=22500H
前綴碼2、寄存器間接尋址(簡(jiǎn)稱間接尋址)—EA在基址寄存器(BX/BP)或變址寄存器(SI/DI)中
MOVAX,[BX]PA=16(DS)+(BX)MOVAX,ES:[BX]PA=16(ES)+(BX)
MOVAX,[BP]PA=16(SS)+(BP)MOV
BP,[SI]PA=16(DS)+(SI)MOV
SP,SS:[DI]PA=16(SS)+(DI)
*不允許使用AX、CX、DX存放EAMOVAX,[CX]錯(cuò)*BP默認(rèn)相對(duì)SS段,其它則默認(rèn)相對(duì)DS段。
EA=R
有效地址=(BX)(BP)(SI)(DI)+相對(duì)偏移量(8位或16位)3、寄存器相對(duì)尋址方式—EA為寄存器內(nèi)容加上一個(gè)相對(duì)偏移量
*相對(duì)偏移量可以是常數(shù)、常量、常數(shù)表達(dá)式以及變量名等EA=R+n例3.5:MOV
AX,[BX+6]MOV
BX,DS:[BP+N];N為常量名MOV
BP,A[SI];A為變量名,變量名常寫(xiě)于“[”前MOV
SP,[DI][8];另一種書(shū)寫(xiě)格式MOV
CX,8[DI];另一種書(shū)寫(xiě)格式
例:MOVAX,COUNT[SI]
假設(shè)(DS)=3000H,(SI)=2000H,COUNT=3000H,PA=3000H×10H+(2000H+3000H)
則:PA=35000H
假設(shè)(35000H)=1234H,
那么(AX)=1234H
在相對(duì)偏移量為常數(shù)時(shí),操作數(shù)所在單元的段地址以寄存器為準(zhǔn),若寄存器為BX、SI、DI,操作數(shù)默認(rèn)在DS段中。若寄存器為BP,操作數(shù)默認(rèn)在SS段中。在相對(duì)偏移量為變量時(shí),操作數(shù)所在單元的段地址以變量為準(zhǔn),變量在哪個(gè)段定義的,就取該段的段地址。注意:例:若(DS)=1500H,TABLE為在DS段定義的一個(gè)字變量,且偏移地址為0004H,(BP)=0003H。
MOVAX,TABLE[BP]SRC的尋址方式為寄存器相對(duì)尋址。指令完成的操作為:
(AX)(DS:TABLE+(BP))PA=1500H×10H+(0004H+0003H)
則:PA=15007H4、基址變址尋址方式—EA為一個(gè)基址寄存器內(nèi)容加上一個(gè)變址寄存器的內(nèi)容*必須是一個(gè)基址寄存器和一個(gè)變址寄存器的組合
MOVAX,[BX][BP]錯(cuò)
MOVAX,[SI][DI]錯(cuò)*若用到BP則默認(rèn)相對(duì)SS段,其它則默認(rèn)相對(duì)DS段。有效地址=(BX)(SI)(BP)(DI)+EA=BR+IR例3.6
MOV
AX,[BX+SI]
MOV
BX,DS:[BP+SI]
MOV
DX,[BP][DI] ;另一種書(shū)寫(xiě)格式
MOVAX,ES:[BX][SI]5、相對(duì)基址變址尋址方式—EA為一個(gè)基址寄存器內(nèi)容加上一個(gè)變址寄存器的內(nèi)容再加上一個(gè)相對(duì)偏移量默認(rèn)段地址來(lái)源,同寄存器相對(duì)尋找方式例3.7:MOV
AX,[BX+SI+19]MOV
BX,DS:[BP][SI][8];另一種書(shū)寫(xiě)格式MOV
BP,[BP+DI+N] ;N為常量名MOV
A[BX][DI],DX ;A為變量名相對(duì)偏移量(8位或16位)
有效地址=(BX)(SI)(BP)(DI)++EA=BR+IR+n例:設(shè)DS=1200H,BX=05A6H,SS=5000H,BP=40A0H,SI=2000H,DI=3000H,位移量DISP=1618H。試判斷下列指令的尋址方式,并求出在各種尋址方式下的EA和PA,并說(shuō)明指令執(zhí)行的結(jié)果。MOVAX,[0618H]直接尋址EA=0618H執(zhí)行結(jié)果:將數(shù)據(jù)段12618H和12619H兩單元的內(nèi)容取出送AX。PA=DS左移4位+EA=12000H+0618H=12618H存儲(chǔ)器尋址實(shí)例(一)30MOVAX,[BX]寄存器間接尋址EA=BX=05A6H執(zhí)行結(jié)果:將數(shù)據(jù)段125A6H和125A7H兩單元的內(nèi)容取出送AX。PA=DS左移4位+EA=12000H+05A6H=125A6H存儲(chǔ)器尋址實(shí)例(二)31MOVAX,[BP]寄存器間接尋址EA=BP=40A0H執(zhí)行結(jié)果:將堆棧段540A0H和540A1H兩單元的內(nèi)容取出送AX。PA=SS左移4位+EA=50000H+40A0H=540A0H存儲(chǔ)器尋址實(shí)例(三)32MOVAL,[DI+DISP]寄存器相對(duì)尋址EA=DI+DISP=3000H+1618H=4618H執(zhí)行結(jié)果:將數(shù)據(jù)段16618H單元的內(nèi)容取出送AL。PA=DS左移4位+EA=12000H+4618H=16618H存儲(chǔ)器尋址實(shí)例(四)MOVAX,[BX+DI]基址加變址尋址EA=BX+DI=05A6H+3000H=35A6H執(zhí)行結(jié)果:將數(shù)據(jù)段155A6H和154A7H兩單元的內(nèi)容取出送AX。PA=DS左移4位+EA=12000H+35A6H=155A6H存儲(chǔ)器尋址實(shí)例(五)MOVAX,[BP+SI+DISP]基址變址相對(duì)尋址EA=BP+SI+DISP=40A0H+2000H+1618H=76B8H執(zhí)行結(jié)果:將堆棧段576B8H和576B9H兩單元的內(nèi)容取出送AX。PA=SS左移4位+EA=50000H+78B8H=576B8H存儲(chǔ)器尋址實(shí)例(六)圖3.3任一存儲(chǔ)單元可采用
五種存儲(chǔ)器尋址方式任一種
3.2.1.4端口尋址方式端口地址給出的方式有兩種:常數(shù)(端口直接尋址方式)
DX寄存器(端口間接尋址方式)端口直接尋址方式:指令直接提供8位端口地址。尋址范圍為0-255(00H--FFH),即一個(gè)字節(jié)的地址值。端口間接尋址方式:由DX寄存器給出16位端口地址。
DX的取值范圍為0-65535(0000H—FFFFH)。
例3.8: IN
AX,41H ;41H為端口直接尋址OUT
DX,AL ;DX為端口間接尋址
*端口操作數(shù)只能出現(xiàn)在I/O指令,即IN和OUT指令,端口操作數(shù)實(shí)質(zhì)上是指明端口的地址,操作對(duì)象是端口地址對(duì)應(yīng)的端口中的內(nèi)容。3.3指令系統(tǒng)按功能分為:數(shù)據(jù)傳送類算術(shù)運(yùn)算類邏輯運(yùn)算和移位類串操作類程序控制轉(zhuǎn)移類
I/O類處理器控制類重點(diǎn)關(guān)注:指令的助記符指令的匯編格式指令的基本功能指令支持的數(shù)據(jù)類型指令支持的尋址方式指令的執(zhí)行對(duì)標(biāo)志位的影響英文縮寫(xiě)含義本書(shū)講解指令系統(tǒng)所用的一些英文縮寫(xiě)如下:
SR:段寄存器N:立即數(shù)F:標(biāo)志位
UR:通用寄存器
UR8:8位通用寄存器,UR16:16位通用寄存器
M或[EA]:存儲(chǔ)器操作數(shù)
B:字節(jié),W:字,DW:雙字
DST:目的操作數(shù),SRC:源操作數(shù)
OD:操作數(shù)
傳送類指令(12條)一般傳送交換傳送堆棧傳送地址傳送標(biāo)志傳送POPF傳送類指令又可分為五小類:3.3.1.1一般傳送MOV(賦值)指令。助記符:MOV基本格式:MOV
DST,SRC數(shù)據(jù)類型:B/W功能:將第二操作數(shù)送給第一操作數(shù), 即DST←SRC對(duì)F影響:無(wú)尋址方式:注意:*DST不能是立即數(shù)和CS
*立即數(shù)不能直接送段寄存器
MOVDS,2000H錯(cuò)
*DST、SRC不能同時(shí)為段寄存器
MOVDS,ES錯(cuò)*DST、SRC不能同時(shí)為存儲(chǔ)器尋址
MOV
A,B錯(cuò)注意:不能直接賦值可通過(guò)間接賦值來(lái)實(shí)現(xiàn)。例3.18:
MOV
AX,DATA
MOV
DS,AX ;實(shí)現(xiàn)將DATA段地址送DS
MOV
AX,CS
MOV
DS,AX ;實(shí)現(xiàn)將CS送DS
MOV
AL,A
MOV
B,AL;A、B為字節(jié)變量,實(shí)現(xiàn)將A的值送給BN→UR(注意數(shù)據(jù)表示范圍)例3.9:MOV
AL,80 ;AL=80=50HMOV
AX,80 ;AX=80=0050HMOV
BX,1200;BX=04B0HMOV
CX,N ;N為常量MOV
AX,DATA ;DATA為段名,段名代表段的段地址錯(cuò):MOV
CL,300 ;數(shù)據(jù)300超出字節(jié)表示范圍N→M
(注意類型明確)例3.10:MOV
A,8
;A為變量名,8的類型由A的變量類型決定MOV
BYTEPTR[BX],8;字節(jié)傳送MOVWORDPTR[BX],8;字傳送錯(cuò):MOV
[SI],8;類型不明確注:BYTEPTR和WORDPTR用來(lái)定義地址對(duì)應(yīng)單元的數(shù)據(jù)類型UR→UR(注意類型匹配)例3.11:MOV
AL,AHMOV
BH,DLMOV
SP,AXMOV
CX,CX錯(cuò):MOV
CX,BL;類型不匹配UR→SR
(注意CS不能為目的操作數(shù)及類型匹配)例3.12:MOV
DS,AXMOV
ES,DX錯(cuò):MOV
CS,AX
;CS不能作為目的操作數(shù)錯(cuò):MOV
SS,CL
;CL為字節(jié)類型,類型不匹配UR→M
(類型由UR決定,若變量與UR類型不一致,則需類型轉(zhuǎn)換)例3.13:MOV
[20H],ALMOV
[BX],BXMOV
ES:[BP],CXMOV
A,DX ;假設(shè)A為字變量錯(cuò):MOV
A,DL
;或改為MOVBYTE
PTRA,DLSR→UR(注意類型匹配)例3.14:MOV
AX,CSMOV
BX,SS錯(cuò):MOV
CL,DS;類型不匹配SR→M
(M的類型必須為字)例3.15:MOV
CS:[BX],DSMOV
[BP],SS錯(cuò):MOV
B,CS
;若B為字節(jié)變量,則類型不匹配M→UR(類似于UR→M,只是方向相反)例3.16:MOV
AL,[20H]MOVBX,[BX]M→SR(類似于SR→M,只是方向相反,而且SR不能是CS)例3.17:MOV
DS,SS:[20H]MOV
SS,[BP]3.3.1.2交換傳送交換傳送有二條指令:XCHG(互換)和XLAT(換碼)1、XCHG指令:助記符:XCHG基本格式:XCHG
OD1,OD2數(shù)據(jù)類型:B/W功能:將第二操作數(shù)與第一操作數(shù)的值互換,即OD1
OD2對(duì)F影響 無(wú)尋址方式:注意:*SR不能參加互換XCHGBX,ES錯(cuò)
*立即數(shù)不能參加互換XCHGAX,1234H錯(cuò)*
M與M不能互換XCHG
A,B錯(cuò)例3.20:
XCHG
AX,BX
XCHG
AL,AH
XCHG
CL,[BX][DI]
XCHG
A[DI],DX例3.21:A
B(A、B為字節(jié)變量)
MOV
AL,A
XCHG
AL,B
MOV
A,AL2、XLAT換碼指令(查表指令):助記符XLAT基本格式 XLAT[代碼表的起始地址]數(shù)據(jù)類型隱含尋址方式隱含功能(BX+AL)→AL對(duì)F影響 無(wú)XLAT常用于將序號(hào)碼轉(zhuǎn)換成ASCII碼、鍵盤(pán)按鍵代碼、顯示代碼等其它碼元。實(shí)際使用時(shí)的基本格式:
MOVBX,OFFSET代碼表;將代碼表的首地址送BX MOVAL,序號(hào) ;將需轉(zhuǎn)換的第幾個(gè)送AL XLAT ;將DS:(BX+AL)對(duì)應(yīng)存儲(chǔ)單元內(nèi)容送AL獲取操作對(duì)象的段內(nèi)偏移地址建立代碼轉(zhuǎn)換表:最大容量256字節(jié),將該表定位到內(nèi)存中某個(gè)邏輯段的一片連續(xù)地址中,并將表首地址的偏移量置入BX。
MOVBX,0030H例如:十進(jìn)制數(shù)0~9的七段顯示碼表,被定位在當(dāng)前數(shù)據(jù)段中,其起始地址的偏移地址值為0030H,將AL中待轉(zhuǎn)換的十進(jìn)制數(shù)5轉(zhuǎn)換成對(duì)應(yīng)的七段碼。CS=2000H,IP=007AH,DS=4000H。將待轉(zhuǎn)換的一個(gè)十進(jìn)制數(shù)在表中的序號(hào)送入AL中。
MOVAL,5
執(zhí)行XLAT命令。
XLAT操作步驟:…D7……4079243019120278001020000HCS首地址2007AH40000HDS首地址40030H40031H40032H40033H40034H40035H40036H40037H40038H40039HBX+0BX+1BX+2BX+3BX+4BX+5BX+6BX+7BX+8BX+9+BX=0030HAL=5H查表指令例3.3.1.3堆棧傳送堆棧傳送有二條指令:PUSH(進(jìn)棧)和POP(出棧)在程序調(diào)用、中斷調(diào)用的子程序中一般使用PUSH和POP指令實(shí)現(xiàn)現(xiàn)場(chǎng)信息的保護(hù)及恢復(fù)。堆棧是以后進(jìn)先出(LIFO)的原則存取信息的一種存儲(chǔ)區(qū)域。堆棧的段地址存放在SS中,SP在任何時(shí)候都指向棧頂,進(jìn)出棧后自動(dòng)修改SP。在信息的存與取的過(guò)程中,棧頂是堆棧區(qū)的動(dòng)端,而堆棧區(qū)的另一端則是固定不變的,這端稱為棧底。堆棧以字為單位進(jìn)行壓入彈出操作。
8088/8086系統(tǒng)中,初始化后SP指向堆棧底+1單元的偏移地址。
堆棧:例如:若堆棧段定義空間大小為256字節(jié),則初始化后,(SP)=0100H(SP)=0100H……SS:0000HSS:00FFH256B的堆棧區(qū)棧底1、PUSH指令:助記符PUSH基本格式PUSH
SRC數(shù)據(jù)類型W,只能為字操作尋址方式SRC可以為SR、UR16、M16功能將SRC的內(nèi)容壓入棧頂,即①SP=SP-2②SRC→(SP)
對(duì)于8088分四步:①SP=SP-1②SRC高8位→(SP)③SP=SP-1④SRC低8位→(SP)對(duì)F影響無(wú)例:假設(shè)(AX)=2107H,執(zhí)行
PUSHAX********(SP)PUSHAX執(zhí)行前(SP)********07H21H低地址
高地址PUSHAX執(zhí)行后進(jìn)棧方向例3.22:合法的例子如下:PUSH
CSPUSH
BXPUSH
A ;A為字變量PUSH
WORD
PTR
[BX]PUSH
[BX] ;一定為字操作,所以類型說(shuō)明可省略非法的例子如下:PUSH
AL ;字節(jié)不能進(jìn)棧PUSH
B ;若B為字節(jié)變量,則不對(duì)PUSH1000H ;立即數(shù)不能進(jìn)棧*
PUSH指令只能對(duì)字操作,不能用立即尋址方式將常數(shù)壓入堆棧:MOVAX,OFFFFHPUSHAX2、POP指令:助記符POP基本格式POP
DST數(shù)據(jù)類型W,只能為字操作尋址方式DST可以為SR(除CS外)、UR16、M16功能將棧頂元素出棧給DST,即①(SP)→DST②SP=SP+2
對(duì)于8088分四步:①(SP)→DST低8位②SP=SP+1③(SP)→DST高8位④SP=SP+1對(duì)F影響無(wú)(SP)********07H21HPOPBX執(zhí)行前(SP)********07H21H低地址
高地址POPBX執(zhí)行后
(BX)=2107H例:POPBX出棧方向例3.23:合法的例子如下:POP
DSPOP
BXPOP
A ;A為字變量POP
WORD
PTR
[BX]POP
[BX];一定為字操作,所以類型說(shuō)明可省略非法的例子如下:POP
AL ;字節(jié)不能出棧POP
B ;若B為字節(jié)變量,則不對(duì)POP
CS ;CS不能作為出棧對(duì)象*
POP指令只能是字操作,立即數(shù)、CS不能作為目的操作數(shù)例1:若(SS)=2000H,(SP)=0100H(AX)=1122H,(BX)=3344H,(CX)=5566H則CPU執(zhí)行以下指令:
PUSHAXPUSHBX
PUSH
CX;此時(shí),棧頂單元的PA=
例1:若(SS)=2000H,(SP)=0100H(AX)=1122H,(BX)=3344H,(CX)=5566H則CPU執(zhí)行以下指令后,
POPAX;(AX)=
POPCX;(CX)=
POP
BX;(BX)=
;此時(shí),(SP)=
例2:若CPU執(zhí)行
PUSHAXPUSHBX
PUSH
CX
指令組后,試將壓入堆棧的(AX)DX(用MOV指令實(shí)現(xiàn))。SS:SPMOVBP,SPMOVDX,[BP]+04HCLCHBLBHALAH+1+2+3+4BP例:PUSHDSSUBAX,AXPUSHAX…………RET例:PUSHAXPUSHBXPUSHCX……;其間用到AX、BX、CXPOPCX;后進(jìn)先出
POPBXPOPAX常見(jiàn)應(yīng)用:用PUSH和POP的組合也可實(shí)現(xiàn)兩數(shù)的互換例3.24(實(shí)現(xiàn)AX與BX的互換):PUSH
AX;①PUSH
BX;②POP
AX;③POP
BX;④圖3.6堆棧操作示意圖AXBX②①③SPSP④3.3.1.4地址傳送地址傳送有三條指令:LEA(送有效地址)LDS(置有效地址及DS段地址)LES(置有效地址及ES段地址)1、LEA指令:助記符LEA基本格式LEA
UR16,[EA]數(shù)據(jù)類型隱含功能將第二操作數(shù)存儲(chǔ)器操作數(shù)的偏移 地址送給第一操作數(shù)指定的16位通用寄存器,即EA→UR16。尋址方式包含在基本格式中對(duì)F影響無(wú)它傳送的不是操作數(shù)本身,而是操作數(shù)的有效地址。*源操作數(shù)必須是一個(gè)存儲(chǔ)器操作數(shù),目標(biāo)操作數(shù)通常是間址寄存器(一般用BX、BP、SI、DI)。例3.25:LEA
SI,[2000H]
;SI=2000H,等價(jià)于:MOV
SI,2000HLEA
BX,TABLE圖例;TABLE的偏移地址送BX,即BX指向TABLE
等價(jià)于:MOVBX,OFFSETTABLELEA
DI,[BP]
;DI=BP,等價(jià)于:與MOV
DI,BP等價(jià)LEABX,[BX+SI+0F62H]77H88HDS:0010H99H66HDAT1TABLE
那么,CPU執(zhí)行LEABX,TABLE指令完成的功能是:
BX
將TABLE變量所具有的EA
∴(BX)=0012H
◆上述指令完成的功能等效于:
MOVBX,OFFSETTABLE
而CPU執(zhí)行MOVBX,TABLE指令完成的功能是:
BX(TABLE)
∴(BX)=9988H
LEA指令在程序中的應(yīng)用例:將數(shù)據(jù)段中首地址為MEM1
的50個(gè)字節(jié)的數(shù)據(jù)傳送到同一邏輯段首地址為MEM2的區(qū)域存放。編寫(xiě)相應(yīng)的程序段。LEA指令在程序中的應(yīng)用
開(kāi)始取源地址取目標(biāo)地址送數(shù)據(jù)塊長(zhǎng)度到CL傳送一個(gè)字節(jié)修改地址指針修改計(jì)數(shù)值計(jì)數(shù)值=0?結(jié)束NYLEA指令在程序中的應(yīng)用LEASI,MEM1LEADI,MEM2
MOVCL,50NEXT:MOVAL,[SI]MOV[DI],ALINCSIINCDIDECCLJNZNEXTHLT2、LDS與LES助記符LDS/LES基本格式 LDS/LES
UR16,[EA]數(shù)據(jù)類型隱含功能將存儲(chǔ)器操作數(shù)的第一字送給第一操作數(shù)指定的16位通用寄存器,并將存儲(chǔ)器操作數(shù)的第二字送給操作碼部分指明的段寄存器DS/ES。即(EA)→UR16
(EA+2)→DS/ES尋址方式包含在基本格式中對(duì)F影響無(wú)LDS/LES不但使指定的通用寄存器值發(fā)生變化,而且DS/ES也會(huì)發(fā)生變化。例如:LDS
BX,[SI]
;BX=(SI),DS=(SI+2)BXDSSIDS圖3.7
LDS
BX,[SI]的功能40H00H00H30HTABLE(DS):1000HMOVBX,TABLE;(BX)=0040HMOVBX,OFFSETTABLE;(BX)=1000HLEABX,TABLE;(BX)=1000HLDSBX,TABLE;(BX)=0040H;(DS)=3000HLESBX,TABLE;(BX)=0040H;(ES)=3000H注意:*SRC必須為存儲(chǔ)器尋址方式*DST是UR16間址寄存器例如:例:數(shù)M所在單元的地址指針在POINT雙字單元存放著,試將數(shù)MAL中。LDSBX,POINTMOVAL,[BX]20H01HPOINT15H1500H:0120H00H≈≈BXDSDS:BXM3.3.1.5標(biāo)志傳送
標(biāo)志傳送有四條指令:LAHF(PSW低8位送AH)SAHF(AH送PSW低8位)PUSHF(PSW進(jìn)棧)POPF(出棧給PSW)1、LAHF/SAHF指令:助記符LAHF/SAHF基本格式LAHF/SAHF功能
PSW低8位→AH/AH→PSW低8位對(duì)F影響無(wú)/影響除OF外的其余5個(gè)狀態(tài)標(biāo)志SF、ZF、
AF、PF和CF,AH的對(duì)應(yīng)位去填充各標(biāo)志位。SFZF
AFPFCF01234567AH圖3.8
LAHF的功能SFZF
AFPFCF01234567AH圖3.9
SAHF的功能注:這一對(duì)指令主要用于除OF外5個(gè)狀態(tài)標(biāo)志位的保護(hù)和恢復(fù)。2、PUSHF/POPF指令:助記符PUSHF/POPF基本格式PUSHF/POPF功能
SP=SP-2,PSW→(SP)/(SP)→PSW,SP=SP+2對(duì)F影響無(wú)
/影響所有狀態(tài)標(biāo)志(SF、ZF、AF、
PF、OF和CF)及所有控制標(biāo)志(IF、
TF和DF),彈出的棧頂元素對(duì)應(yīng)位去填充各標(biāo)志位。注:PUSHF/POPF指令主要用于標(biāo)志位的保存和恢復(fù),PUSHF用于保存所有標(biāo)志位到棧中,POPF用于從棧中恢復(fù)所有標(biāo)志位。
標(biāo)志傳送舉例例3.26設(shè)置SF=1,ZF=0,AF=0,PF=1,CF=0。
分析:要置5個(gè)狀態(tài)標(biāo)志位可用SAHF指令,先按對(duì)應(yīng)位填充一個(gè)立即數(shù)送AH,再用SAHF實(shí)現(xiàn)將AH
送PSW的低8位。;無(wú)關(guān)位一般填0,即84H解:MOVAH,10000100B
SAHF例3.27設(shè)置OF=1,DF=0,IF=1,TF=0,SF=1,ZF=0,AF=0,PF=1,CF=0。分析:要置9個(gè)狀態(tài)標(biāo)志位可用POPF指令,先按對(duì)應(yīng)位填充一個(gè)立即數(shù)送AX,再將AX進(jìn)棧,而后再用POPF實(shí)現(xiàn)將棧頂元素出棧送PSW,即N→AX→?!鶳SW。解:MOVAX,0000101010000100B;即0A84HPUSHAX
POPF3.3.5I/O類指令(2條指令)
I/O指令只有兩條指令:輸入IN指令,輸出OUT指令。IN AL/AX,PORT/DX ;“/”代表或的關(guān)系,所以可一分為四
OUT
PORT/DX,AL/AX ;“/”代表或的關(guān)系,所以可一分為四
累加器專用傳送指令(只限使用AX或AL)
輸入指令I(lǐng)N(I/OCPU)
長(zhǎng)格式:INAL,PORT(字節(jié))
INAX,PORT(字)執(zhí)行操作:(AL)(PORT)(字節(jié))
(AX)(PORT+1,PORT)(字)短格式:INAL,DX(字節(jié))
INAX,DX(字)執(zhí)行操作:(AL)((DX))(字節(jié))
(AX)((DX)+1,(DX))(字)
端口直接尋址:其取值范圍為0-255即00H-FFH端口間接尋址:其取值范圍為0-65535即0000H-FFFFH輸出指令OUT(CPUI/O)長(zhǎng)格式:OUTPORT,AL(字節(jié))
OUTPORT,AX(字)執(zhí)行操作:(PORT)(AL)(字節(jié))
(PORT+1,PORT)(AX)(字)短格式:OUTDX,AL(字節(jié))
OUTDX,AX(字)執(zhí)行操作:((DX))(AL)(字節(jié))
((DX)+1,(DX))(AX)(字)注意:*不影響標(biāo)志位*前256個(gè)端口號(hào)00H~FFH可直接在指令中指定(長(zhǎng)格式)*如果端口號(hào)256,端口號(hào)
DX(短格式)例:INAX,28H MOVDATA_WORD,AX例:MOVDX,3FCHINAX,DX例:OUT5,AL
3.3.2算術(shù)運(yùn)算類指令(20條)算術(shù)運(yùn)算類指令可分為三小類:加減運(yùn)算乘除運(yùn)算BCD修正3.3.2.1加減運(yùn)算(8條)1、單目運(yùn)算指令三條:
INC(加1)、DEC(減1)、NEG(求補(bǔ)):助記符INC/DEC/NEG基本格式INC/DEC/NEGOD數(shù)據(jù)類型B/W尋址方式OD可以為UR及M功能OD=OD+1/OD=OD-1/OD=0-OD對(duì)F影響INC、DEC對(duì)CF標(biāo)志位無(wú)影響,對(duì)其余
5個(gè)狀態(tài)標(biāo)志位均有影響;NEG對(duì)6個(gè)狀態(tài)標(biāo)志位均有影響。不能是段寄存器或立即數(shù)例3.26:INC
BX;BX=BX+1DEC
AL
;AL=AL-1INCBYTEPTR[BX]
;DS:BX對(duì)應(yīng)的內(nèi)存字節(jié)單元加1DEC
WORDPTR[BP]
;SS:BP對(duì)應(yīng)的內(nèi)存字單元減1例3.29理解下面的程序段,并填充結(jié)果。
;設(shè)CF=0
MOV AL,0
MOV AH,1
DEC AL
;AX=
H,CF=
。解:AL=00H-1=FFH,AH=01H,CF不變,所以AX=01FFH,CF=0。(其他5個(gè)標(biāo)志位為:OF=0,SF=1,ZF=0,AF=1,PF=1)注:INC或DEC常用于循環(huán)程序中修改地址指針或循環(huán)計(jì)數(shù)等場(chǎng)合(如前例)。例:NEG
DL分析: NEG(求補(bǔ))功能為:0-DL=-DL設(shè):DL原始值為5,則執(zhí)行后DL為-5,即FBH(-5的補(bǔ)碼);6個(gè)標(biāo)志位:
SF=1,PF=0,ZF=0,OF=0,CF=1,AF=1。注意:NEG實(shí)質(zhì)在對(duì)操作數(shù)按位取反后加1
(即求補(bǔ)操作)對(duì)標(biāo)志位影響的規(guī)律總結(jié):INC加1指令只是當(dāng)對(duì)7FH或7FFFH加1時(shí)OF=1。DEC減1指令只是當(dāng)對(duì)80H或8000H減1時(shí)OF=1。NEG求補(bǔ)指令只有當(dāng)對(duì)80H(8位,即-128)或8000H(16位,即-32768)求補(bǔ)時(shí)OF=1,其它情況下OF=0;只有當(dāng)對(duì)0求補(bǔ)時(shí)CF=0,其它情況下CF=1。2、雙目運(yùn)算指令5條:
ADD(加)、ADC(帶CF加)、SUB(減)、
SBB(帶CF減)、CMP(比較)基本格式
ADD/ADC/SUB/SBB/CMPDST,SRC功能
DST=DST+SRC/
DST=DST+SRC+CF/
DST=DST-SRC/DST=DST-SRC-CF/DST-SRC數(shù)據(jù)類型B/W尋址方式:源操作數(shù):8/16位通用寄存器,存儲(chǔ)器,立即數(shù)目的操作數(shù):8/16位通用寄存器,存儲(chǔ)器對(duì)F影響這5條指令對(duì)6個(gè)狀態(tài)標(biāo)志位均有影響。影響的填充方法按通用填充方法填充。
提示:
目的操作數(shù)不能為立即數(shù);源操作數(shù)和目的操作數(shù)不能同時(shí)為存儲(chǔ)器;段寄存器不能作操作數(shù)。例3.30:ADD
AX,BX
;AX=AX+BX設(shè)指令執(zhí)行前AX=35C9H,BX=726DH,則執(zhí)行后AX=A836H,BX不變,SF=1,PF=1,ZF=0,OF=1,CF=0,AF=1例3.31:ADC
BH,DL
;BH=BH+DL+CF設(shè)指令執(zhí)行前BH=96H,DL=6DH,CF=1,則執(zhí)行后BH=04H,DL不變,SF=0,PF=0,ZF=0,OF=0,CF=1,AF=1注:
ADC指令多用于多字節(jié)數(shù)相加,使用前要先將CF清零。例:完成雙字相加,被加數(shù)存放在DX(高)與AX(低)中,加數(shù)放在BX(高)和CX(低)中,和放在DX與AX中。程序段如下:
ADDAX,CXADCDX,BX
;高位運(yùn)算時(shí)要考慮低位的進(jìn)位例3.32:SUB
CX,[BX]
;CX=CX-(BX),字操作設(shè)指令執(zhí)行前CX=1296H,DS=2000H,BX=100H,(20100H)=3DH,(20101H)=28H,則(BX)=283DH,執(zhí)行后CX=EA59H,BX、(BX)不變,SF=1,PF=1,ZF=0,OF=0,CF=1,AF=1例3.33:SBB
[DI],BL
;(DI)=(DI)-BL-CF,字節(jié)操作設(shè)指令執(zhí)行前DS=2000H,BL=76H,DI=6DH,(2006DH)=B2H,CF=1,則(DI)=B2H,執(zhí)行后(2006DH)=3BH,DI、BL不變,SF=0,PF=0,ZF=0,OF=1,CF=0,AF=1例3.34:CMP
AL,10H
;AL-10H,不保存結(jié)果,但影響標(biāo)志,可用于數(shù)據(jù)大小比較。設(shè)指令執(zhí)行前AL=96H,則執(zhí)行后AL不變,AL-10=86H。SF=1,PF=0,ZF=0,OF=0,CF=0,AF=0注:用于比較兩個(gè)數(shù)的大小,可作為條件轉(zhuǎn)移指令轉(zhuǎn)移的條件判斷兩個(gè)數(shù)大?。簾o(wú)符號(hào)數(shù):根據(jù)借位標(biāo)志CF判斷。
ZF=1,AX=BX;ZF=0,AXBXCF=0,表示無(wú)借位,即AX
BX;
CF=1,表示有借位,即AX<BX;
有符號(hào)數(shù):根據(jù)溢出標(biāo)志OF和符號(hào)標(biāo)志SF兩者的異或運(yùn)算結(jié)果來(lái)判斷。
OFSF=0
(OF和SF狀態(tài)相同)時(shí),則AXBX;
OFSF=1(OF和SF狀態(tài)相異)時(shí),則AX<BX;通常,比較指令后面跟一條條件轉(zhuǎn)移指令,檢查標(biāo)志位的狀態(tài)決定程序的轉(zhuǎn)向。
假設(shè)執(zhí)行比較指令:CMPAX,BX比較指令例例3.35理解下面的程序段,并填充結(jié)果。
MOV AX,’愛(ài)’
MOV BX,’AI’
CMP AX,BX;SF⊕OF=
,CF=
。分析:主要要理解ASCII碼、漢字內(nèi)碼,以及無(wú)符號(hào)數(shù)、有符號(hào)數(shù)的大小比較。ASCII碼最高位為0,漢字內(nèi)碼最高位為1,所以作為無(wú)符號(hào)數(shù)漢字比英文字符大,作為有符號(hào)數(shù)漢字比英文字符要小。解:SF⊕OF=1,CF=0。3.3.2.2乘除運(yùn)算乘除運(yùn)算共有六條指令:
MUL(無(wú)符號(hào)數(shù)乘)、IMUL(有符號(hào)數(shù)乘)、DIV(無(wú)符號(hào)數(shù)除)、IDIV(有符號(hào)數(shù)除)、CBW(字節(jié)擴(kuò)展成字)、CWD(字?jǐn)U展成雙字)。1、MUL、IMUL指令:助記符MUL/IMUL基本格式MUL/IMUL
SRC數(shù)據(jù)類型B/W功能與SRC的數(shù)據(jù)類型有關(guān),SRC若為字節(jié)則為 AL*SRC送AX;SRC若為字則為AX*SRC送 DX、AX,DX保存高16位,AX保存低16位。尋址方式SRC只能是UR或M,不能為N或SR。對(duì)F影響對(duì)6個(gè)狀態(tài)標(biāo)志均有影響,但只有CF、OF有定義,其填充方法為若字節(jié)乘字節(jié)未超過(guò)字節(jié)表示范圍或字乘字未超過(guò)字范圍則CF=0、OF=
0,否則CF=1、OF=1。乘數(shù)對(duì)乘法指令主要注意:一是隱含操作數(shù):被乘數(shù)一定為AL或AX,積為AX或DX、AX,不需在指令中另行指明;二是對(duì)CF、OF的填充:無(wú)符號(hào)數(shù)只要判斷高位段是否為全0,若是則未超出范圍,有符號(hào)數(shù)只要判斷高位段是否為低位的符號(hào)位擴(kuò)展,若是則未超出范圍。三是模擬計(jì)算:無(wú)符號(hào)數(shù)直接相乘即可,有符號(hào)數(shù)則需先用絕對(duì)值相乘,而后再加符號(hào)位(同號(hào)得正、異號(hào)得負(fù))。例3.36:若AL為05H、BL為F7H則MUL
BL指令執(zhí)行后AX=?CF、OF=?無(wú)符號(hào)數(shù)乘法直接相乘,所以AX= 05*F7H=04D3H、CF=1、OF=1。例3.37:若AL為05H、BL為F7H則IMUL
BL指令執(zhí)行后AX、CF、OF=?有符號(hào)數(shù)乘法先用絕對(duì)值相乘、再加符號(hào)位,所以AX=-(05*09H)=-2DH
=FFD3H、CF=0、OF=0。例:(AX)=16A5H,(BX)=0611H
(1)IMULBL
;(AX)(AL)*(BL);A5*11-(5B*11)=-060BHF9F5H;(AX)=F9F5HCF=OF=1(2)MULBX;(DX,AX)(AX)*(BX);16A5*0611=00895EF5;(DX)=0089H(AX)=5EF5HCF=OF=12、DIV、IDIV指令:助記符DIV/IDIV基本格式DIV/IDIV
SRC數(shù)據(jù)類型B/W功能與SRC的數(shù)據(jù)類型有關(guān),SRC若為字節(jié)則為AX/SRC的商送AL、余數(shù)送AH;SRC若為字則為DX、AX/SRC的商送AX、
余數(shù)送DX。尋址方式SRC只能是UR或M,不能為N或SR。對(duì)F影響對(duì)6個(gè)狀態(tài)標(biāo)志均有影響,但均無(wú)定義。指令要求被除數(shù)是除數(shù)的雙倍字長(zhǎng)對(duì)除法指令主要注意:一是隱含操作數(shù),被除數(shù)一定為AX或DX、AX,商為AL或AX,余數(shù)為AH或DX,不需在指令中另行指明;二除法不允許出現(xiàn)除數(shù)為0或商溢出(除字節(jié)時(shí),商超出AL或除字時(shí),商超出AX范圍),若發(fā)生除數(shù)為0或商溢出則其結(jié)果沒(méi)有意義,并引起中斷。三是模擬計(jì)算,無(wú)符號(hào)數(shù)直接相除即可,有符號(hào)數(shù)則需先用絕對(duì)值相除,而后再加符號(hào)位商的符號(hào)為同號(hào)得正、異號(hào)得負(fù),余數(shù)的符號(hào)則與被除數(shù)相同。例3.38:若AX為1005H、BL為17H則DIV
BL指令執(zhí)行后AX=?無(wú)符號(hào)數(shù)除法直接相除,所以1005H/17H=4101/23,商為178(176+2),余數(shù)為7,即AL=B2H、AH=07H,因此AX=07B2H。例3.39:若AX為FF05H、BL為17H則IDIV
BL指令執(zhí)行后AX=?有符號(hào)數(shù)除法先用絕對(duì)值相除、再加符號(hào)位,F(xiàn)F05H的絕對(duì)值為0-FF05H=FBH=251,251/23的商為10,余數(shù)為21,商的符號(hào)為負(fù),余數(shù)的符號(hào)也為負(fù),所以AL=-10=F6H,AH=-21=EBH,因此AX=EBF6H。例3.41理解下面的程序段,并填充結(jié)果。
MOV AL,200
MOV AH,-1
MOV BL,10
IDIV BL;AX=
H,商十進(jìn)制為
。AX=FFC8H=-56,BL=10,商為-5即FBH,余數(shù)為-6即FAH解:AX=FAFBH,商十進(jìn)制為-5。3、CBW和CWD指令:助記符CBW/CWD基本格式CBW/CWD數(shù)據(jù)類型隱含功能CBW為將AL有符號(hào)擴(kuò)展成AX/CWD為將AX有符號(hào)擴(kuò)展成DXAX尋址方式隱含對(duì)F影響對(duì)標(biāo)志位無(wú)影響MOVAL,64H
;AL=64H(機(jī)器數(shù)),表示10進(jìn)制數(shù)100(真值)CBW
;將符號(hào)0擴(kuò)展,AX=0064H,仍然表示100MOVAX,0FF00H
;AX=FF00H,表示有符號(hào)10進(jìn)制數(shù)-256CWD
;將符號(hào)位“1”擴(kuò)展,DX.AX=FFFFFF00H
;仍然表示-256例:例3.40:設(shè)A,B,C,D為字節(jié)變量,且A除B不會(huì)溢出,試編寫(xiě)無(wú)符號(hào)數(shù)或有符號(hào)數(shù)A/B商送C,余數(shù)送D。
;無(wú)符號(hào)數(shù)除;有符號(hào)數(shù)除MOV
AL,A
MOV
AL,AMOV
AH,0
CBWDIV
B
IDIV
BMOV
C,AL
MOV
C,ALMOV
D,AH
MOV
D,AH例:x,y,z,v均為16位帶符號(hào)數(shù),計(jì)算
(v-(x*y+z–540))/xMOVAX,XIMULY;x*y→(DX,AX)MOVCX,AXMOVBX,DXMOVAX,ZCWD;Z→(DX,AX)ADDCX,AXADCBX,DX;x*y+z→(BX,CX)SUBCX,540SBBBX,0;x*y+z-540MOVAX,VCWD;V→(DX,AX)SUBAX,CXSBBDX,BX;v-(x*y+z-540)IDIVX;(v-(x*y+z-540))/x→(AX) 余數(shù)→(DX)3.3.2.3
BCD修正BCD修正共有六條指令,可分為壓縮BCD碼修正指令和非壓縮BCD碼修正指令。壓縮BCD碼修正指令有:
DAA(加法修正)、DAS(減法修正)。非壓縮BCD碼修正指令有:
AAA(加法修正)、AAS(減法修正)、
AAM(乘法修正)、AAD(除法修正)。復(fù)習(xí):BCD碼:用二進(jìn)制編碼的十進(jìn)制數(shù),又稱二--十進(jìn)制數(shù)壓縮的BCD碼:用4位二進(jìn)制數(shù)表示1位十進(jìn)制數(shù)例:(59)10=(01011001)BCD非壓縮的BCD碼:用8位二進(jìn)制數(shù)表示1位十進(jìn)制數(shù)
例:(59)10=(0000010100001001)BCD數(shù)字的ASCII碼是一種非壓縮的BCD碼
DIGIT ASCII BCD0 30H 001100001 31H 001100012 32H 00110010…
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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年度勞動(dòng)合同會(huì)計(jì)崗位員工心理健康關(guān)懷協(xié)議3篇
- 二零二五版教育資源采購(gòu)及服務(wù)合同3篇
- 二零二五年度船舶交易金融服務(wù)與風(fēng)險(xiǎn)控制合同4篇
- 二零二五年度私募基金合伙人代持股變更合同4篇
- 2025年水電工程設(shè)計(jì)與施工總承包合同范本3篇
- 2025年度城市地下車(chē)庫(kù)安全監(jiān)控系統(tǒng)安裝合同4篇
- 二零二五版荒山承包與生態(tài)旅游項(xiàng)目合作合同書(shū)范本3篇
- 2025年度汽車(chē)改裝維修項(xiàng)目合同書(shū)4篇
- 二零二五年度餐廳總經(jīng)理績(jī)效考核與激勵(lì)機(jī)制合同3篇
- 2025年度智能化儲(chǔ)藏室租賃服務(wù)合同范本4篇
- 春節(jié)聯(lián)歡晚會(huì)節(jié)目單課件模板
- 中國(guó)高血壓防治指南(2024年修訂版)
- 教育促進(jìn)會(huì)會(huì)長(zhǎng)總結(jié)發(fā)言稿
- 心理調(diào)適教案調(diào)整心態(tài)積極應(yīng)對(duì)挑戰(zhàn)
- 噴漆外包服務(wù)合同范本
- 2024年電信綜合部辦公室主任年度述職報(bào)告(四篇合集)
- 微機(jī)原理與接口技術(shù)考試試題及答案(綜合-必看)
- 濕瘡的中醫(yī)護(hù)理常規(guī)課件
- 初中音樂(lè)聽(tīng)課筆記20篇
- NUDD新獨(dú)難異 失效模式預(yù)防檢查表
- 內(nèi)蒙古匯能煤電集團(tuán)有限公司長(zhǎng)灘露天煤礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
評(píng)論
0/150
提交評(píng)論