您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>電腦硬件>臺(tái)式機(jī)>

指令系統(tǒng)實(shí)例分析

2010年04月15日 11:21 wenjunhu.com 作者:佚名 用戶評論(0
關(guān)鍵字:指令系統(tǒng)(15642)

指令系統(tǒng)實(shí)例分析

一、教學(xué)計(jì)算機(jī)指令系統(tǒng)介紹
1、教學(xué)計(jì)算機(jī)指令系統(tǒng)概述
(1)6位固定長度的操作碼,最多有64條指令。
(2)指令分類

①按指令長度分:有單字、雙字指令

②按操作數(shù)的個(gè)數(shù)分:有無操作數(shù)、單操作數(shù)和雙操作數(shù)指令

③按尋址方式分:有寄存器尋址、寄存器間接尋址、立即數(shù)尋址、變址尋址、相對尋址、直接尋址和堆棧尋址。
(3)指令格式

15 10? 9 8? 7 0?
 6位操作碼? 2位條件碼? 目的寄存器編號? 源寄存器編號?
輸入、出端口地址/相對轉(zhuǎn)移的位移量?
立即數(shù)/絕對地址/變址位移量?
?

操作碼:在最高6位,最多64條指令。


條件碼:占2位,用作條件轉(zhuǎn)移指令的判斷條件(對應(yīng)狀態(tài)字C、Z、V、S)

最低8位:不同指令有不同的用法。
●輸入或輸出端口地址
●相對尋址的位移量(-128~+127)
●分成兩個(gè)4位字段,表示雙操作數(shù)的寄存器編號

2、教學(xué)計(jì)算機(jī)指令系統(tǒng)詳述
(1)按操作數(shù)的個(gè)數(shù)分類

①無操作數(shù)指令:11條
NOP 空操作指令 DI 關(guān)中斷指令
PSHF 狀態(tài)字入棧指令 STC 進(jìn)位位置1(C←1)
POPF 狀態(tài)字出棧指令 CLC 進(jìn)位位置0(C←0)
EI 開中斷指令
RET 子程序返回指令
IRET 中斷返回指令
LDMC 裝入微指令代碼指令
HALT 動(dòng)態(tài)停機(jī)指令

②單操作數(shù)指令:有兩種格式,共12條
格式1: 15 10? 9 8? 7 4? 3 0?
操作碼6位? 不用? 不用? SR?


MUL SR 無符號乘, R0 R1 ←R1×SR
DIV SR 無符號除, R0(余數(shù))R1(商) ← R0 R1 /SR
格式2: 15 10? 9 8? 7 4? 3 0?
操作碼6位? 不用? DR? 不用?


指令:PUSH DR 將DR壓入堆棧
POP DR 將棧頂元素彈出送入DR
INC DR DR ←DR+1
DEC DR DR←DR-1
NOT DR DR ←DR
SHL DR DR邏輯左移,最低位補(bǔ)0,最高位移入C

SHR DR DR邏輯右移,最高位補(bǔ)0,最低位移入C

RCL DR DR與C循環(huán)左移,C移入最低位,最高位移入C

RCR DR DR與C循環(huán)右移,C移入最高位,最低位移入C

③雙操作數(shù)指令,有兩種格式,共17條
格式1: 15 10? 9 8? 7 4? 3 0?
OP? 不用? DR? SR?


指令:ADD DR,SR 功能: DR DR+SR
ADC DR,SR 功能: DR DR+SR+C
SUB DR,SR 功能: DR DR-SR
SBB DR,SR 功能: DR DR-SR-C
CMP DR,SR 功能: DR-SR
TEST DR,SR 功能: DR&SR
OR DR,SR 功能: DR DR or SR
XOR DR, SR 功能: DR DR xor SR
AND DR, SR 功能: DR DR & SR
MOV DR,SR 功能: DR SR
MOV DR,[SR] 功能: DR [SR]
MOV [DR],SR 功能: [DR] SR
格式2: 15 10? 9 8? 7 4? 3 0?
OP? 不用? DR? SR?
DATA/ADR/OFFSET
?


DATA:立即數(shù) ADR:內(nèi)存地址
OFFSET:偏移量
指令: 功能:
MOV DR, DATA DR DATA
MOV DR, [ADR] DR [ADR]
MOV [ADR],SR [ADR] SR
MOV DR , OFFSET[SR] DR [OFFSET+SR]
MOV OFFSET [SR],DR [OFFSET+SR] DR

④I/O指令,輸入、輸出指令各1條
格式: 15 10? 9 8? 7 0?
OP? 不用? IO/ PORT?

指令:
IN PORT R0 [PORT],從外設(shè)讀入一字節(jié)到R0低8位
OUT PORT [PORT] R0, 把R0的低8位數(shù)據(jù)寫到外設(shè)


⑤轉(zhuǎn)移指令,3種格式,共6條相對轉(zhuǎn)移指令
格式1: 15 10? 9 8? 7 0?
OP? CND? 位移量?


JR ADR CND不用,必轉(zhuǎn)ADR地址,ADR為原PC值+位移量
JR CND,ADR 當(dāng)條件滿足時(shí)轉(zhuǎn)ADR所指的地址,ADR 為原PC值+位移量,條件 不滿足則順序執(zhí)行
通過通用寄存器給出轉(zhuǎn)移地址的轉(zhuǎn)移指令
格式2: 15 10? 9 8? 7 4? 3 0?
OP? CND? 不 用? SR?

指令:
JP SR CND不用,無條件轉(zhuǎn)SR 所指的地址
JP CND,SR 當(dāng)條件滿足時(shí)轉(zhuǎn)SR 所指的地址,條件不滿足則順序執(zhí)行
按絕對地址實(shí)現(xiàn)的轉(zhuǎn)移指令
格式3: 15 10? 9 8? 7 4? 3 0?
OP? CND? 不用? 不用?
ADR
?


指令:
JP ADR CND不用,無條件轉(zhuǎn)移到ADR地址
JP CND,ADR 當(dāng)條件滿足時(shí)轉(zhuǎn)移到ADR地址,條件不滿足則順序執(zhí)行 ,

⑥子程序調(diào)用指令,兩種格式,共兩條。
格式1: 15 10? 9 8? 7 4? 3 0?
OP? 不用? 不用? SR?

指令:CALL SR 調(diào)用SR指定的子程序,SP <---SP-1,
[SP] <---PC,PC <---- SR
格式: 15 10? 9 8? 7 4? 3 0?
OP? 不用? 不用? 不用?
ADR
?


指令:
CALL ADR 調(diào)用通過ADR指定的子程序,SP SP-1
[SP] PC,PC ADR
可以看出,子程序調(diào)用指令的兩種格式與無條件轉(zhuǎn)移指令的后兩種格式是一樣的。


(2)按指令實(shí)現(xiàn)的功能分類
①算邏指令:19條(見教材P139頁)
②傳送指令:12條(見教材P140頁)
③輸入、輸出指令:2條(見教材P140頁)
④控制類指令:17條(每條條件轉(zhuǎn)移指令按兩條計(jì)算)
⑤其它指令,3條

3、匯編語言程序設(shè)計(jì)
計(jì)算機(jī)語言按層次分為三級:
①機(jī)器語言 ②匯編語言 ③高級語言
匯編語言程序舉例:
例1 設(shè)計(jì)一個(gè)小程序,用次數(shù)控制在終端屏幕上輸出0~9十個(gè)數(shù)字符。(注:字符0~9的ASCII碼為30H ~39H)
A820
MOVE R2, 0A ;R2為計(jì)數(shù)器,初值送10
MOVE R0, 30 ;R0初值送‘0'的ASCII碼30H
(824) OUT 80 ;輸出R0中存放的字符,80為端口地址
DEC R2 ; R2計(jì)數(shù)器減1,置狀態(tài)標(biāo)志位
JR Z,830 ;若為0,就轉(zhuǎn)移到830處執(zhí)行;否則順序執(zhí)行
PUSH R0 ; R0入棧,為了輸入外部設(shè)備狀態(tài)字
IN 81 ;將端口地址為81的外設(shè)狀態(tài)字輸入到R0中
SHR R0 ;R0邏輯右移一位,最低位進(jìn)入C
JP NC,828;C=0,表示沒有就緒,循環(huán)等待;
C=1,順序執(zhí)行
POP R0;棧頂元素彈出進(jìn)R0
INC R0;R0內(nèi)容+1
JP 824 ;無條件轉(zhuǎn)移到824
(830) RET ;返回主程序

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

( 發(fā)表人:admin )

      發(fā)表評論

      用戶評論
      評價(jià):好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?