2020年計(jì)算機(jī)組成原理課程設(shè)計(jì)_第1頁(yè)
2020年計(jì)算機(jī)組成原理課程設(shè)計(jì)_第2頁(yè)
2020年計(jì)算機(jī)組成原理課程設(shè)計(jì)_第3頁(yè)
2020年計(jì)算機(jī)組成原理課程設(shè)計(jì)_第4頁(yè)
2020年計(jì)算機(jī)組成原理課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩69頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

計(jì)算機(jī)組成原理課程設(shè)計(jì)

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告

一、課程設(shè)計(jì)目的

1.在實(shí)驗(yàn)機(jī)上設(shè)計(jì)實(shí)現(xiàn)機(jī)器指令及對(duì)應(yīng)的微指

令(微程序)并驗(yàn)證,從而進(jìn)一步掌握微程序設(shè)

計(jì)控制器的基本方法并了解指令系統(tǒng)與硬件結(jié)

構(gòu)的對(duì)應(yīng)關(guān)系;

2.經(jīng)過(guò)控制器的微程序設(shè)計(jì),綜合理解計(jì)算機(jī)

組成原理課程的核心知識(shí)并進(jìn)一步建立整機(jī)系

統(tǒng)的概念;

3.培養(yǎng)綜合實(shí)踐及獨(dú)立分析、解決問(wèn)題的能力。

二、課程設(shè)計(jì)的任務(wù)

針對(duì)COP實(shí)驗(yàn)儀,從詳細(xì)了解該模型機(jī)的

指令/微指令系統(tǒng)入手,以實(shí)現(xiàn)乘法和除法運(yùn)算

功能為應(yīng)用目標(biāo),在COP的集成開(kāi)發(fā)環(huán)境下,

設(shè)計(jì)全新的指令系統(tǒng)并編寫(xiě)對(duì)應(yīng)的微程序;之后

編寫(xiě)實(shí)現(xiàn)乘法和除法的程序進(jìn)行設(shè)計(jì)的驗(yàn)證。

三、課程設(shè)計(jì)使用的設(shè)備(環(huán)境)

1.硬件

?COP實(shí)驗(yàn)儀

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

?PC機(jī)

2.軟件

?COP仿真軟件

四、課程設(shè)計(jì)的具體內(nèi)容(步驟)

L詳細(xì)了解并掌握COP模型機(jī)的微程序控制

器原理,經(jīng)過(guò)綜合實(shí)驗(yàn)來(lái)實(shí)現(xiàn)

該模型機(jī)指令系統(tǒng)的特點(diǎn):

①總體概述

COP模型機(jī)包括了一個(gè)標(biāo)準(zhǔn)CPU所具備所有

部件,這些部件包括:運(yùn)算器ALU、累加器A、

工作寄存器W、左移門(mén)L、直通門(mén)D、右移門(mén)R、

寄存器組R0-R3、程序計(jì)數(shù)器PC、地址寄存器

MAR、堆棧寄存器ST、中斷向量寄存器IA、輸入

端口IN、輸出端口寄存器OUT、程序存儲(chǔ)器EM、

指令寄存器IR、微程序計(jì)數(shù)器uPC、微程序存儲(chǔ)

器uM,以及中斷控制電路、跳轉(zhuǎn)控制電路。其

中運(yùn)算器和中斷控制電路以及跳轉(zhuǎn)控制電路用

CPLD來(lái)實(shí)現(xiàn),其它電路都是用離散的數(shù)字電路

組成。微程序控制部分也能夠用組合邏輯控制來(lái)

代替。

模型機(jī)的指令碼為8位,根據(jù)指令類(lèi)型的不

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

同,能夠有0到2個(gè)操作數(shù)。指令碼的最低兩位

用來(lái)選擇RO-R3寄存器,在微程序控制方式中,

用指令碼做為微地址來(lái)尋址微程序存儲(chǔ)器,找到

執(zhí)行該指令的微程序。而在組合邏輯控制方式

中,按時(shí)序用指令碼產(chǎn)生相應(yīng)的控制位。在本模

型機(jī)中,一條指令最多分四個(gè)狀態(tài)周期,一個(gè)狀

態(tài)周期為一個(gè)時(shí)鐘脈沖,每個(gè)狀態(tài)周期產(chǎn)生不同

的控制邏輯,實(shí)現(xiàn)模型機(jī)的各種功能。模型機(jī)有

24位控制位以控制寄存器的輸入、輸出,選擇

運(yùn)算器的運(yùn)算功能,存儲(chǔ)器的讀寫(xiě)。

模型機(jī)的缺省的指令集分幾大類(lèi):算術(shù)運(yùn)算

指令、邏輯運(yùn)算指令、移位指令、數(shù)據(jù)傳輸指令、

跳轉(zhuǎn)指令、中斷返回指令、輸入/輸出指令。

②模型機(jī)的尋址方式

表1模型機(jī)的尋址方式

模型機(jī)的尋址方式說(shuō)指令舉

指令說(shuō)明

尋址方式明例

操作數(shù)為累將累加器A

CPLA

累加器尋加器A的值取反

址隱含尋址累將累加器A

OUT

加器A的值輸出到

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

輸出端口寄

存器OUT

將寄存器RO

參與運(yùn)算的

的值加上累

寄存器尋數(shù)據(jù)在ADD

加器A的值,

址R0?R3的寄A,RO

再存入累加

存器中

器A中

參與運(yùn)算的將寄存器R1

數(shù)據(jù)在存儲(chǔ)的值作為地

寄存器間器EM中,數(shù)MOV址,把存儲(chǔ)器

接尋址據(jù)的地址在A,@R1EM中該地址

寄存器的內(nèi)容送入

R0-R3中累加器A中

將存儲(chǔ)器EM

參與運(yùn)算的

中40H單元

數(shù)據(jù)在存儲(chǔ)

的數(shù)據(jù)與累

存儲(chǔ)器直器EM中,數(shù)AND

加器A的值

接尋址據(jù)的地址為A,40H

作邏輯與運(yùn)

指令的操作

算,結(jié)果存入

數(shù)。

累加器A

立即數(shù)尋參與運(yùn)算的SUB從累加器A

址數(shù)據(jù)為指令A(yù),#10H中減去立即

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

的操作數(shù)。數(shù)10H,結(jié)果

存入累加器

A

COP模型機(jī)指令的最低兩位(IR0和IR1)

用來(lái)尋址R0?R3四個(gè)寄存器;IR2和IR3與ELP

微控制信號(hào),Cy和Z兩個(gè)程序狀態(tài)信號(hào)配合,

控制PC的置數(shù)即程序的轉(zhuǎn)移。各種轉(zhuǎn)移的條件

判斷邏輯如下所示:

PC置數(shù)邏輯

當(dāng)ELP=1時(shí),不允許PC被預(yù)置

當(dāng)ELP=0時(shí)

當(dāng)IR3=1時(shí),無(wú)論Cy和Z什么狀

態(tài),PC被預(yù)置

當(dāng)IR3=0時(shí)

若IR2=0,則當(dāng)Cy=l時(shí)PC被

預(yù)置

若IR2=L則當(dāng)Z=1時(shí)PC被

預(yù)置

本模型機(jī)時(shí)序控制采用不定長(zhǎng)機(jī)器周期的

同步控制方式,一條指令最多分四個(gè)節(jié)拍。

系統(tǒng)提供的默認(rèn)指令系統(tǒng)包括以下7類(lèi)指令:

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

田4)二宿比j型田=田狂皿任七匕人

ADDA,R?ANDA,R?MAA,R?JCMM

ADDA,@R?ANDA,@R?MOVA,@R?JZMM

ADDA,MMANDA,MMMOVA,MMJMPMM

ADDA,#HANDA,#HMOVA,#11CALLMMRET

ADDCA,R?ORA.R?MOVR?.A

移位指令:中斷皈回指輸入/輸出

AADDDCPAA,/@aDKOr

RRARETIREADMM

ADDCA,MM

RLAWRITEMM

ADDCA,#11

RRCAIN

該模型機(jī)微指令系統(tǒng)的特點(diǎn)(包括其微

指令格式的說(shuō)明等):

①總體概述

該模型機(jī)的微命令是以直接表示法進(jìn)行編碼

的,其特點(diǎn)是操作控制字段中的每一位代表一個(gè)

微命令。這種方法的優(yōu)點(diǎn)是簡(jiǎn)單直觀,其輸出直

接用于控制。缺點(diǎn)是微指令字較長(zhǎng),因而使控制

存儲(chǔ)器容量較大。

②微指令格式的說(shuō)明

模型機(jī)有24位控制位以控制寄存器的輸

入、輸出,選擇運(yùn)算器的運(yùn)算功能,存儲(chǔ)器的讀

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

寫(xiě)。微程序控制器由微程序給出24位控制信號(hào),

而微程序的地址又是由指令碼提供的,也就是說(shuō)

24位控制信號(hào)是由指令碼確定的。該模型機(jī)的

微指令的長(zhǎng)度為24位,其中微指令中只含有微

命令字段,沒(méi)有微地址字段。其中微命令字段采

用直接按位的表示法,哪位為0,表示選中該微

操作,而微程序的地址則由指令碼指定。這24

位操作控制信號(hào)的功能如表2所示:(按控制信

號(hào)從左到右的順序依次說(shuō)明)

表2微指令控制信號(hào)的功能

操作招

控制信號(hào)的說(shuō)明

制信號(hào)

外部設(shè)備讀信號(hào),當(dāng)給出了外設(shè)的地址

XRD

后,輸出此信號(hào),從指定外設(shè)讀數(shù)據(jù)。

EMW

程序存儲(chǔ)器EM寫(xiě)信號(hào)。

R

EMRD程序存儲(chǔ)器EM讀信號(hào)。

將程序計(jì)數(shù)器PC的值送到地址總

PCOE

線ABUS±o

將程序存儲(chǔ)器EM與數(shù)據(jù)總線

EMEN

DBUS接通,由EMWR和EMRD

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

決定是將DBUS數(shù)據(jù)寫(xiě)到EM中,

還是從EM讀出數(shù)據(jù)送到DBUSo

將程序存儲(chǔ)器EM讀出的數(shù)據(jù)打入指

IREN

令寄存器IR和微指令計(jì)數(shù)器FiPCo

中斷返回時(shí)清除中斷響應(yīng)和中斷

EINT

請(qǐng)求標(biāo)志,便于下次中斷。

PC打入允許,與指令寄存器的

ELP

IR3、IR2位結(jié)合,控制程序跳轉(zhuǎn)。

MARE將數(shù)據(jù)總線DBUS上數(shù)據(jù)打入地址

N寄存器MARo

MARO將地址寄存器MAR的值送到地址

E總線ABUS±0

OUTE將數(shù)據(jù)總線DBUS上數(shù)據(jù)送到輸出

N端口寄存器OUT里。

將數(shù)據(jù)總線DBUS上數(shù)據(jù)存入堆棧

STEN

寄存器ST中。

讀寄存器組R0~R3,寄存器R?的

RRD

選擇由指令的最低兩位決定。

寫(xiě)寄存器組R0~R3,寄存器R?的

RWR

選擇由指令的最低兩位決定。

決定運(yùn)算器是否帶進(jìn)位移位,

CN

CN=1帶進(jìn)位,CN=0不帶進(jìn)位。

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

將標(biāo)志位存入ALU內(nèi)部的標(biāo)志寄

FEN

存器。

X2

X2、XI、X0三位組合來(lái)譯碼選擇

XI

將數(shù)據(jù)送到DBUS上的寄存器。

X0

將數(shù)據(jù)總線DBUS的值打入工作寄

WEN

存器W中。

將數(shù)據(jù)總線DBUS的值打入累加器

AEN

A中。

S2

S2、SI、SO三位組合決定ALU做

S1

何種運(yùn)算。

SO

COP中有7個(gè)寄存器能夠向數(shù)據(jù)總線輸出數(shù)

據(jù),但在某一特定時(shí)刻只能有一個(gè)寄存器輸出

數(shù)據(jù).由X2,XI,X0決定那一個(gè)寄存器輸出數(shù)

據(jù)。

X2XI輸出寄存器

X0

00IN_OE夕卜

0部輸入門(mén)

00IA_OE中

1斷向量

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

01ST_OE堆

0棧寄存器

01PC_OE

1PC寄存器

10D_OE直

0通門(mén)

10R_OE右

1移門(mén)

11L_OE左

0移門(mén)

11沒(méi)有輸出

1

COP中的運(yùn)算器由一片EPLD實(shí)現(xiàn).有8種運(yùn)

算,經(jīng)過(guò)S2,SI,SO來(lái)選擇。運(yùn)算數(shù)據(jù)由寄存器

A及寄存器W給出,運(yùn)算結(jié)果輸出到直通門(mén)D。

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

01A|W或

0

01A&W與

1

10A+W+C帶

0進(jìn)位加

10A-W-C帶

1進(jìn)位減

11?AA

0取反

11A輸

1出A

2o計(jì)算機(jī)中實(shí)現(xiàn)乘法和除法的原理

(1)無(wú)符號(hào)乘法

①實(shí)例演示(即,列4位乘法具體例子演

算的算式):

1001;被

乘數(shù)

X0101;乘

數(shù)

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

0000;初始值

(零)

+0101(0);乘

數(shù)最低位為1,部分積加乘數(shù),被乘數(shù)左移

9

位,乘

數(shù)右移

一位。

0101;部

分積

+0000(1);乘

數(shù)最低位為0,部分積加0,被乘數(shù)左

;移

一位,

乘數(shù)右

移一

位。

00101;部

分積

+0101(1);乘

數(shù)最低位為1,部分積加被乘數(shù),被乘數(shù)左

;移

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

-------------------一位,乘數(shù)

右移一位。

011001;部分積

+0000(0);乘

數(shù)最低位為0,部分積加0,被乘數(shù)左移一

位,乘

數(shù)右移

一位。

(0)0011001;計(jì)

算完畢,結(jié)果為0011001

即:1001X0110=0011001

②硬件原理框圖:

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

在模型機(jī)上實(shí)現(xiàn)無(wú)符號(hào)數(shù)乘法運(yùn)算時(shí),采

用“加法一移位”的重復(fù)運(yùn)算方法。那么,

無(wú)符號(hào)乘法的硬件原理框圖如圖2所示。

③算法流程圖:

在模型機(jī)上實(shí)現(xiàn)無(wú)符號(hào)數(shù)乘法運(yùn)算時(shí),采用

“加法一移位”的重復(fù)運(yùn)算方法。因此,無(wú)符號(hào)

乘法的算法流程圖如圖3所示。

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

③算法流程圖

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

(2)無(wú)符號(hào)除法

①實(shí)例演示(即,列4位除法具體例子演

算的算式):

被除數(shù)為01100100(二進(jìn)制),即為十進(jìn)制的

100;除數(shù)為1001(二進(jìn)制),即為十進(jìn)制的9。

那么,能夠經(jīng)過(guò)筆算得到:

011001004-1001=1011-0001

即十進(jìn)制運(yùn)算結(jié)果為:

1004-9=11-1

無(wú)符號(hào)除法的實(shí)例演示如圖4所示

01011

1i6"liooio

o;被除數(shù)

100

1;除數(shù)

;減去除數(shù)

1101

0

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

余數(shù)為負(fù),c=l,商上0

100

1;

商左移一位,除數(shù)右移

一位

;加上

除數(shù)

00011

1;余數(shù)為正,C=0,商上1

100

1;商

左移一位,除數(shù)右移

一位

;減去除數(shù)

111110

0;余數(shù)為

負(fù),C=l,商上0

100

1;商左移一位,除數(shù)右移一位

;加上

除數(shù)

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

0000101

0;余數(shù)為正,C=0,商上1

100

1;商左移一

位,除數(shù)右移一位

;減去除數(shù)

0000000

1;余數(shù)為正,C=0,商上1,余數(shù)為1

;余數(shù)為正不用處理

②硬件原理框圖:

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

圖5無(wú)符號(hào)除法的硬件原理框圖

在模型機(jī)上實(shí)現(xiàn)無(wú)符號(hào)數(shù)除法運(yùn)算時(shí),采

用“加減交替算法”的運(yùn)算方法。那么,無(wú)

符號(hào)除法的硬件原理框圖如圖5所示。

③算法流程圖:

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

3.對(duì)應(yīng)于以上算法如何分配使用COP實(shí)驗(yàn)儀

中的硬件

(初步分配,設(shè)計(jì)完成后再將準(zhǔn)確的使用情況填

寫(xiě)在此處)

(1)無(wú)符號(hào)乘法

符號(hào)乘法對(duì)應(yīng)于COP實(shí)驗(yàn)儀的硬件具體分

配使用情況如下表所示:

表3無(wú)符號(hào)乘法的硬件分配情況

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

硬件名稱(chēng)實(shí)現(xiàn)算法功能描述

計(jì)算時(shí)用來(lái)存放部分積和最后

寄存器R0

的積

①初始化時(shí),用來(lái)存放被乘

數(shù);

寄存器R1

②在程序執(zhí)行的過(guò)程中,用來(lái)

存放向左移位后的被乘數(shù)。

①初始化時(shí),用來(lái)存放乘數(shù);

寄存器R2②在程序執(zhí)行的過(guò)程中,用來(lái)

存放向右移位后的乘數(shù)。

執(zhí)行ADDA,R?(加法)、SHLR?

(左移一位)、SHRR?(右移

累加器A

一位)等命令時(shí)所必須使用的

寄存器。

執(zhí)行ADDA,R?(加法)、TEST

R?,#H(測(cè)試R2的末位)等雙

寄存器W

操作數(shù)命令時(shí)所必須使用的寄

存器。

用來(lái)實(shí)現(xiàn)相應(yīng)數(shù)據(jù)左移一位的

左移門(mén)L運(yùn)算,并能夠控制該運(yùn)算后的

結(jié)果是否輸出到數(shù)據(jù)總線。

直通門(mén)D用來(lái)控制ALU的執(zhí)行結(jié)果是否

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

輸出到數(shù)據(jù)總線。

用來(lái)實(shí)現(xiàn)相應(yīng)數(shù)據(jù)右移一位的

右移門(mén)R運(yùn)算,并能夠控制該運(yùn)算后的

結(jié)果是否輸出到數(shù)據(jù)總線。

①控制程序按順序正常執(zhí)行;

②當(dāng)執(zhí)行轉(zhuǎn)移指令時(shí),從數(shù)據(jù)

程序計(jì)數(shù)線接收要跳轉(zhuǎn)的地址,使程序

器PC能夠按需要自動(dòng)執(zhí)行。

③當(dāng)要從EM中讀取數(shù)據(jù)時(shí),

由PC提供地址。

存儲(chǔ)器EM存儲(chǔ)指令和數(shù)據(jù)。

微程序計(jì)向微程序存儲(chǔ)器UM提供相應(yīng)

數(shù)器UPC微指令的地址。

微程序存

存儲(chǔ)相應(yīng)指令的微指令。

儲(chǔ)器UM

輸出寄存能夠?qū)⑦\(yùn)算結(jié)果輸出到輸出寄

器OUT存器OUT(本實(shí)驗(yàn)未用)。

當(dāng)存儲(chǔ)于累加器A的值將要受

到破壞時(shí),將其數(shù)據(jù)保存在堆

堆棧ST

棧ST中,使程序能夠正常地執(zhí)

行。

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

(2)無(wú)符號(hào)除法

無(wú)符號(hào)除法對(duì)應(yīng)于COP實(shí)驗(yàn)儀的硬件具體

分配使用情況如下表所示:

表4無(wú)符號(hào)除法的硬件分配情況

硬件名稱(chēng)實(shí)現(xiàn)算法功能描述

初始化時(shí),用來(lái)存放被除數(shù)和

寄存器R0

計(jì)算后的余數(shù)。

①初始化時(shí),用來(lái)存放除數(shù);

寄存器R1②在程序執(zhí)行的過(guò)程中,用來(lái)

存放向右移位后的除數(shù)。

在程序執(zhí)行過(guò)程中,用來(lái)保存

寄存器R2

當(dāng)前算得的商。

當(dāng)作計(jì)數(shù)器使用,用來(lái)控制程

寄存器R3

序是否結(jié)束(初始值5)。

①計(jì)算時(shí)用來(lái)存放中間結(jié)果;

②執(zhí)行ADDA,R?(加法)、SUB

累加器A

A,R?(減法)等命令時(shí)所必須

使用的寄存器。

執(zhí)行SUBA,R?(減法)等雙操

寄存器W作數(shù)命令時(shí)所必須使用的寄存

器。

左移門(mén)L用來(lái)實(shí)現(xiàn)相應(yīng)數(shù)據(jù)左移一位的

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

運(yùn)算,并能夠控制該運(yùn)算后的

結(jié)果是否輸出到數(shù)據(jù)總線。

用來(lái)控制ALU的執(zhí)行結(jié)果是否

直通門(mén)D

輸出到數(shù)據(jù)總線。

用來(lái)實(shí)現(xiàn)相應(yīng)數(shù)據(jù)右移一位的

右移門(mén)R運(yùn)算,并能夠控制該運(yùn)算后的

結(jié)果是否輸出到數(shù)據(jù)總線。

①控制程序按順序正常執(zhí)行;

②當(dāng)執(zhí)行轉(zhuǎn)移指令時(shí),從數(shù)據(jù)

程序計(jì)數(shù)線接收要跳轉(zhuǎn)的地址,使程序

器PC能夠按需要自動(dòng)執(zhí)行。

③當(dāng)要從EM中讀取數(shù)據(jù)時(shí),

由PC提供地址。

存儲(chǔ)器EM存儲(chǔ)指令和數(shù)據(jù)。

微程序計(jì)向微程序存儲(chǔ)器UM提供相應(yīng)

數(shù)器UPC微指令的地址。

微程序存

存儲(chǔ)相應(yīng)指令的微指令。

儲(chǔ)器UM

輸出寄存能夠?qū)⑦\(yùn)算結(jié)果輸出到輸出寄

器OUT存器OUT(本實(shí)驗(yàn)未用)。

當(dāng)存儲(chǔ)于累加器A的值將要受

堆棧ST

到破壞時(shí),將其數(shù)據(jù)保存在堆

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

棧ST中,使程序能夠正常地執(zhí)

行。

4.在COP集成開(kāi)發(fā)環(huán)境下設(shè)計(jì)全新的指令/微

指令系統(tǒng)

設(shè)計(jì)結(jié)果如表所示(可按需要增刪表項(xiàng))

(1)新的指令集

(設(shè)計(jì)兩個(gè)不同指令集要分別列表)

表5無(wú)符號(hào)乘法新指令集

助記機(jī)器碼機(jī)指令說(shuō)明

符1器

碼2

_FAT000000實(shí)驗(yàn)機(jī)占用,不可修改。復(fù)

CH_XX位后,所有寄存器清0,首

00-03先執(zhí)行_FATCH_指令取

指。

ADD000001將累加器A中的數(shù)加入到寄

R?,AXX存器R?中,并影響標(biāo)志位。

04-07

TEST000101II寄存器R?“與"立即數(shù)

R?,#XXH,只改變標(biāo)志位,并不改

II14-17變R?中的數(shù)值。

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

MOV001001II將立即數(shù)II存放到寄存器

R?,#XXR?中。

II24-27

SHL001010寄存器R?中的數(shù)不帶進(jìn)位

R?XX向左移一位,并不影響標(biāo)志

28-2B位。

SHR001011寄存器R?中的數(shù)不帶進(jìn)位

R?XX向右移一位,并不影響標(biāo)志

2C-2F位。

JZ001101MM若零標(biāo)志位置1,跳轉(zhuǎn)到MM

MMXX地址。

34-37

JMP001110跳轉(zhuǎn)到MM地址。

MMXX

38-3B

OVER001111程序結(jié)束。

XX

3C-3F

表5無(wú)符號(hào)除法的新指令集

助記機(jī)器碼機(jī)指令說(shuō)明

符1器

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

碼2

_FAT000000實(shí)驗(yàn)機(jī)占用,不可修改。復(fù)

CH_XX位后,所有寄存器清0,首

00-03先執(zhí)行_FATCH_指令取

指。

ADD000001將累加器A中的數(shù)加入到寄

R?,AXX存器R?中,并影響標(biāo)志位。

04-07

II

ADD000010將立即數(shù)H加入到寄存器

R?,#XXR?中,并影響標(biāo)志位。

II08-0B

SUB000011從寄存器R?中減去累加器A

R?,AXX中的數(shù),并影響標(biāo)志位。

0C-0F

SUB000100II從寄存器R?中減去立即數(shù)

R?,#XXII,并影響標(biāo)志位。

II10-13

TEST000101II寄存器R?“與"立即數(shù)

R?,#XXH,只改變標(biāo)志位,并不改

II14-17變R?中的數(shù)值。

PUSH000110將累加器A中的數(shù)據(jù)壓入堆

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

AXX棧寄存器STo

18-1B

000111

POP將堆棧寄存器ST中的數(shù)據(jù)

XX

A彈出到累加器A中。

1C-1F

MOV001000將寄存器R?中的數(shù)放入累

A,R?XX加器A中。

20-23

MOV001001II將立即數(shù)II存放到寄存器

R?,#XXR?中。

II24-27

SHL001010寄存器R?中的數(shù)不帶進(jìn)位

R?XX向左移一位,并不影響標(biāo)志

28-2B位。

SHR001011寄存器R?中的數(shù)不帶進(jìn)位

R?XX向右移一位,并不影響標(biāo)志

2C-2F位。

JC001100MM若進(jìn)位標(biāo)志位置1,跳轉(zhuǎn)到

MMXXMM地址。

30-33

JZ001101MM若零標(biāo)志位置L跳轉(zhuǎn)到MM

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

MMXX地址。

34-37

JMP001110跳轉(zhuǎn)到MM地址。

MMXX

38-3B

OVER001111程序結(jié)束。

XX

3C-3F

(2)新的微指令集

無(wú)符號(hào)乘法的新微指令集

助記狀微微程數(shù)據(jù)數(shù)據(jù)地址運(yùn)移位P

符態(tài)地序輸出打入輸出算控制CC

址器

_FATT000CBFF指令PC輸A輸寫(xiě)+1

CH_FF寄存出出入

器IR

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

01FFFFA輸+1

FF出

02FFFFA輸+1

FF出

03FFFFA輸+1

FF出

ADDT204FFF7寄存寄存A輸+1

R?,AEF器值器W出

R?

T105FFFAALU寄存加+1

98直通器R?運(yùn)

志算

C,Z

TO06CBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

07FFFFA輸+1

FF出

TESTT314C7FF存貯寄存PC輸A輸+1+1

R?,#EF器值器W出出

IIEM

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

T215FFF7寄存寄存A輸+1

F7器值器A出

R?

T116FFFEALU寄存與+1

93直通器R?運(yùn)

志算

C,Z

TO17CBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

MOVT124C7FB存貯寄存PC輸A輸+1+1

R?,#FF器值器出出

IIEMR?

TO25CBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

26FFFFA輸+1

FF出

27FFFFA輸+1

FF出

SHLT228FFF7寄存寄存A輸+1

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

R?F7器值器A出

R?

T129FFF9ALU寄存A輸左移+1

DF左移器出

R?

TO2ACBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

2BFFFFA輸+1

FF出

SHRT22CFFF7寄存寄存A輸+1

R?F7器值器A出

R?

T12DFFF9ALU寄存A輸右移+1

BF右移器出

R?

TO2ECBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

2FFFFFA輸+1

FF出

JZT134C6FF存貯寄存PC輸A輸+1寫(xiě)

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

MMFF器值器PC出出入

EM

TO35CBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

36FFFFA輸+1

FF出

37FFFFA輸+1

FF出

JMPT138C6FF存貯寄存PC輸A輸+1寫(xiě)

MMFF器值器PC出出入

EM

TO39CBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

3AFFFFA輸+1

FF出

3BFFFFA輸+1

FF出

OVERTO3CCBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

3DFFFFA輸+1

FF出

3EFFFFA輸+1

FF出

3FFFFFA輸+1

FF出

無(wú)符號(hào)除法的新微指令集

助記狀微微程數(shù)據(jù)數(shù)據(jù)地址運(yùn)移位吁P

符態(tài)地序輸出打入輸出算控制CC

址器

_FATTO00CBFF指令PC輸A輸寫(xiě)+1

CH_FF寄存出出入

器IR

01FFFFA輸+1

FF出

02FFFFA輸+1

FF出

03FFFFA輸+1

FF出

ADDT204FFF7寄存寄存A輸+1

R?,AEF器值器W出

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

R?

T105FFFAALU寄存加+1

98直通器R?運(yùn)

志算

C,Z

TO06CBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

07FFFFA輸+1

FF出

ADDT308FFF7寄存寄存A輸+1

R?,#F7器值器A出

IIR?

T209C7FF存貯寄存PC輸A輸+1+1

EF器值器W出出

EM

T10AFFFAALU寄存加+1

98直通器R?運(yùn)

志算

c,z

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

TOOBCBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

SUBT3OCFFFFALU寄存A輸+1

R?,A8F直通器W出

T2ODFFF7寄存寄存A輸+1

F7器值器A出

R?

T1OEFFFAALU寄存減+1

99直通器運(yùn)

R?標(biāo)算

志位

C,Z

TOOFCBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

SUBT310FFF7寄存寄存A輸+1

R?,#F7器值器A出

IIR?

T211C7FF存貯寄存PC輸A輸+1+1

EF器值器W出出

EM

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

T112FFFAALU寄存減+1

99直通器R?運(yùn)

志算

C,Z

TO13CBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

TESTT314C7FF存貯寄存PC輸A輸+1+1

R?,#FF器值器W出出

IIEM

T215FFF7寄存寄存A輸+1

F7器值器A出

R?

T116FFFEALU寄存與+1

93直通器R?運(yùn)

志算

C,Z

TO17CBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

PUSHT118FFEFALU堆棧A輸+1

A9F直通寄存出

器ST

TO19CBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

1AFFFFA輸+1

FF出

IBFFFFA輸+1

FF出

POPT1ICFFFF堆棧寄存A輸+1

A57寄存器A出

器ST

TOIDCBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

IEFFFFA輸+1

FF出

IFFFFFA輸+1

FF出

MOVT120FFF7寄存寄存A輸+1

A,R?F7器值器A出

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

R?

TO21CBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

22FFFFA輸

FF出

23FFFFA輸

FF出

MOVT124C7FB存貯寄存PC輸A輸+1+1

R?,#FF器值器出出

IIEMR?

TO25CBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

26FFFFA輸+1

FF出

27FFFFA輸+1

FF出

SHLT228FFF7寄存寄存A輸+1

R?F7器值器A出

R?

T129FFF9ALU寄存A輸左移+1

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

DF左移器出

R?

TO2ACBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

2BFFFFA輸+1

FF出

SHRT22CFFF7寄存寄存A輸+1

R?F7器值器A出

R?

T12DFFF9ALU寄存A輸右移+1

BF右移器出

R?

TO2ECBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

2FFFFFA輸+1

FF出

JCT130C6FF存貯寄存PC輸A輸+1寫(xiě)

MMFF器值器PC出出入

EM

TO31CBFF指令PC輸A輸寫(xiě)+1

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

FF寄存出出入

器IR

32FFFFA輸+1

FF出

33FFFFA輸+1

FF出

JZT134C6FF存貯寄存PC輸A輸+1寫(xiě)

MMFF器值器PC出出入

EM

TO35CBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

36FFFFA輸+1

FF出

37FFFFA輸+1

FF出

JMPT138C6FF存貯寄存PC輸A輸+1寫(xiě)

MMFF器值器PC出出入

EM

TO39CBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

3AFFFFA輸+1

FF出

3BFFFFA輸+1

FF出

OVERTO3CCBFF指令PC輸A輸寫(xiě)+1

FF寄存出出入

器IR

3DFFFFA輸+1

FF出

3EFFFFA輸+1

FF出

3FFFFFA輸+1

FF出

5.用設(shè)計(jì)完成的新指令集編寫(xiě)實(shí)現(xiàn)無(wú)符號(hào)二進(jìn)

制乘法、除法功能的匯編語(yǔ)言程序

(1)乘法

4位乘法的算法流程圖與匯編語(yǔ)言程序清

單:

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

MOVRO,#00H

MOVRI,#09H

MOVR2,#06H

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

LOOP:TESTR2,#0FH

JZLAST

TESTR2,#01H

JZNEXT

MOVA,RI

ADDRO,A

NEXT:SHLRI

SHRR2

JMPLOOP

LAST:OVER

(2)除法(選作)

4位除法的算法流程圖與匯編語(yǔ)言程序清

單:

TT必

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

MOVRO,#64H

MOVRI,#09H

MOVR2,#0H

MOVR3,#05H

TESTR1,#OFH

JZOVERFLOW

MOVA,RI

PUSHA

SHLRI

SHLRI

SHLRI

SHLRI

MOVA,RI

SUBRO,A

JCZERO

JMPOVERFLOW

ZERO:SHLR2

SHRRI

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

SUBR3,#01H

JZDEAL

MOVA,RI

ADDRO,A

JCONE

JMPZERO

ONE:SHLR2

ADDR2,#01H

SHRRI

SUBR3,#01H

JZDEAL

MOVA,RI

SUBRO,A

JCZERO

JMPONE

DEAL:TESTR0,#80H

JZLAST

POPA

ADDRO,A

JMPLAST

OVERFLOW:MOVR2,#0FFH

LAST:OVER

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

6.上述程序的運(yùn)行情況(跟蹤結(jié)果)

按下表填寫(xiě)描述以上各程序運(yùn)行情況的內(nèi)容。按

每個(gè)程序一張表進(jìn)行。

程序運(yùn)行的過(guò)程

匯編程機(jī)指令說(shuō)明微程PC運(yùn)行時(shí)

指令序器序C寄存器

地碼或存儲(chǔ)

址器的值

0000實(shí)驗(yàn)機(jī)占用,CBFFF

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論