那曲檬骨新材料有限公司

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>電子百科>電腦硬件>臺式機>

指令系統實例分析

2010年04月15日 11:21 www.qldv.cn 作者:佚名 用戶評論(0

指令系統實例分析

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

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

②按操作數的個數分:有無操作數、單操作數和雙操作數指令

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

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

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


條件碼:占2位,用作條件轉移指令的判斷條件(對應狀態字C、Z、V、S)

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

2、教學計算機指令系統詳述
(1)按操作數的個數分類

①無操作數指令:11條
NOP 空操作指令 DI 關中斷指令
PSHF 狀態字入棧指令 STC 進位位置1(C←1)
POPF 狀態字出棧指令 CLC 進位位置0(C←0)
EI 開中斷指令
RET 子程序返回指令
IRET 中斷返回指令
LDMC 裝入微指令代碼指令
HALT 動態停機指令

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


MUL SR 無符號乘, R0 R1 ←R1×SR
DIV SR 無符號除, R0(余數)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邏輯左移,最低位補0,最高位移入C

SHR DR DR邏輯右移,最高位補0,最低位移入C

RCL DR DR與C循環左移,C移入最低位,最高位移入C

RCR DR DR與C循環右移,C移入最高位,最低位移入C

③雙操作數指令,有兩種格式,共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:立即數 ADR:內存地址
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],從外設讀入一字節到R0低8位
OUT PORT [PORT] R0, 把R0的低8位數據寫到外設


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


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

指令:
JP SR CND不用,無條件轉SR 所指的地址
JP CND,SR 當條件滿足時轉SR 所指的地址,條件不滿足則順序執行
按絕對地址實現的轉移指令
格式3: 15 10? 9 8? 7 4? 3 0?
OP? CND? 不用? 不用?
ADR
?


指令:
JP ADR CND不用,無條件轉移到ADR地址
JP CND,ADR 當條件滿足時轉移到ADR地址,條件不滿足則順序執行 ,

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

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


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


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

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

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

( 發表人:admin )

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      百家乐官网策略详解| 博彩通百家乐官网概率| 澳门百家乐打法百家乐破解方法| 德州扑克锦标赛| 金都百家乐现金网| 百家乐官网出千技巧| 钱柜百家乐娱乐城| 百家乐官网拍照看| 百家乐官网的必胜方法| 大发888集团| 百家乐无损打法| 真人百家乐官网攻略| 大发在线德州扑克| 大发888金皇冠娱乐城| 澳门百家乐博客| 真人版百家乐官网试玩| 网上百家乐官网作弊下载| 真人娱乐场| 百家乐网哪一家做的最好呀| 百家乐外挂程式| 深圳百家乐官网的玩法技巧和规则 | 真人百家乐导航| 利高百家乐官网娱乐城| 百乐门娱乐城注册| 免费百家乐缩水工具| 百家乐隔一数打法| 凯斯百家乐官网的玩法技巧和规则 | 现金棋牌游戏平台 | 大发888官网e世博备用网址| 综合百家乐博彩论坛| 百家乐送1000| 合乐8百家乐官网娱乐城| 海威百家乐官网赌博机| 百家乐官网注册平台排名| 百家乐官网能战胜吗| 固始县| 北安市| 网上百家乐官网玩法| 兴隆县| 带百家乐官网的时时彩平台| 百家乐官网会骗人吗|