




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3章指令系統(tǒng)郟東耀§1
數(shù)據(jù)類型§2
尋址方式§3
指令系統(tǒng)主要內容學習指導和要求了解指令集的六種數(shù)據(jù)類型掌握尋址方式;熟記各種類型的指令格式及功能,并能編寫簡單程序。
第1節(jié)80X86的數(shù)據(jù)類型
80X86匯編語言中可使用的數(shù)據(jù)類型有以下六種:1.無符號二進制數(shù)
字節(jié)(8位):0~255(0~0FFH),占用一字節(jié)存儲單元。
字(16位):0~65535(0~0FFFFH),占用連續(xù)的兩字節(jié)存儲單元,低地址存儲單元存放低8位數(shù)據(jù),高地址存儲單元存放高8位數(shù)據(jù),低字節(jié)地址為該字的地址。有符號二進制數(shù)
字節(jié):-128~+127(80H~FFH,00H~7FH)字:-32768~+32767(8000H~FFFFH,00000H~7FFFH)以補碼形式存儲,地址單元分配與無符號數(shù)類似。浮點數(shù)是屬于有理數(shù)中某特定子集的數(shù)字表示,在計算機中用以近似表示任意某個實數(shù)。具體的說,這個實數(shù)由一個整數(shù)或定點數(shù)(即尾數(shù))乘以某個基數(shù)(計算機中通常是2)的整數(shù)次冪得到,這種表示方法類似于基數(shù)為10的科學記數(shù)法。3.浮點數(shù)(實數(shù))BCD碼壓縮BCD碼:1字節(jié)存放兩個BCD碼,格式如圖a74307430
(a)(b)非壓縮BCD碼:1字節(jié)存放一個BCD碼(低4位),格式如圖b字符串由一串字符組成的,它是字符的序列,從某種程度上來說有些類似于字符的數(shù)組。一個字母或漢字算一個字符,字符跟字符串沒有嚴格的界定?!癮b”合起來稱字符串,分開“a”,“b”就叫字符了。十位個位0或任意個位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內。
存儲器尋址:操作數(shù)在存儲器(數(shù)據(jù)段)中。代碼段數(shù)據(jù)段寄存器CPU內存運算器立即數(shù)存儲器
1.立即尋址指定的操作數(shù)緊跟在操作碼之后,直接存放在代碼段中如:MOVBL,56H
;BL56HMOVAX,2056H
;AX2056H
OP56HOP56H20HBLAXAHAL20H56H56H注意:立即數(shù)只能源操作數(shù),不能目標操作數(shù)。
2.寄存器尋址操作數(shù)在CPU的寄存器中,而寄存器的名由指令指出如:MOVBL,AL注意:在同一條指令中,類型必須匹配。如下列指令是錯誤的:MOVAL,1234HMOVBX,AL
直接尋址:操作數(shù)有效地址(16位或32位)直接包含在指令中,它位于操作碼之后,存放在代碼段中。如果指令無前綴指明在那一段中,則默認操作數(shù)存放在數(shù)據(jù)段。
例:
MOVAL,[0010H];0010H為偏移地址
MOVBX,D1;DS段D1的內容送BL,
D1+1的內容送BH注:D1為符號地址(變量名)
OP10H00HAL(DS)*24+0010H
如:MOVAX,[2000H];DS段2000H的內容送AL,
2001H的內容送AHMOVAX,F(xiàn)S:[2000H];FS段2000H的內容送AL,
2001H的內容送AH寄存器間接尋址操作數(shù)存放在存儲器中,但操作數(shù)的偏移地址存放在寄存器中。(1)16位尋址
EA=[DI]、[SI]、[BX]、[BP]
無前綴默認操作數(shù)存放在數(shù)據(jù)段無前綴默認操作數(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))相對寄存器間接尋址寄存器內容與位移量之和形成操作數(shù)的有效地址。即:
EA=[寄存器]+位移量
(1)16位尋址
EA={[BX]、[BP]、[DI]、[SI]}+位移量(帶符號8或16位整數(shù))如:MOVAX,2040H[BX]
或MOVAX,[BX+2040H];DS段(BX)+2040H地址中的字數(shù)據(jù)送AX。
基址加變址尋址基址寄存器內容與變址寄存器內容之和形成操作數(shù)的偏移地址。即:EA=[基址寄存器]+[變址寄存器]
(1)16位尋址基址寄存器:BX、BP;變址寄存器:DI、SI如:MOVAX,[BX+SI]或MOVAX,[BX][SI];DS段(BX)+(SI)地址中的字數(shù)據(jù)送AX。
相對基址加變址尋址基址寄存器內容與變址寄存器內容再加偏移量之和形成操作數(shù)的有效地址。即:
EA=[基址寄存器]+[變址寄存器]+偏移量如:MOVAX,1234H[BX+DI]
或MOVAX,[BX+DI+1234H]
或MOVAX,1234H[BX][DI];DS段
(BX)+(DI)+1234H地址中的字數(shù)據(jù)送AX。練習題:假設(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ù)符號說明:
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ù)一、指令格式
指令格式:
[標號:]操作碼[操作數(shù),…] [;注釋]
其中:標號:確定匯編語句的位置,提供跳轉、循環(huán)的目標。操作碼:匯編語句操作。操作數(shù):操作數(shù)據(jù)項,數(shù)目因操作碼而異。注釋:程序注解。 如:START:MOVAX,DATAMOVDS,AX;設置DS(一)數(shù)據(jù)傳送類指令用于實現(xiàn)存儲器與寄存器、寄存器與寄存器、累加器與I/O端口之間字節(jié)、字或雙字的傳送,也可將立即數(shù)傳送到存儲器或寄存器
不影響標志位:CF、SF、ZF、OF、AF、PF
傳送指令MOV
格式:
MOV目標,源;目標源
立即數(shù)、寄存器、存儲器寄存器、存儲器立即數(shù)寄存器存儲器寄存器段寄存器傳送指令MOV示意圖注意:1.立即數(shù)和CS不能是目標操作數(shù)例MOV10H,AL錯
MOVCS,AX錯2.存儲器之間,段寄存器之間不能傳送例MOVDS,SS錯
MOV[BX],[SI]錯3.立即數(shù)不能送段寄存器例MOVAX,1000HMOVDS,AX4.源和目標操作數(shù)類型要一致
MOVAX,BL錯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ù)進棧指令:先修改指針,后源內容入棧
PUSH源;(SP)-2SP
;源((SP))
數(shù)據(jù)出棧指令:先將指針內容送到目標,后修改指針
POP目標;((SP))目標;(SP)+2SP
設:(SS)=2000H,(SP)=0010H(AX)=3344H,(BX)=5678H寫出指令完成如下功能:
通過堆棧將AX,BX的內容交換PUSHAXPUSHBXPOPAXPOPBXSPSS2000H000BH000CH000DH000EH000FH0010H(SP)-2(SP)-22000H:000BH33H44H56H78H33H44H56H78HAXBX設:(SS)=2000H,(SP)=0010H(AX)=3344H,(BX)=5678H寫出指令完成如下功能:
通過堆棧將AX,BX的內容交換PUSHAXPUSHBXPOPAXPOPBX(SP)+2SS2000H000BH000CH000DH000EH000FH0010H(SP)+2(SP)2000H:000BH33H44H56H78H33H44H56H78HBXAX堆棧說明:1.堆棧以字為單位操作PUSHBL錯
PUSH[DI]
是正確表示的指令,當然,也可以寫為:
PUSHWORDPTR[DI]2.CS不能做目標PUSHCS對
POPCS錯3.堆棧操作指令都隱含了一個操作數(shù):SP所指的棧頂數(shù)據(jù);4.沒有立即尋址PUSH1234H錯5先進后出,后進先出交換指令XCHG格式:XCHG操作數(shù)1,操作數(shù)2;功能:操作數(shù)1操作數(shù)2如:XCHGAX,BXXCHGAX,[BX]說明:1.操作數(shù)可以是reg,mem2.兩個存儲器操作數(shù)不能直接交換;3.不能在交換指令中使用段寄存器,用一個也不可以。
取偏移地址指令LEA
格式:LEA目標,源
reg,mem其功能是將源操作數(shù)的偏移地址送到一個寄存器中。所以是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段內),AL裝入要轉換的代碼在表中的序號,并將XLAT指令執(zhí)行的結果存于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
標志寄存器傳送指令指令格式:LAHF;標志寄存器低8位內容送AHSAHF;AH內容送標志寄存器低8位PUSHF;16位標志寄存器內容進棧POPF;16位出棧內容送標志寄存器練習:找出下面指令的錯誤并改正(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(二)算術運算類指令
執(zhí)行指令后,根據(jù)結果置標志位:
CF、SF、ZF、OF、AF、PF算術運算指令包括加、減、乘、除四種運算,以及相應的十進制調整指令。算術運算是對象可以是有符號數(shù)或無符號數(shù)。加、減運算用相同的指令來進行,但對乘、除運算要用不同的指令。對于加、減運算,操作數(shù)是否有符號及結果的判斷(是否溢出)是用戶的事,計算機則是按相同的方法進行運算。加法指令加法/減法ADD/SUB目標,源;功能:目標目標+源帶進位加法/減法ADC/SBB目標,源;功能:目標目標+源+CF加一/減一INC/ DEC目標;功能:目標目標+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,置標志位
reg,regreg,memreg,immmem,regmem,imm功能:從OP1中減去OP2,結果存OP1中例:SUBAX,BX;AX(AX)-(BX)
例:設AL=64H,AH=0A8H,求執(zhí)行下列指令的結果和標志位的狀態(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ù)加、減的結果有“溢出”的判斷規(guī)則:正數(shù)+正數(shù)=負數(shù),負數(shù)+負數(shù)=正數(shù)例:設(AL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Milbemycin-α11-Meilingmycin-A-生命科學試劑-MCE
- racemic-Enterodiol-d6-生命科學試劑-MCE
- 四川文化傳媒職業(yè)學院《形體與體能三》2024-2025學年第一學期期末試卷
- 專項應急救援預案更新時間(3篇)
- 湖南鐵路科技職業(yè)技術學院《Python語言編程與工程實踐》2024-2025學年第一學期期末試卷
- 益陽醫(yī)學高等??茖W校《老年社區(qū)工作》2024-2025學年第一學期期末試卷
- 西藏農牧學院《多媒體基礎》2024-2025學年第一學期期末試卷
- 區(qū)民政所防汛應急預案范文(3篇)
- 2025至2030中國2硝基丙烷行業(yè)發(fā)展研究與產業(yè)戰(zhàn)略規(guī)劃分析評估報告
- 2025-2030鋰電隔膜涂覆技術升級方向與設備改造投資回報周期報告
- 2025年鄭州銀行招聘考試(行政能力測驗)歷年參考題庫含答案詳解(5套)
- 園藝生物技術應用與發(fā)展
- 子癇患者護理查房
- 2025上海市八年級升九年級數(shù)學暑假提升講義:相似三角形壓軸題(六大題型)原卷版
- 2025年工業(yè)互聯(lián)網工程技術人員考核試題題庫及答案
- 農行OCRM系統(tǒng)講解
- 醫(yī)療護理員職業(yè)技能競賽試題及答案
- 2025年高端美食主題餐廳餐飲服務整體外包合同
- 體育課培訓課件
- 工貿安全員考試題庫及答案大全
- 2025年云南pcr上崗證考試題及答案
評論
0/150
提交評論