国产精品一区二区x88av_日韩三级av高清片_亚洲日本久久_丝袜亚洲另类丝袜在线

浙江自考網

咨詢熱線

15700080354 (點擊在線咨詢)
您現在的位置:浙江自考網>復習資料 > 正文
自考攻略

2023年4月浙江自考微機原理與接口技術復習資料:8086微處理器指令系統

時間:2023-02-10 09:01:39 作者:儲老師

自考助學 以下自考復習資料均由浙江自考網整理并發布,考生想要了解更多關于浙江自考報名、考試、成績查詢、畢業、歷年真題、常見問答等相關信息請關注浙江自考網,獲取浙江自考更多信息。


8086的匯編級指令有115條,可以分為數據傳送指令、算術運算指令、位處理指令

字符串指令、程序轉移指令以及處理器控制指令等6大類,下面作一簡要的介紹。

2.4.1 數據傳送指令

數據傳送指令有14條,可以分為4組,如表2-9所示。

表2-9 數據傳送指令

通用數據傳送指令

地址目標傳送指令

MOV

PUSH

POP

XCHG

XLAT

傳送字節或字
字進棧
字出棧
交換字節或字
字節轉換

LEA
LDS
LES

裝入有效地址
將指針變量裝入寄存器及DS
將指針變量裝入寄存器ES

I/O指令

標志傳送指令

IN
OUT

輸入字節或字
輸出字節或字

LAHF
SAHF
PUSHF
POPF

標志寄存器低字節送AH
AH
值送標志寄存器低字節

標志寄存器內容進棧
標志寄存器內容出棧

1.注意點

(1)在數據傳送指令中要注意:

①立即數只能作為源操作數;

②無存儲器之間直接傳送與交換的指令;

③不能用傳送指令給CS和IP置新指值;

④沒有用立即數對段寄存器直接置值的指令。

(2)除SAHF和POPF指令外,傳送指令皆不影響標志寄存器的值。

(3)除XCHG、XLAT指令外,皆不破壞源操作數。

(4)XCHG指令不能用段寄存器作為操作數。

(5)棧操作指令PUSH和POP必須以字為操作數。

2.幾條指令的說明

(1)指令MOV AL,VAR1。若VAR1為已定義的變量,則VAR1在指令中表示以VAR1為地址的內存單元的內容,該指令是把內存單元的一個字節傳送到AL。

(2)指令XLAT。其功能為AL←[(BX)+(AL)]即以BX值加上AL值作為地址,取出該地址對應的內存內容送AL。該指令通常用于表格檢索中,源操作數中BX內放表的首地址,AL中存放變址值,(BX)+(AL)為新地址,目的操作數AL注明為字節操作。在使用該指令前,必須先對AL和BX賦值。

(3)指令LEA REG,SRC。要求源操作數SRC是一個可以計算出有效地址EA的地址表達式,該指令所傳送的是變量的地址(有效地址),而不是變量所表示的內存之值。

(4)指令LES REG,SRC。REG為一個16位寄存器,這是一條16位傳送指令。

其功能為REG←[SRC],ES←[SRC+2]

而指令LDS REG,SRC的第二個目的操作數在DS。

(5)輸入/輸出指令。

IN AL,PORTAL←[PORT]

IN AX,FORTAX←[PORT+1:PORT]

IN AL,DXAL←[PORTDX]

INAX, DXAX←[PORTDX+1:PORTDX]

PORT為8位端口地址,PORTDX表示DX中存放16位端口地址。[PORT+1:PORT]表示一個16位數據,其高8位由PORT+1端口提供;其低8位由PORT端口提供。

2.4.2 算術運算指令

算術運算指令有20條,可以分為4組,如表2-10所示。

表2-10 算術運算指令

加法指令

減法指令

ADD

ADC
INC
AAA
DAA

加法
帶進位的加法
增量
加法的ASCII修正
加法的十進制修正

SUB
SBB
DEC
NEG
CMP
AAS
DAS

減法
帶錯位的減法
減量
求補
比較
減法的ASCII修正
減法的十進制修正

I/O指令

除法指令

IN
OUT

輸入字節或字
輸出字節或字

span
Ispan
AAD
CBW
CWD

無符號數除法
整數除法
除法的ASCII修正
字節轉換為字
字轉換為雙字

1.數據類型

8086的算術運算可以處理4種類型的數:無符號二進制數、帶符號二進制數、壓縮的BCD碼(十進制數)和非壓縮的BCD碼(十進制數),如表2-11所示。

表2-11 8位數在算術運算中的含義

HEX十六進制

位組合格式

無符號二進制數

帶符號二進制數

壓縮的BCD

非壓縮的BCD

07
89
C5

00000111
10001001
11000101

7
137
197

+7
-119
-59

7
89
無效

7
無效

無效

2.注意點

(1)加減運算指令ADD、ADC、SUB、SBB和CMP可用立即數作為一個源操作數。(2)除CBW和CWD兩條指令外,其余算術運算指令皆影響標志位。

(3)增量指令INC及減量指令DEC不影響標志CF。

(4)乘法指令MUL及IMUL是執行源操作數和累加器值(AX或AL)的和乘,若源操作數是一個字節,則累加器為AL,相乘結果需用雙字節表示時,存放在AX中;若源操作數是一個字,則累加器為AX,相乘結果需用雙字表示時,存放在DX:AX中,DX中存放高位字,AX中存放低位字。此時,將使標志位CF=OF=l;否則,CF=OF=0。其余標志都不確定。

(5)除法指令span和Ispan的操作過程為:

[AX] /源操作數(字節)→[AH]為余數,[AL]為商;

[DX]:[AX]/源操作數(字)→[DX]為余數,[AX]為商。

除法指令運算結果6個狀態標志皆不確定。

(6)算術運算指令中是字節運算還是字運算由出現在操作數表達式中變量名的類型屬性決定,或由寄存器操作數的字長決定。

(7)加法和減法指令中操作數是帶符號數還是無發好數有程序員解釋。

(8)十進制修正指令DAA及DAS中無操作數出現,但其隱含的操作數是AL,切源和目的操作數都是AL。二進制運算后AL的內容以及CF和AF的狀態是十進制修正的依據,因此在BCD碼的加減運算中,應在二進制加法或減法指令后緊跟一條DAA或DAS指令。

(9)當非壓縮的 BCD碼進行算術運算時,低半字節為8888B~1001B,高半字節為0000B,對于除法運算,被除數應在AX中,切AH、AL都是一字節的非壓縮BCD碼。

(10)ASCII修正指令AAA、AAS以及AAM用于二進制加法、減法及乘法指令之后,而AAD指令用于二進制除法指令之前,即用AAD指令對被除數先行修正。

2.4.3 位處理指令

位處理指令有13條,可以分為3組,如表2-12所示:

表2-12 位處理指令

邏輯運算指令

移位指令

循環移位指令

AND
OR
NOT
XOR
TEST

邏輯“與”
邏輯“或”
邏輯“非”
邏輯“異或”
測試

SHL
SAL
SHR
SAR

邏輯左移
算術左移
邏輯右移
算術右移

ROL
ROR
RCL
RCR

循環左移
循環右移
通過CF循環左移
通過CF循環右移

1.指令功能簡介

(1)邏輯“與”指令AND用來清除或保留目的操作數中某些位,欲清除的位同“0”相“與”,稱為“屏蔽”;欲保留的位同“1”相“與”;自身相“與”其值不變,但CF清零。

(2)邏輯“或”指令OR用來進行數的組合,同“0”相“或”,其值不變;同“1”相“或”,則置“1”;自身相“或”,其值不變,但CF清零。

(3)邏輯“異或”指令XOR可用來將目的操作數中某些位取反或保持不變。同“0”相“異或”,其值不變;同“1”相“異或”,其值取反;自身相“異或”,則清零。且CF也清零。

(4)測試指令TEST用來測試目的操作數中某一位是否為“1”,實際上執行邏輯“與”

操作,但結果不回送,只是根據結果修改標志寄存器。

(5)算術右移指令SAR執行后符號位保持不變,右移1次完成帶符號數除2朝小取整操作。

2.注意點

(1)位處理指令的操作數可以是字節,也可以是字。

(2)求反指令NOT的操作數不能是立即數,其它邏輯指令只有源操作數可以是立即數。

(3)求反指令NOT不影響任何標志位,其余邏輯指令使CF=OF=0,AF不確定,SF、ZF、PF由運算結果定。

(4)循環移位指令和移位指令中的操作數COUNT只能為1或CL;目的操作數不能為立即數(當移位次數為1時,COUNT=1,否則COUNT=CL)。

(5)移位指令和循環移位指令影響CF,移位指令還影響PF、SF和ZF,當移位計數值為1時OF有意義。

2.4.4 程序轉移指令

程序轉移指令有28條,可以分為4組如表2-13所示。

表2-13 程序轉移指令

無條件轉移指令

CALL

調用過程

RET

從過程返回

JMP

轉移

條件轉移指令

JA/JNBE

高于/不低于等于,轉移

JAE/JNB

高于或等于/不低于,轉移

JB/JNAE

低于/不高于等于,轉移

JBE/JNA

低于或等于/不高于,轉移

JC

有進位(錯位),轉移

JE/JZ

等于/為零,轉移

JG/JNLE

大于/不小于等于,轉移

JGE/JNL

大于或等于/不小于,轉移

JL/JNGE

小于/不大于等于,轉移

JLE/JNG

小于或等于/不大于,轉移

JNC

無進位(借位),轉移

JNE/JNZ

不等于/不為零,轉移

JNO

不溢出,轉移

JNP/JPO

PF為“0/奇狀態,轉移

JNS

SF為“0”,轉移

JO

溢出,轉移

JP/JPE

PF為“1/偶狀態,轉移

JS

SF為“1”,轉移


重復控制指令

LOOP

循環

LOOPE/LOOPZ

等于/為零,循環

LOOPNE/LOOPNZ

不等于/不為零,循環

JCXZ

寄存器CX=0,則轉移

中斷指令

INT

中斷

NITO

溢出中斷

IRET

中斷返回

條件轉移指令共有30條,這些指令根據執行指令時CPU標志寄存器的狀態決定是否控制程序轉移,每條指令的測試條件如表2-14所示.若滿足條件,則將控制轉移到指令所規定的目標;若條件不滿足,則繼續順序執行。所有的條件轉移指令都是段內轉移,且是短距離的,即目標必須在當前指令段內,且與下一條指令的第一個字節的距離在-128~+127個字節內。

表2-14 條件轉移指令的說明










JAE/JNB

CF=0

JB/JNAE

CF=1

JC

CF=1

JNC

CF=0

JE/JZ

ZF=1

JNE/JNZ

ZF=0

JNO

OF=0

JO

OF=1

JNP/JPO

PF=0

JP/JPE

PF=1

JNS

SF=0

JS

SF=1




JGE/JNL

SFOF=0

JL/JNEG

SFOF=1

JG/JNLE

(SFOF+ZF)=0

JLE/JNG

(SFOF+ZF)=1

多標志位不
帶符號數

JA/JNBE

(CF+ZF)=0

JBE/JNA

(CF+ZF)=1

2.無條件轉移指令

(1)JMP指令。JMP指令無條件地將控制轉移到目標單元,該指令中只有一個操作數,用來指定程序應在哪里繼續下去。可以實現“段內轉移”(包括短轉移和長轉移)以及“段間轉移”;而目的操作數的地址可以從指令本身獲得(“直接轉移”),也可以從指令所規定的存儲器或寄存器中獲得(“間接轉移”)。

(2)CALL指令O CAL指令用來調用一個“過程”(子程序),其格式與JMP指令相似,該指令與JMP指令的區別是:執行該指令時,必需有一個保存斷點的過程,即將CALI一指令的下一條指令的偏移地址(若為段間調用,還需加上CS值)保存進棧,以供返回之用。

(3)RET指令。RET指令的功能是控制從一個過程返回到調用該過程的CALL指令之后的那條指令,即返回斷點。

3.重復控制指令

重復控制指令可以用來管理軟件循環的重復過程,這些指令都用CX寄存器作為計數器,先判CX-1是否為零,不為零轉移到目標地址,其目標地址都是相對于該指令本身而言,其間距離只能在-128~+127字節范圍,即它們都是短距離轉移指令。

4.中斷指令

中斷指令用來允許程序和外部硬設備啟動中斷服務程序,若中斷是由軟件及不可屏蔽中

斷產生,則微處理器不執行中斷響應周期。

2.4.5 字符串指令

字符串指令有10條,如表2-15所示。

表2-15 字符串指令

REP

重復

REPE/REPZ

等于/為零時重復

REPNE/REPNZ

不等于/不為零時重復

MOVSMOVSBMOVSW

串傳送(字節/字)

CMPSCMPSBCMPSW

串比較(字節/字)

SCASSCASBSCASW

串掃描(字節/字)

LODSLODSBLODSW

取出串(字節/字)

STOSSTOSBSTOSW

存入串(字節/字)

1.字符串指令的共性介紹

在字符串指令中一般有兩個操作數——源操作數和目的操作數,還可使用重復前綴REP等以及重復次數計數器。在字符串操作中,寄存器和標志的用途如表2-16所示。

表2-16 字符串指令中寄存器和標志的用法

寄存器/標志

用途

SI

源字符串的變址值(偏移量)

DI

目的字符串的變址值(偏移量)

CX

重復次數計數器

AL/AX

掃描值

LODS指令的目的操作數

STOS指令的源操作數

DF

=0SIDI自動增量

=1SIDI自動減量

ZF

掃描/比較結束符

2.重復前綴

重復前綴REP、REPZ/REPE和REPNZ/REPNE用來控制其后字符串指令是否重復執行,重復前綴不影響標志。重復的字符串處理過程可被中斷,微處理器將在處理宇符串的下一個元素之前識別中斷。系統的中斷處理不受影響,在從中斷返回以后,重復過程再從中斷處繼續執行下去。

當執行REP MOVSB指令時,若CX≠0執行MOVSB,然后CX-1,再判CX是否為零,若不為零,重復執行MOVSB,直至CX=0,結束串操作。

2.4.6 處理器控制指令

處理器控制指令有12條,可分為3組,如表2-17所示。
表2-17 處理器控制指令

標志操作指令

外同步指令

STC

進位標志置1

HLT

暫停直至中斷或復位

CLC

進位標志置0

WAIT

等待TEST信號有效

CMC

進位標志取反

ESC

交權給外部處理機

STD

方向標志置1

LOCK

在下一條指令期間封鎖總線

CLD

方向標志置0

空操作指令

STI

中斷允許標志置1

NOP

空操作

CLI

中斷允許標志置0

聲明:

(一)由于考試政策等各方面情況的不斷調整與變化,本網站所提供的考試信息僅供參考,請以權威部門公布的正式信息為準。

(二)本網站在文章內容來源出處標注為其他平臺的稿件均為轉載稿,免費轉載出于非商業性學習目的,版權歸原作者所有。如您對內容、版權等問題存在異議請與本站聯系,我們會及時進行處理解決。

報名提醒

【考試時間:4月12-13日】

浙江自考服務中心

  • 微信公眾號
  • 考生交流群
  • 微信公眾號 掃一掃加關注微信公眾號

    與考生自由互動、并且能直接與專業老師進行交流解答。

  • 考生交流群 掃一掃加入微信交流群

    與考生自由互動、并且能直接與專業老師進行交流解答。

主站蜘蛛池模板: 宜兴市| 济阳县| 饶河县| 松桃| 博爱县| 光山县| 九龙坡区| 黔江区| 成安县| 蕲春县| 邹城市| 阳春市| 镇沅| 新野县| 甘谷县| 临澧县| 阿合奇县| 曲阜市| 渝中区| 佛坪县| 额济纳旗| 双鸭山市| 当雄县| 炉霍县| 大厂| 永寿县| 两当县| 镇巴县| 日喀则市| 阳春市| 长乐市| 龙井市| 呼和浩特市| 嘉祥县| 四平市| 台北县| 克东县| 阳曲县| 西充县| 赣榆县| 新宁县|

關注公眾號

回復“免費資料”領取復習資料

微信公眾號

微信公眾號

微信公眾號

微信交流群

<<點擊收起

在線咨詢

在線咨詢

APP

APP
下載

man
聯系
微信
wxlogo
掃描
二維碼
反饋建議
反饋
建議
回到頂部
回到
頂部
app
微信客服
 微信公眾號