




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章指令系統(tǒng)郟東耀§1
數(shù)據(jù)類型§2
尋址方式§3
指令系統(tǒng)主要內(nèi)容學(xué)習(xí)指導(dǎo)和要求了解指令集的六種數(shù)據(jù)類型掌握尋址方式;熟記各種類型的指令格式及功能,并能編寫簡單程序。
第1節(jié)80X86的數(shù)據(jù)類型
80X86匯編語言中可使用的數(shù)據(jù)類型有以下六種:1.無符號二進(jìn)制數(shù)
字節(jié)(8位):0~255(0~0FFH),占用一字節(jié)存儲單元。
字(16位):0~65535(0~0FFFFH),占用連續(xù)的兩字節(jié)存儲單元,低地址存儲單元存放低8位數(shù)據(jù),高地址存儲單元存放高8位數(shù)據(jù),低字節(jié)地址為該字的地址。有符號二進(jìn)制數(shù)
字節(jié):-128~+127(80H~FFH,00H~7FH)字:-32768~+32767(8000H~FFFFH,00000H~7FFFH)以補(bǔ)碼形式存儲,地址單元分配與無符號數(shù)類似。浮點(diǎn)數(shù)是屬于有理數(shù)中某特定子集的數(shù)字表示,在計(jì)算機(jī)中用以近似表示任意某個(gè)實(shí)數(shù)。具體的說,這個(gè)實(shí)數(shù)由一個(gè)整數(shù)或定點(diǎn)數(shù)(即尾數(shù))乘以某個(gè)基數(shù)(計(jì)算機(jī)中通常是2)的整數(shù)次冪得到,這種表示方法類似于基數(shù)為10的科學(xué)記數(shù)法。3.浮點(diǎn)數(shù)(實(shí)數(shù))BCD碼壓縮BCD碼:1字節(jié)存放兩個(gè)BCD碼,格式如圖a74307430
(a)(b)非壓縮BCD碼:1字節(jié)存放一個(gè)BCD碼(低4位),格式如圖b字符串由一串字符組成的,它是字符的序列,從某種程度上來說有些類似于字符的數(shù)組。一個(gè)字母或漢字算一個(gè)字符,字符跟字符串沒有嚴(yán)格的界定。“ab”合起來稱字符串,分開“a”,“b”就叫字符了。十位個(gè)位0或任意個(gè)位ASCII碼
ASCII碼字符串:如‘ABC123’
ASCII碼數(shù):如30H~39H(0~9),41H~46H(A~F)返回
第2節(jié)80X86的尋址方式
80X86的尋址方式共有7種:1.立即尋址2.寄存器尋址3.直接尋址4.寄存器間接尋址5.相對寄存器間接尋址
6.基址加變址尋址7.相對基址加變址尋址立即尋址:操作數(shù)包含在指令中,存放在代碼段。
寄存器尋址:操作數(shù)在寄存器中,存放在CPU內(nèi)。
存儲器尋址:操作數(shù)在存儲器(數(shù)據(jù)段)中。代碼段數(shù)據(jù)段寄存器CPU內(nèi)存運(yùn)算器立即數(shù)存儲器
1.立即尋址指定的操作數(shù)緊跟在操作碼之后,直接存放在代碼段中如:MOVBL,56H
;BL56HMOVAX,2056H
;AX2056H
OP56HOP56H20HBLAXAHAL20H56H56H注意:立即數(shù)只能源操作數(shù),不能目標(biāo)操作數(shù)。
2.寄存器尋址操作數(shù)在CPU的寄存器中,而寄存器的名由指令指出如:MOVBL,AL注意:在同一條指令中,類型必須匹配。如下列指令是錯(cuò)誤的:MOVAL,1234HMOVBX,AL
直接尋址:操作數(shù)有效地址(16位或32位)直接包含在指令中,它位于操作碼之后,存放在代碼段中。如果指令無前綴指明在那一段中,則默認(rèn)操作數(shù)存放在數(shù)據(jù)段。
例:
MOVAL,[0010H];0010H為偏移地址
MOVBX,D1;DS段D1的內(nèi)容送BL,
D1+1的內(nèi)容送BH注:D1為符號地址(變量名)
OP10H00HAL(DS)*24+0010H
如:MOVAX,[2000H];DS段2000H的內(nèi)容送AL,
2001H的內(nèi)容送AHMOVAX,F(xiàn)S:[2000H];FS段2000H的內(nèi)容送AL,
2001H的內(nèi)容送AH寄存器間接尋址操作數(shù)存放在存儲器中,但操作數(shù)的偏移地址存放在寄存器中。(1)16位尋址
EA=[DI]、[SI]、[BX]、[BP]
無前綴默認(rèn)操作數(shù)存放在數(shù)據(jù)段無前綴默認(rèn)操作數(shù)存放在堆棧段例如:
MOVAX,[BX];AX(DS*10H+(BX))MOVAX,[BP];AX(SS*10H+(BP))MOVAX,ES:[BX];AX(ES*10H+(BX))MOVAX,DS:[BP];AX(DS*10H+(BP))相對寄存器間接尋址寄存器內(nèi)容與位移量之和形成操作數(shù)的有效地址。即:
EA=[寄存器]+位移量
(1)16位尋址
EA={[BX]、[BP]、[DI]、[SI]}+位移量(帶符號8或16位整數(shù))如:MOVAX,2040H[BX]
或MOVAX,[BX+2040H];DS段(BX)+2040H地址中的字?jǐn)?shù)據(jù)送AX。
基址加變址尋址基址寄存器內(nèi)容與變址寄存器內(nèi)容之和形成操作數(shù)的偏移地址。即:EA=[基址寄存器]+[變址寄存器]
(1)16位尋址基址寄存器:BX、BP;變址寄存器:DI、SI如:MOVAX,[BX+SI]或MOVAX,[BX][SI];DS段(BX)+(SI)地址中的字?jǐn)?shù)據(jù)送AX。
相對基址加變址尋址基址寄存器內(nèi)容與變址寄存器內(nèi)容再加偏移量之和形成操作數(shù)的有效地址。即:
EA=[基址寄存器]+[變址寄存器]+偏移量如:MOVAX,1234H[BX+DI]
或MOVAX,[BX+DI+1234H]
或MOVAX,1234H[BX][DI];DS段
(BX)+(DI)+1234H地址中的字?jǐn)?shù)據(jù)送AX。練習(xí)題:假設(shè)(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0040H,在指令MOVAX,src中,以下src為何種尋址方式?求有效地址EA和物理地址PA各是多少?
(1)100H[BX](2)[BX] (3)[BP](4)ES:[BX+10H](5)BX(6)[1000H](7)[SI](8)1000H[BX+SI] (9)1000H[BP][SI](10)[BX][SI]
§3指令系統(tǒng)數(shù)據(jù)傳送類指令算術(shù)運(yùn)算類指令邏輯運(yùn)算類指令串操作類指令控制轉(zhuǎn)移類指令
指令操作數(shù)符號說明:
ac:累加器
reg:通用寄存器(8位或16位或32位)
reg8、reg16、reg32:8位、16位、32位寄存器
Seg:段寄存器
mem:存儲器(8位或16位或32位)
mem8、mem16、mem32:8位、16位、32位存儲器
imm:立即數(shù)(8位或16位或32位)
imm8、imm16、imm32:8位、16位、32位立即數(shù)一、指令格式
指令格式:
[標(biāo)號:]操作碼[操作數(shù),…] [;注釋]
其中:標(biāo)號:確定匯編語句的位置,提供跳轉(zhuǎn)、循環(huán)的目標(biāo)。操作碼:匯編語句操作。操作數(shù):操作數(shù)據(jù)項(xiàng),數(shù)目因操作碼而異。注釋:程序注解。 如:START:MOVAX,DATAMOVDS,AX;設(shè)置DS(一)數(shù)據(jù)傳送類指令用于實(shí)現(xiàn)存儲器與寄存器、寄存器與寄存器、累加器與I/O端口之間字節(jié)、字或雙字的傳送,也可將立即數(shù)傳送到存儲器或寄存器
不影響標(biāo)志位:CF、SF、ZF、OF、AF、PF
傳送指令MOV
格式:
MOV目標(biāo),源;目標(biāo)源
立即數(shù)、寄存器、存儲器寄存器、存儲器立即數(shù)寄存器存儲器寄存器段寄存器傳送指令MOV示意圖注意:1.立即數(shù)和CS不能是目標(biāo)操作數(shù)例MOV10H,AL錯(cuò)
MOVCS,AX錯(cuò)2.存儲器之間,段寄存器之間不能傳送例MOVDS,SS錯(cuò)
MOV[BX],[SI]錯(cuò)3.立即數(shù)不能送段寄存器例MOVAX,1000HMOVDS,AX4.源和目標(biāo)操作數(shù)類型要一致
MOVAX,BL錯(cuò)5.立即數(shù)送存儲器要說明MOVBYTEPTR[SI],100MOVWORDPTR[SI],100
指令格式:MOVOP1,OP2
reg/Sreg,regreg,Sregreg/Sreg,memmem,reg/Sregreg,immmem,imm例如:用如下指令可給數(shù)據(jù)段寄存器DS賦初值
MOVAX,DATAMOVDS,AX
堆棧操作指令
數(shù)據(jù)進(jìn)棧指令:先修改指針,后源內(nèi)容入棧
PUSH源;(SP)-2SP
;源((SP))
數(shù)據(jù)出棧指令:先將指針內(nèi)容送到目標(biāo),后修改指針
POP目標(biāo);((SP))目標(biāo);(SP)+2SP
設(shè):(SS)=2000H,(SP)=0010H(AX)=3344H,(BX)=5678H寫出指令完成如下功能:
通過堆棧將AX,BX的內(nèi)容交換PUSHAXPUSHBXPOPAXPOPBXSPSS2000H000BH000CH000DH000EH000FH0010H(SP)-2(SP)-22000H:000BH33H44H56H78H33H44H56H78HAXBX設(shè):(SS)=2000H,(SP)=0010H(AX)=3344H,(BX)=5678H寫出指令完成如下功能:
通過堆棧將AX,BX的內(nèi)容交換PUSHAXPUSHBXPOPAXPOPBX(SP)+2SS2000H000BH000CH000DH000EH000FH0010H(SP)+2(SP)2000H:000BH33H44H56H78H33H44H56H78HBXAX堆棧說明:1.堆棧以字為單位操作PUSHBL錯(cuò)
PUSH[DI]
是正確表示的指令,當(dāng)然,也可以寫為:
PUSHWORDPTR[DI]2.CS不能做目標(biāo)PUSHCS對
POPCS錯(cuò)3.堆棧操作指令都隱含了一個(gè)操作數(shù):SP所指的棧頂數(shù)據(jù);4.沒有立即尋址PUSH1234H錯(cuò)5先進(jìn)后出,后進(jìn)先出交換指令XCHG格式:XCHG操作數(shù)1,操作數(shù)2;功能:操作數(shù)1操作數(shù)2如:XCHGAX,BXXCHGAX,[BX]說明:1.操作數(shù)可以是reg,mem2.兩個(gè)存儲器操作數(shù)不能直接交換;3.不能在交換指令中使用段寄存器,用一個(gè)也不可以。
取偏移地址指令LEA
格式:LEA目標(biāo),源
reg,mem其功能是將源操作數(shù)的偏移地址送到一個(gè)寄存器中。所以是16位地址的傳送指令。源操作數(shù)是任何一種存儲器操作數(shù)的尋址方式。
LEAAX,[2000H] ;AX=2000HLEABX,BLOCK ;BLOCK所代表的地址送BX(MOVBX,OFFSETBLOCK)
LEACX,[SI] ;CX=SILEADX,BLOCK[SI] ;DX=BLOCK+SILEAAX,[BX][DI] ;AX=BX+DI
查表指令XLAT
格式:XLAT;AL((BX)+(AL))
功能:BX指向表的首地址(DS段內(nèi)),AL裝入要轉(zhuǎn)換的代碼在表中的序號,并將XLAT指令執(zhí)行的結(jié)果存于AL中。
序號0123
4...TABLE30H31H32H
33H34H..
例如:查找ASCII碼表中,3的ASCII碼
MOVAX,SEGTABLEMOVDS,AXLEABX,TABLEMOVAL,3
XLAT;ASCII碼33H保存在ALAL33HI/O數(shù)據(jù)傳送指令格式:
輸入INAcc,端口;將端口數(shù)據(jù)讀出送入CPU
輸出OUT端口,Acc;將CPU累加器中數(shù)據(jù)寫入端口<8位,直接給出>8位,端口地址DXAL,AX例:INAL,28HMOVDX,03FCHOUT15H,ALINAX,DX
標(biāo)志寄存器傳送指令指令格式:LAHF;標(biāo)志寄存器低8位內(nèi)容送AHSAHF;AH內(nèi)容送標(biāo)志寄存器低8位PUSHF;16位標(biāo)志寄存器內(nèi)容進(jìn)棧POPF;16位出棧內(nèi)容送標(biāo)志寄存器練習(xí):找出下面指令的錯(cuò)誤并改正(1)MOVCS,1000H(2)MOV15H,CL(3)MOV[SI],[1000H](4)MOVDX,CL(5)MOVDS,F(xiàn)S(6)XCHG10[BX],[DI](7)IN AX,3EBH(8)OUT20H,BL(二)算術(shù)運(yùn)算類指令
執(zhí)行指令后,根據(jù)結(jié)果置標(biāo)志位:
CF、SF、ZF、OF、AF、PF算術(shù)運(yùn)算指令包括加、減、乘、除四種運(yùn)算,以及相應(yīng)的十進(jìn)制調(diào)整指令。算術(shù)運(yùn)算是對象可以是有符號數(shù)或無符號數(shù)。加、減運(yùn)算用相同的指令來進(jìn)行,但對乘、除運(yùn)算要用不同的指令。對于加、減運(yùn)算,操作數(shù)是否有符號及結(jié)果的判斷(是否溢出)是用戶的事,計(jì)算機(jī)則是按相同的方法進(jìn)行運(yùn)算。加法指令加法/減法ADD/SUB目標(biāo),源;功能:目標(biāo)目標(biāo)+源帶進(jìn)位加法/減法ADC/SBB目標(biāo),源;功能:目標(biāo)目標(biāo)+源+CF加一/減一INC/ DEC目標(biāo);功能:目標(biāo)目標(biāo)+1格式:ADDreg,regADDreg,memADDreg,immADDmem,regADDmem,imm例:ADDAX,BX;AX(AX)+(BX)ADDEBX,ECX;EBX(EBX)+(ECX)ADD[3000H],AX;(3000H)(3000H)+(AX)ADDBYTEPTR[3000H],23;(3000H)(3000H)+23SUBOP1,OP2;OP1OP1-OP2,置標(biāo)志位
reg,regreg,memreg,immmem,regmem,imm功能:從OP1中減去OP2,結(jié)果存OP1中例:SUBAX,BX;AX(AX)-(BX)
例:設(shè)AL=64H,AH=0A8H,求執(zhí)行下列指令的結(jié)果和標(biāo)志位的狀態(tài)。
(1)ADDAL,AH;AL(AL)+(AH),有符號數(shù).解:01100100100D得:(AL)=0CH(正確)+10101000-88DOFSFZFAFPFCF
10000110012D000011(2)SUBAL,AH;AL(AL)-(AH),有符號數(shù).解:01100100100D得:(AL)=BCH(不正確)
(-10101000)-88DOFSFZFAFPFCF+0101100010111100-68D110101有符號數(shù)加、減的結(jié)果有“溢出”的判斷規(guī)則:正數(shù)+正數(shù)=負(fù)數(shù),負(fù)數(shù)+負(fù)數(shù)=正數(shù)例:設(shè)(AL
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人與公司投資合作合同范本2025
- 包裝材料供應(yīng)合同
- 證券交易合同格式規(guī)范
- 車輛過戶合同協(xié)議書模板
- 商業(yè)綜合體給排水工程清包合同范本
- 版臨時(shí)電力施工合作合同
- 出口代理合同模板
- 旅行期間的緊急情況應(yīng)對準(zhǔn)備加強(qiáng)考核試卷
- 農(nóng)村集體經(jīng)濟(jì)組織可持續(xù)發(fā)展能力評價(jià)與實(shí)踐考核試卷
- 咖啡館行業(yè)品牌延伸策略考核試卷
- 網(wǎng)課智慧樹知道《老年醫(yī)學(xué)概論(浙江大學(xué))》章節(jié)測試答案
- 《企業(yè)員工培訓(xùn)國內(nèi)外文獻(xiàn)綜述》4800字
- 麻醉藥品與精神藥品不良反應(yīng)的防治 (1) - 副本課件
- 車輛保險(xiǎn)登記臺賬參考模板范本
- 礦山道路施工組織設(shè)計(jì)方案
- 正弦函數(shù)的圖像與性質(zhì)優(yōu)秀課件
- 山東省任氏宗親分布村落
- 北師大版小學(xué)數(shù)學(xué)五年級下冊《有趣的折疊》說課稿
- 陜西省建設(shè)工程長安杯獎(jiǎng)省優(yōu)質(zhì)工程結(jié)構(gòu)備案和復(fù)查的要求
- 典型示功圖分析(全)
- 水生觀賞動(dòng)物鑒賞與維護(hù)課程
評論
0/150
提交評論