版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Trilysine-TFA-生命科學(xué)試劑-MCE-4187
- KIF18A-IN-15-生命科學(xué)試劑-MCE-5317
- 4-4-Dimethoxyoctafluorobiphenyl-生命科學(xué)試劑-MCE-5198
- 1-3-Dinervonoyl-glycerol-生命科學(xué)試劑-MCE-1243
- 2025年度特色民宿體驗(yàn)住宿協(xié)議
- 二零二五年度消防設(shè)備定制設(shè)計(jì)與銷售合同
- 二零二五年度農(nóng)產(chǎn)品線上線下一體化購銷合同標(biāo)準(zhǔn)
- 施工現(xiàn)場(chǎng)施工防傳染病傳播制度
- 個(gè)人兼職用工合同模板
- 鄉(xiāng)村別墅租賃合同樣本
- 2025年上半年山東氣象局應(yīng)屆高校畢業(yè)生招考易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 人教版2024-2025學(xué)年八年級(jí)上學(xué)期數(shù)學(xué)期末壓軸題練習(xí)
- 【人教版化學(xué)】必修1 知識(shí)點(diǎn)默寫小紙條(答案背誦版)
- 江蘇省無錫市2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試題(原卷版)
- 全國第三屆職業(yè)技能大賽(無人機(jī)駕駛(植保)項(xiàng)目)選拔賽理論考試題庫(含答案)
- 對(duì)口升學(xué)語文模擬試卷(10)-江西?。ń馕霭妫?/a>
- 成長(zhǎng)感恩責(zé)任高中主題班會(huì)-課件
- 建設(shè)項(xiàng)目全過程工程咨詢服務(wù)指引(咨詢企業(yè)版)(征求意見稿)
- 分手的協(xié)議書模板(5篇)
- 2020年度安徽省中考數(shù)學(xué)科目試卷
- 2023年山東藥品食品職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試筆試題庫及答案解析
評(píng)論
0/150
提交評(píng)論