版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章8086/8088指令系統(tǒng)莫善軍中山大學(xué)工學(xué)院Tel:(020)3933223079redong2定義指令——控制計(jì)算機(jī)完成指定操作的命令機(jī)器指令——指令的二進(jìn)制代碼形式。例如:CD21H匯編指令——助記符形式的指令。例如:INT21H指令系統(tǒng)——CPU所有指令及其使用規(guī)則的集合8088/8086指令系統(tǒng):(1)指令向后兼容(x86系列)(2)應(yīng)用廣泛,資料易于尋找3主要內(nèi)容:指令系統(tǒng)的一般概念對操作數(shù)的尋址方式六大類指令的操作原理:操作碼的含義指令對操作數(shù)的要求指令執(zhí)行的結(jié)果4§3.1概述5了解:指令及指令系統(tǒng);指令的格式;指令中的操作數(shù)類型;指令字長與機(jī)器字長;指令的執(zhí)行時(shí)間CISC和RISC指令系統(tǒng)6一、指令與指令系統(tǒng)指令:控制計(jì)算機(jī)完成某種操作的命令指令系統(tǒng):處理器所能識別的所有指令的集合指令的兼容性:同一系列機(jī)的指令都是兼容的。7二、指令格式指令中應(yīng)包含的信息:運(yùn)算數(shù)據(jù)的來源運(yùn)算結(jié)果的去向執(zhí)行的操作8指令格式操作碼[操作數(shù)],[操作數(shù)]執(zhí)行何種操作目標(biāo)操作數(shù)源操作數(shù)參加操作的數(shù)據(jù)或數(shù)據(jù)存放的地址9指令格式:
零操作數(shù)指令:操作碼單操作數(shù)指令:操作碼操作數(shù)雙操作數(shù)指令:操作碼操作數(shù),操作數(shù)多操作數(shù)指令:三操作數(shù)及以上10三、指令中的操作數(shù)立即數(shù)寄存器存儲器表征參加操作的數(shù)據(jù)本身表征數(shù)據(jù)存放的地址11立即數(shù)操作數(shù)立即數(shù)只能作為源操作數(shù)。其本身是參加操作的數(shù)據(jù),可以是8位或16位。例:MOVAX,1234HMOVBL,22H立即數(shù)無法作為目標(biāo)操作數(shù)立即數(shù)可以是無符號或帶符號數(shù),其數(shù)值應(yīng)在可取值范圍內(nèi)。12寄存器操作數(shù):參加運(yùn)算的數(shù)存放在指令給出的寄存器中,可以是16位或8位。例:MOVAX,BXMOVDL,CH13存儲器操作數(shù)參加運(yùn)算的數(shù)存放在存儲器的某一個(gè)或某兩個(gè)單元中表現(xiàn)形式:[]立即數(shù)或寄存器14存儲器操作數(shù)例例:MOVAX,[1200H]MOVAL,[1200H]22H11H1200H偏移地址AHAL┇
15四、指令字長與機(jī)器字長指令字長:由操作碼的長度、操作數(shù)地址長度、操作數(shù)個(gè)數(shù)決定;機(jī)器字長:計(jì)算機(jī)能夠直接處理的二進(jìn)制數(shù)的位數(shù)。16五、指令的執(zhí)行速度指令的字長影響指令的執(zhí)行速度(常用指令的執(zhí)行時(shí)間見表3-4)對不同的操作數(shù),指令執(zhí)行的時(shí)間不同:
存儲器快!立即數(shù)寄存器17六、CISC和RISC指令系統(tǒng)CISC指令系統(tǒng)指令的功能強(qiáng),種類多,高級語言和機(jī)器語言間的距離縮??;指令系統(tǒng)復(fù)雜,難使用。RISC指令系統(tǒng)指令功能較弱,種類少,格式簡單;多數(shù)指令在一個(gè)計(jì)算機(jī)周期內(nèi)完成;對存儲器的結(jié)構(gòu)和存取速度要求較高。18§3.2
尋址方式19尋址方式立即尋址寄存器尋址存儲器尋址串操作尋址I/O端口尋址隱含尋址直接尋址寄存器間接尋址寄存器相對尋址基址變址尋址相對基址變址尋址6種類別5種途徑20尋址方式
尋找操作數(shù)所在地址的方法尋找轉(zhuǎn)移地址的方法
本節(jié)21一、立即尋址指令中的源操作數(shù)是立即數(shù),即源操作數(shù)是參加操作的數(shù)據(jù)本身例:MOVAX,1200H12H00HAHALMOV代碼段┇
22二、直接尋址指令中直接給出操作數(shù)的偏移地址例:MOVAX,[1200H]22H11H1200H偏移地址┇
數(shù)據(jù)段AHAL23直接尋址直接尋址方式下,操作數(shù)的段地址默認(rèn)為數(shù)據(jù)段,但允許段重設(shè),即由指令定義段。例:MOVAX,ES:[1200H]24三、寄存器尋址參加操作的操作數(shù)在CPU的通用寄存器中。例:MOVAX,BX
AX
BX25四、寄存器間接尋址參與操作的操作數(shù)存放在內(nèi)存中,其偏移地址為指令中的寄存器的內(nèi)容。在內(nèi)存中的源和目的操作數(shù)由段選擇子和偏移量引用。段選擇子規(guī)定包含操作數(shù)的段。
隱示和顯示(段超越前綴)、段寄存器值偏移量(從段的開始至操作數(shù)的第一個(gè)字節(jié)的字節(jié)數(shù))規(guī)定操作數(shù)的線性或有效地址。
EA(EffectiveAddress,有效地址)數(shù)值、寄存器值、寄存器地址26(3).保護(hù)模式下存儲器地址的產(chǎn)生0線性地址線性地址空間232分段管理機(jī)制31物理地址物理地址空間最大232與實(shí)際的配置有關(guān)分頁管理機(jī)制031PG=1PG=0當(dāng)PG=0時(shí),分頁管理機(jī)制關(guān)閉,線性地址就是物理地址虛擬地址空間虛擬地址213×232
×
2=246=64T選擇子偏移量:015031段寄存器1.213代表什么含義?2.232代表什么含義?3.乘以2代表什么含義?27寄存器間接尋址例例:MOVAX,[BX]
設(shè)BX=1200H22H11H1200H偏移地址AHAL┇
1122數(shù)據(jù)段代碼段MOV28寄存器間接尋址由寄存器間接給出操作數(shù)的偏移地址;存放偏移地址的寄存器稱為間址寄存器,它們是:BX,BP,SI,DI操作數(shù)的段地址(數(shù)據(jù)處于哪個(gè)段)取決于選擇哪一個(gè)間址寄存器:
BX,SI,DIBP默認(rèn)在數(shù)據(jù)段默認(rèn)在堆棧段29寄存器間接尋址寄存器間接尋址基址尋址(間址寄存器為基址寄存器BX,BP)變址尋址(間址寄存器為變址寄存器SI,DI)30五、寄存器相對尋址操作數(shù)的偏移地址為寄存器的內(nèi)容加上一個(gè)位移量例:MOVAX,[BX+DATA]設(shè):DS=2000H,BX=0220H,DATA=05H則:AX=[20225H]31六、基址、變址尋址操作數(shù)的偏移地址為一個(gè)基址寄存器的內(nèi)容加上一個(gè)變址寄存器的內(nèi)容,操作數(shù)的段地址由選擇的基址寄存器決定例:MOVAX,[SI+BX]32七、基址、變址、相對尋址操作數(shù)的偏移地址為一個(gè)基址寄存器的內(nèi)容加上一個(gè)變址寄存器的內(nèi)容,再加上一個(gè)位移量。操作數(shù)的段地址由選擇的基址寄存器決定例:MOVAX,[BP+SI+DATA]33使用相對的基址-變址尋址方式可以很方便地訪問二維數(shù)組?;芳拇嫫鲾?shù)組首地址變址寄存器數(shù)組元素行址位移量數(shù)組元素列址(偏移地址)二維數(shù)組例:內(nèi)存圖示(按行存儲)(行位移地址)(行內(nèi)元素下標(biāo))183252409A=34指令操作例:MOVAX,DATA[DI][BX]若(DS)=8000H,(BX)=2000H,(DI)=1000H,DATA=200H則指令執(zhí)行后(AH)=[83021H],(AL)=[83020H]8320083200HAHALAX+DATA0200操作碼代碼段數(shù)據(jù)段.........YYXXDS
8000BX
2000
DI
100035MOVAL,[2000H]直接尋址[2000H]: 表示內(nèi)存單元地址。MOVAX,ES:[500H]16*ES+500HMOVBX,[SI]16*DS+SI寄存器間接尋址MOVBX,COUNT[SI]寄存器相對尋址MOVBX,[SI+COUNT]MOVAX,[BX][SI]基址變址尋址16*DS+BS+SIMOVAX,MASK[BX][SI]相對基址變址尋址16*DS+BX+SI+MASK判斷尋址方式36說明源操作數(shù)和目的操作數(shù)的尋址方式MOVAX,2408HADDBX,[SI]ADC[BP+100H],AXMOV[BX+DI],’$’SUBDX,ES:[BX+SI]SBBVAL[BP+DI],DXSBB[BP+DI+VAL],DXEA=BP+DI+VALPA=10H*SS+EA寄存器尋址,立即數(shù)尋址寄存器尋址,寄存器間接尋址寄存器相對尋址,寄存器尋址基址變址尋址,立即數(shù)寄存器尋址,段超越基址變址基址相對變址尋址,寄存器尋址37八、隱含尋址指令隱含了的一個(gè)或兩個(gè)操作數(shù)的地址,即操作數(shù)在默認(rèn)的地址中例:MULBL
指令的執(zhí)行:AL×BLAX38段寄存器隱含約定寄存器間接尋址寄存器相對尋址基址變址尋址基址相對變址尋址堆棧操作取指令操作DS:SS:BPDS:BX+SS:BP+SS:SPCS:IPBXSIDISIDISIDI39尋址方式立即尋址寄存器尋址存儲器尋址串操作尋址I/O端口尋址隱含尋址直接尋址寄存器間接尋址寄存器相對尋址基址變址尋址相對基址變址尋址6種類別5種途徑40內(nèi)容回顧尋址方式(2+3+2+1)2數(shù)3寄2基1隱寄存器類別(大類、小類)各自分工默認(rèn)段寄存器41練習(xí)已知DS=1A27H,SS=0FC90H,ES=2B9AH,BX=4013H,BP=3215H,SI=311EH,SP=100H寫出存儲器操作數(shù)的物理地址。1)MOVAL,[BX+SI+9000H]2)MOVBX,[BP-18]3)ADDSS:[BX+SI-3],AL4)SUB[SI+BP],CX5)PUSHBX2A3A1HFFB03H03A2EH102C33HFC9FEH42段寄存器隱含約定寄存器間接尋址寄存器相對尋址基址變址尋址基址相對變址尋址堆棧操作取指令操作DS:SS:BPDS:BX+SS:BP+SS:SPCS:IPBXSIDISIDISIDI43§3.38086指令系統(tǒng)44指令的基本構(gòu)成操作碼[操作數(shù)],[操作數(shù)]說明要執(zhí)行的是什么操作操作對象,可以有0個(gè)、1個(gè)或2個(gè)目的源45掌握:指令碼的含義指令對操作數(shù)的要求指令的對標(biāo)志位的影響指令的功能468086指令系統(tǒng)從功能上包括六大類:數(shù)據(jù)傳送算術(shù)運(yùn)算邏輯運(yùn)算和移位串操作程序控制處理器控制478086/8088指令表488086/8088指令表(續(xù))49數(shù)據(jù)傳送指令通用數(shù)據(jù)傳送輸入輸出地址傳送標(biāo)志位操作50一、通用數(shù)據(jù)傳送一般數(shù)據(jù)傳送指令堆棧操作指令交換指令查表轉(zhuǎn)換指令字位擴(kuò)展指令特點(diǎn):該類指令的執(zhí)行對標(biāo)志位不產(chǎn)生影響
51指令類型指令功能指令書寫格式通用數(shù)據(jù)傳送字節(jié)或字傳送字壓入堆棧字彈出堆棧字節(jié)或字交換代碼轉(zhuǎn)換MOV目標(biāo),源PUSH源POP目標(biāo)XCHG目標(biāo),源XLAT目標(biāo)地址傳送裝入有效地址裝入DS寄存器裝入ES寄存器LEA目標(biāo),源LDS目標(biāo),源LES目標(biāo),源標(biāo)志位傳送將FLAGS低字節(jié)裝入AH寄存器將AH內(nèi)容裝入FLAGS低字節(jié)將FLAGS內(nèi)容壓入堆棧從堆棧彈出FLAGS內(nèi)容LAHFSAHFPUSHFPOPFI/O數(shù)據(jù)傳送輸入字節(jié)或字輸出字節(jié)或字IN累加器,端口OUT端口,累加器521.一般數(shù)據(jù)傳送指令一般數(shù)據(jù)傳送指令MOV格式:MOVdest,src操作:src例:MOVAL,BL
dest53一般數(shù)據(jù)傳送指令注意:兩操作數(shù)字長必須相同;兩操作數(shù)不允許同時(shí)為存儲器操作數(shù);兩操作數(shù)不允許同時(shí)為段寄存器;在源操作數(shù)是立即數(shù)時(shí),目標(biāo)操作數(shù)不能是段寄存器;IP和CS不作為目標(biāo)操作數(shù),F(xiàn)LAGS一般也不作為操作數(shù)在指令中出現(xiàn)。54一般數(shù)據(jù)傳送指令判斷下列指令的正確性:MOVAL,BXMOVAX,[SI]05HMOV[BX][BP],BXMOVDS,1000HMOVDX,09HMOV[1200],[SI]55一般數(shù)據(jù)傳送指令應(yīng)用例將(*)的ASCII碼2AH送入內(nèi)存1000H開始的100個(gè)單元中:
MOVDI,1000HMOVCX,64HMOVAL,2AHAGAIN:MOV[DI],ALINCDI;DI+1
DECCX;CX-1JNZAGAIN;CX≠0則繼續(xù)HLT56上段程序在代碼段中的存放形式設(shè)CS=109EH,IP=0100H,則各條指令存放地址如下:
CS:IP機(jī)器指令匯編指令109E:0100B80010MOVDI,1000H109E:0103.MOVCX,64H109E:0105.MOVAL,2AH109E:0107.MOV[DI],AL109E:0109INCDI109E:010ADECCX109E:010BJNZ0107H109E:010DHLT57數(shù)據(jù)段中的分布
送上2AH后數(shù)據(jù)段中相應(yīng)存儲單元的內(nèi)容改變?nèi)缦拢篋S:10002A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10102A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10202A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10302A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10402A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10502A2A2A2A2A2A2A2A-2A2A2A2A2A2A2A2ADS:10602A2A2A2A000000000000000000000000偏移地址[DI]58課本P107頁例題3-12SIDIJNZ592.堆棧操作指令掌握:有關(guān)堆棧的概念棧頂、棧首、棧底堆棧指令的操作原理
執(zhí)行過程,執(zhí)行結(jié)果60堆棧操作的原則先進(jìn)后出以字為單位61堆棧操作指令壓棧指令PUSH
格式:PUSHOPRD出棧指令POP
格式:POPOPRD62壓棧指令PUSH指令執(zhí)行過程:(SP)←(SP)-2(SP)-1←操作數(shù)高字節(jié)
(SP)-2←操作數(shù)低字節(jié)┇
SP堆棧段SP高8位低8位63壓棧指令的操作設(shè)AX=1234H,SP=1200H執(zhí)行PUSHAX指令后堆棧區(qū)的狀態(tài):1200H┇
堆棧段SP-2=11FEH12H34H1200H┇
堆棧段12H34HAX入棧后入棧前64出棧指令POP指令執(zhí)行過程:
SP
SP+1SP←SP+2操作數(shù)低字節(jié)操作數(shù)高字節(jié)┇
SP堆棧段SP高8位低8位65出棧指令的操作執(zhí)行POPAX12H34H11FEH┇
堆棧段代碼段PUSH1234AX
SP+21200H┇
出棧后出棧前66堆棧操作指令說明指令的操作數(shù)必須是16位的;操作數(shù)可以是寄存器或存儲器兩單元,但不能是立即數(shù);不能從棧頂彈出一個(gè)字給CS;PUSH和POP指令在程序中一般成對出現(xiàn);PUSH指令的操作方向是從高地址向低地址,而POP指令的操作正好相反。67堆棧操作指令例PUSHAXPUSHBXPUSHWORDPTR[BX]POPWORDPTR[BX]POPAXPOPBX┇
如此,會使AX和BX的內(nèi)容互換683.交換指令格式:XCHGREG,MEM/REG注:兩操作數(shù)必須有一個(gè)是寄存器操作數(shù)不允許使用段寄存器。例:XCHG AX,BXXCHG [2000],CL694.查表指令格式:
XLAT說明:用BX的內(nèi)容代表表格首地址,AL內(nèi)容為表內(nèi)位移量,BX+AL得到要查找元素的偏移地址操作:將BX+AL所指單元的內(nèi)容送AL70查表指令例數(shù)據(jù)段中存放有一張ASCII碼轉(zhuǎn)換表,設(shè)首地址為2000H,現(xiàn)欲查出表中第11個(gè)代碼的ASCII碼303132...394142...45462000H+02000H+11‘0’‘1’‘2’‘9’‘A’‘B’‘E’‘F’71查表指令例可用如下指令實(shí)現(xiàn):MOVBX,2000H;BX←表首地址MOVAL,0BH;AL←序號XALT
;查表轉(zhuǎn)換
執(zhí)行后得到:AL=42H725.字位擴(kuò)展指令將符號數(shù)的符號位擴(kuò)展到高位;指令為零操作數(shù)指令,采用隱含尋址,隱含的操作數(shù)為AX及AX,DX無符號數(shù)的擴(kuò)展規(guī)則為在高位補(bǔ)073字節(jié)到字的擴(kuò)展指令格式:
CBW操作:將AL內(nèi)容擴(kuò)展到AX規(guī)則:若最高位=1,則執(zhí)行后AH=FFH若最高位=0,則執(zhí)行后AH=00H74字到雙字的擴(kuò)展指令格式:
CWD操作:將AX內(nèi)容擴(kuò)展到DXAX規(guī)則:若最高位=1,則執(zhí)行后DX=FFFFH若最高位=0,則執(zhí)行后DX=0000H75字位擴(kuò)展指令例判斷以下指令執(zhí)行結(jié)果:MOVAL,44HCBWMOVAX,0AFDEHCWDMOVAL,86HCBW76二、輸入輸出指令掌握:指令的格式及操作指令的兩種尋址方式指令對操作數(shù)的要求77輸入輸出指令專門面向I/O端口操作的指令指令格式:輸入指令:INacc,PORT輸出指令:OUTPORT,acc端口地址78指令尋址方式直接尋址直接給出8位端口地址,可尋址256個(gè)端口間接尋址16位端口地址由DX指定,可尋址64K個(gè)端口79I/O指令例INAX,80HMOVDX,2400HINAL,DXOUTDX,AXOUT35H,ALOUTAL,35H80三、地址傳送指令取偏移地址指令LEA*LDS指令*LES指令81取偏移地址指令LEA操作:將變量的16位偏移地址取出送目標(biāo)寄存器格式:
LEAREG,MEM
指令要求:源操作數(shù)必須是一個(gè)存儲器操作數(shù),目標(biāo)操作數(shù)通常是間址寄存器。82LEA指令比較下列指令:MOVSI,DATA1LEASI,DATA1
MOVBX,[BX]LEABX,[BX]┇
┇
┇
DATA1符號地址12H34H1100H88H77HBX=1100H83LEA指令在程序中的應(yīng)用將數(shù)據(jù)段中首地址為MEM1的50個(gè)字節(jié)的數(shù)據(jù)傳送到同一邏輯段首地址為MEM2的區(qū)域存放。編寫相應(yīng)的程序段
。
84LEA指令在程序中的應(yīng)用開始取源地址取目標(biāo)地址送數(shù)據(jù)塊長度到CL傳送一個(gè)字節(jié)修改地址指針修改計(jì)數(shù)值計(jì)數(shù)值=0?結(jié)束NY85LEA指令在程序中的應(yīng)用LEASI,MEM1LEADI,MEM2MOVCL,50NEXT:MOVAL,[SI]MOV[DI],ALINCSIINCDIDECCLJNZNEXTHLT86四、標(biāo)志位操作指令LAHFSAHFPUSHFPOPF隱含操作數(shù)AH隱含操作數(shù)FLAGS871.
LAHF,SAHF指令格式:LAHF操作:將FLAGS的低8位裝入AHCFPFAFZFCF….AHFLAGSD15D0D7D0SAHF執(zhí)行與LAHF相反的操作882.
PUSHF,POPF針對FLAGS的堆棧操作指令
將標(biāo)志寄存器壓?;驈亩褩棾?9內(nèi)容回顧通用數(shù)據(jù)傳送指令MOVdest,src作用:從源操作數(shù)賦值給目的操作數(shù)說明:dest和src的要求(立即數(shù)、寄存器、存儲器)堆棧操作指令堆棧:內(nèi)存中特定存儲區(qū)域壓棧指令:pushsrc(sp=sp-2)出棧指令:popdest(sp=sp+2)交換指令XCHGAX,BX查表轉(zhuǎn)換指令XLAT(隱含尋址:BX(表的首地址),AL(查找序號))輸入輸出指令A(yù)X(AL)與端口交換數(shù)據(jù)直接尋址(0-255)、寄存器間接尋址(64k,DX)INacc,portOUTport,acc取偏移地址LEAreg16,mem和OFFSET的區(qū)別功能:從哪里來,到哪里去格式:操作數(shù)要求,尋址方式堆棧:內(nèi)存單元端口:入口、出口要點(diǎn)908086指令系統(tǒng)從功能上包括六大類:數(shù)據(jù)傳送算術(shù)運(yùn)算邏輯運(yùn)算和移位串操作程序控制處理器控制91算術(shù)運(yùn)算類指令92算術(shù)運(yùn)算類指令加法運(yùn)算指令減法運(yùn)算指令乘法指令除法指令算術(shù)運(yùn)算指令的執(zhí)行大多對狀態(tài)標(biāo)志位會產(chǎn)生影響CFOFZFSFAFPFTFDFIF93類別指令名稱指令書寫格式(助記符)狀態(tài)標(biāo)志位OSZAPC加法加法(字節(jié)/字)帶進(jìn)位加法(字節(jié)/字)加1(字節(jié)/字)ADD目標(biāo),源ADC目標(biāo),源INC目標(biāo)XXXXXX
XXXXXX
XXXXX-減法減法(字節(jié)/字)帶借位減法(字節(jié)/字)減1(字節(jié)/字)取負(fù)(字節(jié)/字)比較(字節(jié)/字)SUB目標(biāo),源SBB目標(biāo),源DEC目標(biāo)NEG目標(biāo)CMP目標(biāo),源XXXXXX
XXXXXX
XXXXX—
XXXXXX
XXXXXX乘法無符號乘法(字節(jié)/字)有符號整數(shù)乘法(字節(jié)/字)MUL源IMUL源XUUUUXXUUUUX除法無符號除法(字節(jié)/字)有符號整數(shù)除數(shù)(字節(jié)/字)字節(jié)轉(zhuǎn)換成字字轉(zhuǎn)換成雙字DIV源IDIV源CBWCWDUUUUUUUUUUUU------------十進(jìn)制調(diào)整加法的ASCII碼調(diào)整加法的十進(jìn)制調(diào)整減法的ASCII碼調(diào)整減法的十進(jìn)制調(diào)整乘法的ASCII碼調(diào)整除法的ASCII碼調(diào)整AAADAAAASDASAAM
AADUUUXUXUXXXXX
UUUXUXXXXXXXUXXUXUUXX-XU算術(shù)運(yùn)算指令94一、加法指令普通加法指令A(yù)DD
帶進(jìn)位位的加法指令A(yù)DC加1指令I(lǐng)NC加法指令對操作數(shù)的要求與MOV指令相同951.
ADD指令格式:
ADDOPRD1,OPRD2操作:
OPRD1+OPRD2ADD指令的執(zhí)行對全部6個(gè)狀態(tài)標(biāo)志位都產(chǎn)生影響OPRD196ADD指令例MOVAL,78HADDAL,99H指令執(zhí)行后6個(gè)狀態(tài)標(biāo)志位的狀態(tài)97ADD指令例01111000+10011001000100011標(biāo)志位狀態(tài):CF=SF=AF=ZF=PF=OF=10101078H99H98課本p114例3-20MOVAL,7EHADDAL,5BH992.
ADC指令指令格式、對操作數(shù)的要求、對標(biāo)志位的影響與ADD指令完全一樣指令的操作:
OPRD1+OPRD2+CFOPRD1ADC指令多用于多字節(jié)數(shù)相加,使用前要先將CF清零。100例3-22低位用ADD低位可能會產(chǎn)生進(jìn)位,CF=1記錄進(jìn)位高位用ADC1013.
INC指令格式:
INCOPRD操作:
OPRD+1OPRD常用于在程序中修改地址指針不能是段寄存器或立即數(shù)102將數(shù)據(jù)段中首地址為MEM1的50個(gè)字節(jié)的數(shù)據(jù)傳送到同一邏輯段首地址為MEM2的區(qū)域存放。編寫相應(yīng)的程序段
。LEASI,MEM1LEADI,MEM2MOVCL,50NEXT:MOVAL,[SI]MOV[DI],ALINCSIINCDIDECCLJNZNEXTHLT103二、減法指令普通減法指令SUB考慮借位的減法指令SBB減1指令DEC比較指令CMP求補(bǔ)指令NEG減法指令對操作數(shù)的要求與對應(yīng)的加法指令相同1041.
SUB指令格式:
SUBOPRD1,OPRD2操作:
OPRD1-OPRD2OPRD1對標(biāo)志位的影響與ADD指令同1052.
SBB指令指令格式、對操作數(shù)的要求、對標(biāo)志位的影響與SUB指令完全一樣指令的操作:
OPRD1-OPRD2-CFOPRD11063.
DEC指令格式:
DECOPRD操作:
OPRD-1OPRD指令對操作數(shù)的要求與INC相同指令常用于在程序中修改計(jì)數(shù)值107應(yīng)用程序例MOVBL,2NEXT1:MOVCX,0FFFFH;十進(jìn)制65535NEXT2:DECCXJNZNEXT2;ZF=0轉(zhuǎn)NEXT2DECBLJNZNEXT1;ZF=0轉(zhuǎn)NEXT1HLT;暫停執(zhí)行1084.
NEG指令格式:
NEGOPRD操作:0-OPRDOPRD8/16位寄存器或存儲器操作數(shù)用0減去操作數(shù),相當(dāng)于對該操作數(shù)求補(bǔ)碼兩點(diǎn)注意請見教材p1171095.
CMP指令格式:
CMPOPRD1,OPRD2操作:
OPRD1-OPRD2指令執(zhí)行的結(jié)果不影響目標(biāo)操作數(shù),僅影響標(biāo)志位!110CMP指令用途:用于比較兩個(gè)數(shù)的大小,可作為條件轉(zhuǎn)移指令轉(zhuǎn)移的條件指令對操作數(shù)的要求及對標(biāo)志位的影響與SUB指令相同111CMP指令兩個(gè)無符號數(shù)的比較:
CMPAX,BX
若AX>BX若AX<BXCF=0CF=1112CMP指令兩個(gè)帶符號數(shù)的比較CMPAX,BX
兩個(gè)數(shù)的大小由OF和SF共同決定
OF和SF狀態(tài)相同AX>BX
OF和SF狀態(tài)不同AX<BX113CMP指令例
LEABX,MAXLEASI,BUFMOVCL,20MOVAL,[SI]NEXT:INCSICMPAL,[SI]JNCGOON
;CF=0轉(zhuǎn)移
XCHG[SI],ALGOON:DECCLJNZNEXTMOV[BX],AL
HLT程序功能
?114程序功能┇
┇
┇
MAXBUFXXHXXHXXH在20個(gè)數(shù)中找最大的數(shù),并將其存放在MAX單元中。115內(nèi)容回顧加法指令A(yù)DDOPRD1,OPRD2作用:源操作數(shù)和目的操作數(shù)相加,結(jié)果目標(biāo)地址說明:OPRD1和OPRD2的要求(立即數(shù)、寄存器、存儲器)6個(gè)狀態(tài)標(biāo)示位的影響:CFOFSFZFAFPFADCOPRD1,OPRD2帶進(jìn)位加法指令(針對進(jìn)位問題)INCOPRD自增,修改地址、循環(huán)次數(shù)減法指令SUBOPRD1,OPRD2作用:源操作數(shù)和目的操作數(shù)相減,結(jié)果目標(biāo)地址說明:OPRD1和OPRD2的要求(立即數(shù)、寄存器、存儲器)6個(gè)狀態(tài)標(biāo)示位的影響:CFOFSFZFAFPFSBBOPRD1,OPRD2帶進(jìn)位減法指令(針對借位問題)DECOPRD自減,修改地址、循環(huán)次數(shù)NEGOPRD
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年西安慈愛醫(yī)院招聘筆試備考試題及答案解析
- 2026年福建莆田第二中編外合同教師招聘12人考試備考題庫及答案解析
- 2026年陜西醫(yī)療定向招聘筆試備考題庫及答案解析
- 福建福州市永泰縣人力資源和社會保障局2026屆公費(fèi)師范生專項(xiàng)招聘會招聘6人筆試備考題庫及答案解析
- 2026浙江溫州市洞頭人才發(fā)展有限公司招聘1人(食堂工作人員)筆試參考題庫及答案解析
- 2026新疆雙河國投運(yùn)營集團(tuán)有限公司財(cái)務(wù)人員招聘2人筆試模擬試題及答案解析
- 2026年石材切割設(shè)備安全操作
- 2026四川啟賽微電子有限公司招聘質(zhì)量工程師(CQE)崗位1人筆試備考題庫及答案解析
- 2026年工程地質(zhì)環(huán)境評價(jià)數(shù)據(jù)的共享平臺
- 2026新疆哈密市建輝國有資產(chǎn)管理有限公司選聘部門主管2人筆試參考題庫及答案解析
- 2026海南安??毓捎邢挢?zé)任公司招聘11人筆試模擬試題及答案解析
- 裝飾裝修工程施工組織設(shè)計(jì)方案(二)
- 2026上海碧海金沙投資發(fā)展有限公司社會招聘參考題庫必考題
- 2026年張家界航空工業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性考試模擬測試卷新版
- 2026遼寧機(jī)場管理集團(tuán)校招面筆試題及答案
- 2025徽銀金融租賃有限公司社會招聘筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 2026年遼寧軌道交通職業(yè)學(xué)院單招綜合素質(zhì)筆試備考題庫帶答案解析
- 小學(xué)語文組教研活動(dòng)記錄
- GB/T 14536.1-2022電自動(dòng)控制器第1部分:通用要求
- GA/T 1362-2016警用裝備倉庫物資庫存管理規(guī)范
- 鋼結(jié)構(gòu)基本原理及設(shè)計(jì)PPT全套課件
評論
0/150
提交評論