版權(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.無符號(hào)二進(jìn)制數(shù)
字節(jié)(8位):0~255(0~0FFH),占用一字節(jié)存儲(chǔ)單元。
字(16位):0~65535(0~0FFFFH),占用連續(xù)的兩字節(jié)存儲(chǔ)單元,低地址存儲(chǔ)單元存放低8位數(shù)據(jù),高地址存儲(chǔ)單元存放高8位數(shù)據(jù),低字節(jié)地址為該字的地址。有符號(hào)二進(jìn)制數(shù)
字節(jié):-128~+127(80H~FFH,00H~7FH)字:-32768~+32767(8000H~FFFFH,00000H~7FFFH)以補(bǔ)碼形式存儲(chǔ),地址單元分配與無符號(hào)數(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)格的界定?!癮b”合起來稱字符串,分開“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)。
存儲(chǔ)器尋址:操作數(shù)在存儲(chǔ)器(數(shù)據(jù)段)中。代碼段數(shù)據(jù)段寄存器CPU內(nèi)存運(yùn)算器立即數(shù)存儲(chǔ)器
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為符號(hào)地址(變量名)
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ù)存放在存儲(chǔ)器中,但操作數(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]}+位移量(帶符號(hào)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ù)符號(hào)說明:
ac:累加器
reg:通用寄存器(8位或16位或32位)
reg8、reg16、reg32:8位、16位、32位寄存器
Seg:段寄存器
mem:存儲(chǔ)器(8位或16位或32位)
mem8、mem16、mem32:8位、16位、32位存儲(chǔ)器
imm:立即數(shù)(8位或16位或32位)
imm8、imm16、imm32:8位、16位、32位立即數(shù)一、指令格式
指令格式:
[標(biāo)號(hào):]操作碼[操作數(shù),…] [;注釋]
其中:標(biāo)號(hào):確定匯編語句的位置,提供跳轉(zhuǎn)、循環(huán)的目標(biāo)。操作碼:匯編語句操作。操作數(shù):操作數(shù)據(jù)項(xiàng),數(shù)目因操作碼而異。注釋:程序注解。 如:START:MOVAX,DATAMOVDS,AX;設(shè)置DS(一)數(shù)據(jù)傳送類指令用于實(shí)現(xiàn)存儲(chǔ)器與寄存器、寄存器與寄存器、累加器與I/O端口之間字節(jié)、字或雙字的傳送,也可將立即數(shù)傳送到存儲(chǔ)器或寄存器
不影響標(biāo)志位:CF、SF、ZF、OF、AF、PF
傳送指令MOV
格式:
MOV目標(biāo),源;目標(biāo)源
立即數(shù)、寄存器、存儲(chǔ)器寄存器、存儲(chǔ)器立即數(shù)寄存器存儲(chǔ)器寄存器段寄存器傳送指令MOV示意圖注意:1.立即數(shù)和CS不能是目標(biāo)操作數(shù)例MOV10H,AL錯(cuò)
MOVCS,AX錯(cuò)2.存儲(chǔ)器之間,段寄存器之間不能傳送例MOVDS,SS錯(cuò)
MOV[BX],[SI]錯(cuò)3.立即數(shù)不能送段寄存器例MOVAX,1000HMOVDS,AX4.源和目標(biāo)操作數(shù)類型要一致
MOVAX,BL錯(cuò)5.立即數(shù)送存儲(chǔ)器要說明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è)存儲(chǔ)器操作數(shù)不能直接交換;3.不能在交換指令中使用段寄存器,用一個(gè)也不可以。
取偏移地址指令LEA
格式:LEA目標(biāo),源
reg,mem其功能是將源操作數(shù)的偏移地址送到一個(gè)寄存器中。所以是16位地址的傳送指令。源操作數(shù)是任何一種存儲(chǔ)器操作數(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)換的代碼在表中的序號(hào),并將XLAT指令執(zhí)行的結(jié)果存于AL中。
序號(hào)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)算是對象可以是有符號(hào)數(shù)或無符號(hào)數(shù)。加、減運(yùn)算用相同的指令來進(jìn)行,但對乘、除運(yùn)算要用不同的指令。對于加、減運(yùn)算,操作數(shù)是否有符號(hào)及結(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),有符號(hào)數(shù).解:01100100100D得:(AL)=0CH(正確)+10101000-88DOFSFZFAFPFCF
10000110012D000011(2)SUBAL,AH;AL(AL)-(AH),有符號(hào)數(shù).解:01100100100D得:(AL)=BCH(不正確)
(-10101000)-88DOFSFZFAFPFCF+0101100010111100-68D110101有符號(hào)數(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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物聯(lián)網(wǎng)saas軟件系統(tǒng)解決方案
- 博士生求職信格式
- 【原創(chuàng)】江蘇省宿遷市2013-2020學(xué)年高一政治(人教版)必修二:《政治生活》第二單元檢測試題
- 深圳社區(qū)模式
- 人教版八年級(jí)上生物思維導(dǎo)圖
- 土地價(jià)格評(píng)估方法
- 香精在特色美食文化中的傳承與創(chuàng)新考核試卷
- 香精在洗護(hù)發(fā)產(chǎn)品中的效果評(píng)價(jià)考核試卷
- 鐵路鋼軌打磨與修復(fù)工藝考核試卷
- 陶瓷制品消費(fèi)群體分析試題考核試卷
- 2025年1月八省聯(lián)考河南新高考物理試卷真題(含答案詳解)
- (完整版)混凝土公司組織機(jī)構(gòu)框圖
- 煤氣化工藝路線的比較
- 寶石學(xué) 第11章 有機(jī)寶石.
- SAP-按銷售訂單采購生產(chǎn)系統(tǒng)實(shí)現(xiàn)之配置和操作
- 《安寧療護(hù)培訓(xùn)》PPT課件
- 第5章煤炭氣化技術(shù)
- 全口義齒修復(fù)匯總
- 公墓施工組織設(shè)計(jì)
- 業(yè)余無線電臺(tái)設(shè)置(變更)申請表
- 擔(dān)保公司員工守則(共18頁)
評(píng)論
0/150
提交評(píng)論