東北大學(xué)計(jì)組課設(shè) 計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告_第1頁
東北大學(xué)計(jì)組課設(shè) 計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告_第2頁
東北大學(xué)計(jì)組課設(shè) 計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告_第3頁
東北大學(xué)計(jì)組課設(shè) 計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告_第4頁
東北大學(xué)計(jì)組課設(shè) 計(jì)算機(jī)組成原理課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

東北大學(xué)計(jì)組課設(shè)

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

班級(jí):計(jì)算機(jī)班姓名:學(xué)號(hào):

完成時(shí)間:_______________________

一、課程設(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.通過控制器的微程序設(shè)計(jì),綜合理解計(jì)算機(jī)

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

統(tǒng)的概念;

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

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

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

機(jī)的指令/微指令系統(tǒng)入手,以實(shí)現(xiàn)乘法和除法

運(yùn)算功能為應(yīng)用目標(biāo),在COP2000的集成開發(fā)

環(huán)境下,設(shè)計(jì)全新的指令系統(tǒng)并編寫對(duì)應(yīng)的微程

序;之后編寫實(shí)現(xiàn)乘法和除法的程序進(jìn)行設(shè)計(jì)的

驗(yàn)證。

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

1.硬件

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

?PC機(jī)

2.軟件

?COP2000仿真軟件

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

1.詳細(xì)了解并掌握COP2000模型機(jī)的微程序

控制器原理,通過綜合實(shí)驗(yàn)來實(shí)現(xiàn)

①總體概述

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

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

工作寄存器W、左移門L、直通門D、右移門R、

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

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

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

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

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

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

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

組成。微程序控制部分也可以用組合邏輯控制來

代替。

模型機(jī)為8位機(jī),數(shù)據(jù)總線、地址總線都為

8位,但其工作原理與16位機(jī)相同。相比而言8

位機(jī)實(shí)驗(yàn)減少了煩瑣的連線,但其原理卻更容易

被學(xué)生理解、吸收。

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

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

用來選擇R0-R3寄存器,在微程序控制方式中,

用指令碼做為微地址來尋址微程序存儲(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ǔ)器的讀寫。

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

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

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

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

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

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

指令說明

尋址方式明例

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

CPLA

加器A的值取反

累加器尋將累加器A

址隱含尋址累的值輸出到

OUT

加器A輸出端口寄

存器OUT

將寄存器R0

參與運(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中

參與運(yùn)算的將存儲(chǔ)器EM

存儲(chǔ)器直AND

數(shù)據(jù)在存儲(chǔ)中40H單元

接尋址A,40H

器EM中,數(shù)的數(shù)據(jù)與累

據(jù)的地址為加器A的值

指令的操作作邏輯與運(yùn)

數(shù)。算,結(jié)果存入

累加器A

從累加器A

參與運(yùn)算的中減去立即

立即數(shù)尋SUB

數(shù)據(jù)為指令數(shù)10H,結(jié)果

址A,#10H

的操作數(shù)。存入累加器

A

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

令格式的說明等):

①總體概述

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

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

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

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

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

②微指令格式的說明

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

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

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

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

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

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

命令字段,沒有微地址字段。其中微命令字段采

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

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

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

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

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

操作控制

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

信號(hào)

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

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

據(jù)。

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

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

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

PCOE

總線ABUS±o

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

EMENDBUS接通,由EMWR和EMRD

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

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

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

IREN

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

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

EINT

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

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

ELP

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

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

MAREN

址寄存器MARo

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

MAROE

址總線ABUS上。

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

OUTEN

出端口寄存器OUT里。

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

STEN

棧寄存器ST中。

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

RRD

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

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

RWR

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

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

CN

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

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

存器。

X2

X2、XI、X0三位組合來譯碼選擇

XI

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

X0

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

WEN

寄存器W中。

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

AEN

器A中。

S2

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

S1

做何種運(yùn)算。

SO

C0P2000中有7個(gè)寄存器可以向數(shù)據(jù)總線輸出

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

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

據(jù)。

X2XI輸出寄存器

X0

00IN_OE夕卜

0部輸入門

00IA_OE中

1斷向量

01ST_OE堆

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

Do

0

01A&W與

1

10A+W+C帶

0進(jìn)位加

10A-W-C帶

1進(jìn)位減

11~AA

0取反

11A輸

1出A

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

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

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

法一移位”的重復(fù)運(yùn)算方法。

②算法流程圖:

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

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

減交替算法”的運(yùn)算方法。

。算法流程圖

②硬件原理框圖:

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

儀中的硬件

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

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

配使用情況如下表所示:

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

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

寄存器計(jì)算時(shí)用來存放部分積和最后

R0的積

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

寄存器數(shù);

R1②在程序執(zhí)行的過程中,用來

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

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

寄存器

②在程序執(zhí)行的過程中,用來

R2

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

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

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

累加器A

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

的寄存器。

寄存器W執(zhí)行ADDA,R?(加法)、

TESTR?,#II(測(cè)試R2的末

位)等雙操作數(shù)命令時(shí)所必須

使用的寄存器。

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

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

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

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

直通門D

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

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

右移門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ǔ)器

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

EM

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

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

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

儲(chǔ)器gM

輸出寄存可以將運(yùn)算結(jié)果輸出到輸出寄

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

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

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

堆棧ST

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

行。

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

無符號(hào)除法對(duì)應(yīng)于COP2000實(shí)驗(yàn)儀的硬

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

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

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

寄存器初始化時(shí),用來存放被除數(shù)和

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

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

寄存器

②在程序執(zhí)行的過程中,用來

R1

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

寄存器在程序執(zhí)行過程中,用來保存

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

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

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

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

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

累加器A

SUBA,R?(減法)等命令時(shí)所

必須使用的寄存器。

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

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

存器。

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

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

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

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

直通門D

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

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

右移門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ǔ)器存儲(chǔ)指令和數(shù)據(jù)。

EM

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

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

微程序存

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

儲(chǔ)器小1

輸出寄存可以將運(yùn)算結(jié)果輸出到輸出寄

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

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

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

堆棧ST

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

行。

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

/微指令系統(tǒng)

(1)新的指令集(乘除法指令集)

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

符碼1碼2

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

CH_Oxx復(fù)位后,所有寄存器清

00-030,首先執(zhí)行_FATCH_

指令取指。

ADD00000將累加器A中的數(shù)加入

R?,Alxx到寄存器R?中,并影響

04-07志位。

ADD00001II將立即數(shù)口加入到寄存

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

II08-0B

SUB00001從寄存器R?中減去累

R?,Alxx加器A中的數(shù),并影響

OC-OF志位。

SUB00010II從寄存器R?中減去立

R?,#Oxx即數(shù)H,并影響標(biāo)志

II10-13位。

TEST00010II寄存器R?“與"立即

R?,#lxx數(shù)H,只改變標(biāo)志位,

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

00011

PUSH將累加器A中的數(shù)據(jù)壓

Oxx

A入堆棧寄存器STo

18-1B

POP00011將堆棧寄存器ST中的

Alxx數(shù)據(jù)彈出到累加器A

1C-1F中。

MOVOO1OO將寄存器R?中的數(shù)放

A,R?Oxx入累加器A中。

20-23

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

R?,#lxx存器R?中。

II24-27

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

R?Oxx位向左移一位,并不影

28-2B響標(biāo)志位。

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

R?lxx位向右移一位,并不影

2C-2F響標(biāo)志位。

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

MMOxx到MM地址。

30-33

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

MMlxxMM地址。

34-37

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

MMOxx

38-3B

OVER00111程序結(jié)束。

lxx

3C-3F

(2)新的微指令集(乘除法微指令集)

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

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

址器

_FATT000CBFF指令PC輸A輸寫+1

CH_FF寄存出出入

器IR

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輸寫+1

FF寄存出出入

器IR

07FFFFA輸+1

FF出

ADDT308FFF7寄存寄存A輸+1

R?,#F7器值器A出

IIR?

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

EF器值器W出出

EM

T1OAFFFAALU寄存加+1

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

志算

C,Z

TOOBCBFF指令PC輸A輸寫+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輸寫+1

FF寄存出出入

器IR

SUBT310FFF7寄存寄存A輸+1

R?,#F7器值器A出

IIR?

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

EF器值器W出出

EM

T112FFFAALU寄存減+1

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

志算

c,z

TO13CBFF指令PC輸A輸寫+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輸寫+1

FF寄存出出入

器IR

PUSHT118FFEFALU堆棧A輸+1

A9F直通寄存出

器ST

TO19CBFF指令PC輸A輸寫+1

FF寄存出出入

器IR

1AFFFFA輸+1

FF出

IBFFFFA輸+1

FF出

POPT1ICFFFF堆棧寄存A輸+1

A57寄存器A出

器ST

TOIDCBFF指令PC輸A輸寫+1

FF寄存出出入

器IR

IEFFFFA輸+1

FF出

IFFFFFA輸+1

FF出

MOVT120FFF7寄存寄存A輸+1

A,R?F7器值器A出

R?

TO21CBFF指令PC輸A輸寫+1

FF寄存出出入

器IR

22FFFFA輸

FF出

23FFFFA輸

FF出

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

R?,#FF器值器出出

IIEMR?

TO25CBFF指令PC輸A輸寫+1

FF寄存出出入

器IR

26FFFFA輸+1

FF出

27FFFFA輸+1

FF出

SHLT228FFF7寄存寄存A輸+1

R?F7器值器A出

R?

T129FFF9ALU寄存A輸左移+1

DF左移器出

R?

TO2ACBFF指令PC輸A輸寫+1

FF寄存出出入

器IR

2BFFFFA輸+1

FF出

SHRT22CFFF7寄存寄存A輸+1

R?F7器值器A出

R?

T12DFFF9ALU寄存A輸右移+1

BF右移器出

R?

TO2ECBFF指令PC輸A輸寫+1

FF寄存出出入

器IR

2FFFFFA輸+1

FF出

JCT130C6FF存貯寄存PC輸A輸+1寫

MMFF器值器PC出出入

EM

TO31CBFF指令PC輸A輸寫+1

FF寄存出出入

器IR

32FFFFA輸+1

FF出

33FFFFA輸+1

FF出

JZT134C6FF存貯寄存PC輸A輸+1寫

MMFF器值器PC出出入

EM

TO35CBFF指令PC輸A輸寫+1

FF寄存出出入

器IR

36FFFFA輸+1

FF出

37FFFFA輸+1

FF出

JMPT138C6FF存貯寄存PC輸A輸+1寫

MMFF器值器PC出出入

EM

TO39CBFF指令PC輸A輸寫+1

FF寄存出出入

器IR

3AFFFFA輸+1

FF出

3BFFFFA輸+1

FF出

OVERTO3CCBFF指令PC輸A輸寫+1

FF寄存出出入

器IR

3DFFFFA輸+1

FF出

3EFFFFA輸+1

FF出

3FFFFFA輸+1

FF出

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

制乘法、除法功能的匯編語言程序

(1)乘法

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

單:

MOV

RO,#OOH;初始化部分積

MOV

Rl,#09H;初始化被乘數(shù)

MOV

R2,#06H;初始化乘數(shù)

LOOP:TEST

R2,#0FH;測(cè)試乘數(shù)是否為0

JZ

LAST;是0跳轉(zhuǎn),程序

結(jié)束

TESTR2,#01H

測(cè)試乘數(shù)末位時(shí)候?yàn)?

JZ

NEXT;是0跳轉(zhuǎn),不

用加被乘數(shù)

MOV

A,RI;被乘數(shù)送累加器

ADD

RO,A;被乘數(shù)加到部分積

NEXT:SHL

RI;被乘數(shù)左移一位

SHRR2;乘數(shù)右

移一位

JMPLOOP;跳轉(zhuǎn)

到下一次測(cè)試

LAST

OVER;程序結(jié)束

乘法的算法流程圖:

(耳)

(2)除法

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

單:

MOVRO,#31H;初始化被除數(shù)

MOVRI,#07H;初始化除數(shù)

MOVR2,#00H;初始化商

MOVR3,#05H;初始化計(jì)數(shù)器

TESTRI,#0FH;測(cè)試除數(shù)是否為0

JZOVERFLOW;除數(shù)是o,轉(zhuǎn)到溢出處理

MOVA,RI;除數(shù)送累加器

PUSHA;保存除數(shù)

SHLRI;除數(shù)左移四位

SHLRI

SHLRI

SHLRI

MOVA,RI;移位后除數(shù)送累加器

SUBRO,A;被除數(shù)減去移位后除數(shù)

JCZERO;有進(jìn)位跳到ZERO,上0處理

JMPOVERFLOW;首次沒借位會(huì)得出5位商,溢出

處理

ZERO:

SHLR2;商左移一位

SHRR1;除數(shù)右移一位

SUBR3,#01H;計(jì)數(shù)器減1

JZFINISH;計(jì)數(shù)器為0,跳轉(zhuǎn)到FINISH

MOVA,RI;被除數(shù)減去移位后除數(shù)

ADDRO,A;被除數(shù)加上移位后除數(shù)

JCONE;有借位跳到ONE,上1處理

JMPZERO;沒借位跳到ZERO,上0處理

ONE:

SHLR2;商左移一位

ADDR2,#O1H;商力口1

SHRRI;除數(shù)右移一位

SUBR3,#O1H;計(jì)數(shù)器減1

JZFINISH;計(jì)數(shù)器為0,跳轉(zhuǎn)到FINISH

MOVA,RI;移位后除數(shù)送累加器

SUBRO,A;被除數(shù)減去移位后除數(shù)

JCZERO;有借位跳到ZERO,上0處理

JMPONE;沒借位跳到ONE,上1處理

OVERFLOW:

MOVR2,#OFFH;溢出,商置為全1

JMPJIESHU;無條件跳轉(zhuǎn)到程序結(jié)束

FINISH:

TESTRO,#80H;測(cè)試余數(shù)是否為負(fù)

JZJIESHU;為止不用處埋

POPA;恢復(fù)除數(shù)

ADDRO,A;余數(shù)加上除數(shù)

JMPJIESHU;跳轉(zhuǎn)到程序結(jié)束

JIESHU:

OVER

CYCLE:

JMPCYCLE

除法算法流程圖”

初始化:被除數(shù)

gWrni

油心蛇nn

七小

N

*nnnHWAMHr

除數(shù)RI

?_L3RO

N

舟必*nn

N

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

。乘法程序運(yùn)行過程

匯編程機(jī)指令說明微程序P運(yùn)行時(shí)寄

指令序器CP存器或存

地碼C儲(chǔ)器的值

0000實(shí)驗(yàn)機(jī)占用,CBFFFF+寫EM:24

_FATCH不可修改。復(fù)1入

位后,所有寄

存器清0,首先

執(zhí)行_FATCH_

指令取指。

MOV00240將立即數(shù)00HC7FBFF++EM:24

RO,#000存放到寄存器CBFFFF11EM:OO

RO中。+寫R0:00

1入

MOV02250將立即數(shù)09HC7FBFF++EM:25

RI,#099存放到寄存器CBFFFF11EM:09

R1中。+寫RI:09

1入

MOV04260將立即數(shù)06HC7FBFF++EM:26

R2,#066存放到寄存器CBFFFF11EM:06

R2中。+寫R2:06

1入

TEST06160寄存器R2與C7FFEF4-+EM:16

R2,#0FF立即數(shù)OFH,FFF7F711EM:OF

只改變標(biāo)志FFFE93+W:OF

位,并不改變CBFFFF1EM:OF

R2中的數(shù)值。++A:06

11EM:OF

JZ1408341若零標(biāo)志位置C6FFFF寫+EM:34

41,跳轉(zhuǎn)到14HCBFFFF入1EM:14

地址。+寫

1入

TEST0A160寄存器R2與C7FFEF++EM:16

R2,#011立即數(shù)01H,FFF7F711EM:01

只改變標(biāo)志FFFE93+W:01

位,并不改變CBFFFF1EM:01

R2中的數(shù)值。++A:06

11EM:01

JZ10OC341若零標(biāo)志位置C6FFFF寫+EM:34

01,跳轉(zhuǎn)到14HCBFFFF入1EM:10

地址。+寫

1入

SHL1029寄存器R1中FFF7F7+EM:29

RI的數(shù)不帶進(jìn)位FFF9DF1EM:29

向左移一位,CBFFFF++A:09

并不影響標(biāo)志11EM:29

位。寫RI:12

SHR112E寄存器R2中FFF7F7+EM:2E

R2的數(shù)不帶進(jìn)位FFF9BF1EM:2E

向右移一位,CBFFFF++A:06

并不影響標(biāo)志11EM:2E

位。寫R2:03

JMP12380跳轉(zhuǎn)到06H地C6FFFF寫+EM:38

066址。CBFFFF入1EM:06

+寫

1入

TEST06160寄存器R2與C7FFEF++EM:16

R2,#0FF立即數(shù)OFH,FFF7F711EM:OF

只改變標(biāo)志FFFE93+W:OF

位,并不改變CBFFFF1EM:OF

R2中的數(shù)值。++A:03

11EM:OF

JZ1408341若零標(biāo)志位置C6FFFF寫+EM:34

41,跳轉(zhuǎn)到14HCBFFFF入1EM:14

地址。+寫

1入

TEST0A160寄存器R2與C7FFEF++EM:16

R2,#011立即數(shù)01H,FFF7F711EM:01

只改變標(biāo)志FFFE93+W:01

位,并不改變CBFFFF1EM:01

R2中的數(shù)值。++A:03

11EM:01

JZ10OC341若零標(biāo)志位置C6FFFF寫+EM:34

01,跳轉(zhuǎn)到14HCBFFFF入1EM:10

地址。4-寫

1入

MOVOE21將寄存器R1FFF7F7+EM:21

A,RI中的數(shù)放入累CBFFFF+1EM:21

加器A中。1寫A:12

ADDOF04將累加器A中FFF7EF+EM:04

RO,A的數(shù)加入到寄FFFA981EM:04

存器R0中,并CBFFFF++W:00

影響標(biāo)志位。11EM:04

寫R0:12

SHL1029寄存器R1中FFF7F7+EM:29

RI的數(shù)不帶進(jìn)位FFF9DF1EM:29

向左移一位,CBFFFF++A:12

并不影響標(biāo)志11EM:29

位。寫Rl:24

SHR112E寄存器R2中FFF7F7+EM:2E

R2的數(shù)不帶進(jìn)位FFF9BF1EM:2E

向右移一位,CBFFFF++A:03

并不影響標(biāo)志11EM:2E

位。寫R2:01

JMP12380跳轉(zhuǎn)到06H地C6FFFF寫+EM:38

066址。CBFFFF入1EM:06

+寫

1入

TEST06160寄存器R2與C7FFEF++EM:16

R2,#0FF立即數(shù)0FH,FFF7F711EM:OF

只改變標(biāo)志FFFE93+W:OF

位,并不改變CBFFFF1EM:OF

R2中的數(shù)值。++A:01

11EM:OF

JZ1408341若零標(biāo)志位置C6FFFF寫+EM:34

41,跳轉(zhuǎn)到14HCBFFFF入1EM:14

地址。+寫

1入

TESTOA160寄存器R2與C7FFEF++EM:16

R2,#011立即數(shù)01H,FFF7F711EM:01

只改變標(biāo)志FFFE93+W:01

位,并不改變CBFFFF1EM:01

R2中的數(shù)值。4-+A:01

11EM:01

JZ10OC341若零標(biāo)志位置C6FFFF寫+EM:34

01,跳轉(zhuǎn)到14HCBFFFF入1EM:10

地址。+寫

1入

MOVOE21將寄存器R1FFF7F7+EM:21

A,RI中的數(shù)放入累CBFFFF+1EM:21

加器A中。1寫A:24

ADDOF04將累加器A中FFF7EF+EM:04

RO,A的數(shù)加入到寄FFFA981EM:04

存器R0中,并CBFFFF++W:12

影響標(biāo)志位。11EM:04

寫R0:36

SHL1029寄存器RI中FFF7F7+EM:29

RI的數(shù)不帶進(jìn)位FFF9DF1EM:29

向左移一位,CBFFFF++A:24

并不影響標(biāo)志11EM:29

位。寫RI:48

SHR112E寄存器R2中FFF7F7+EM:2E

R2的數(shù)不帶進(jìn)位FFF9BF1EM:2E

向右移一位,CBFFFF++A:01

并不影響標(biāo)志11EM:2E

位。寫R2:00

JMP12380跳轉(zhuǎn)到06H地C6FFFF寫+EM:38

066址。CBFFFF入1EM:06

+寫

1入

TEST06160寄存器R2與C7FFEF++EM:16

R2,#0FF立即數(shù)0FH,FFF7F711EM:OF

只改變標(biāo)志FFFE93+W:OF

位,并不改變CBFFFF1EM:OF

R2中的數(shù)值。+A:01

1EM:OF

JZ1408341若零標(biāo)志位置C6FFFF寫+EM:34

41,跳轉(zhuǎn)到14HCBFFFF入1EM:14

地址。4-寫

1入

OVER143C程序結(jié)束。CBFFFF+寫EM:3C

1入

②除法程序運(yùn)行過程

表8無符號(hào)除法程序的運(yùn)行過程

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

指令序器序CP寄存器

地碼C或存儲(chǔ)

址器的值

_FATC0000實(shí)驗(yàn)機(jī)占用,CBFF+1寫EM:24

H不可修改。復(fù)FF入

位后,所有寄

存器清0,首

先執(zhí)行

_FATCH_指

令取指。

MOV00243將寄存器R0C7FB+1+1EM:24

RO,#311中的數(shù)放入累FF+1寫EM:31

加器31H中。CBFF入R0:31

FF

MOV02250將寄存器R1C7FB+1+1EM:25

RI,#077中的數(shù)放入累FF+1寫EM:07

加器07H中。CBFF入Rl:07

FF

MOV04260將寄存器R2C7FB+1+1EM:26

R2,#000中的數(shù)放入累FF+1寫EM:00

加器00H中。CBFF入R2:00

FF

MOV06270將寄存器R3C7FB+1+1EM:27

R3,#055中的數(shù)放入累FF+1寫EM:05

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論