一、本課程設計的性質、目的、任務
《計算機組成與系統結構課程設計》是計算機學院各專業集中實踐性環節之一,是學習完《計算機組成與系統結構》課程後進行的一次全面的綜合練習。其目的是綜合運用所學計算機原理知識,設計並實現一臺模型計算機,以便鞏固所學的知識,提高分析問題和解決問題的能力。
二、本課程設計的基本理論
1、掌握算術、邏輯、移位運算實驗,熟悉ALU運算控制位的運用。
2、掌握存儲器組織、讀寫方式及與總路線組成的數據通路,掌握地址總線、數據總線的工作原理。
3、掌握指令結構和指令取指、執行工作過程。
4、掌握CPU的微程序控制原理。
三、題目
1、綜合運用所學計算機原理知識,設計並實現具有以下指令集結構的模型計算機:
編號 |
助記符 |
機器指令碼 |
說明 |
1 |
IN Rd,IOL |
0001Rd00 |
i/o(數據開關)低字節→rs |
2 |
OUT IOH,Rs |
001000Rs |
Rs→i/o(數據開關)高字節 |
3 |
LDA Rd,M |
0011Rd00 XXXXXXXX XXXXXXXX |
[M] →RD |
4 |
STA M,Rs |
010000Rs XXXXXXXX XXXXXXXX |
Rs→[M] |
5 |
ADD Rd,Rs |
0101RdRs |
Rd+Rs→Rd |
6 |
SUB Rd,Rs |
0110RdRs |
Rd-Rs→Rd |
7 |
RL Rd |
0111Rd00 |
Rd循環左移一位 |
8 |
RR Rd |
1000Rd00 |
Rd循環右移一位 |
9 |
MOV Rd,Rs |
1001RdRs |
Rs→Rd |
10 |
JMP M |
10100000 XXXXXXXX XXXXXXXX |
[M]→PC,即跳轉到M所指單元 |
11 |
JZ M |
10110000 XXXXXXXX XXXXXXXX |
當Z=1時,跳轉到M所指單元 |
12 |
JC M |
11000000 XXXXXXXX XXXXXXXX |
當CY=1時,跳轉到M所指單元 |
13 |
CLR Rd |
1101Rd00 |
將Rd清零 |
14 |
DEC Rd |
1110Rd00 |
將Rd值減1 |
15 |
HALT |
11110000 |
停機 |
其中,高4位爲指令操作碼,M爲16位存儲器地址, Rs爲源寄存器,Rd爲目的寄存器,佔2位,並規定:
Rs或Rd |
選定的寄存器 |
00 01 10 11 |
R0 R1 R2 R3 |
2、利用上述指令集編寫彙編程序,並在所設計的模型計算機上調試通過:
用累加的方法實現字節乘法(不溢出情況),被乘數:R0,乘數:R1,積:R2並輸出至I/O。
四、數據格式及指令系統
1.數據格式
模型機規定採用定點補碼錶示數據,且字長爲8位,其格式如下:
7 |
6 5 4 3 2 1 0 |
符號 |
尾 數 |
2.指令格式
模型機設計四大類指令共 條,其中包括算術邏輯指令、I/O指令、訪問及轉移指令和停機指令。
⑴ 算術邏輯指令
設計算術邏輯指令並用單字節表示,尋址方式採用寄存器直接尋址,其格式如下:
7 6 5 4 |
3 2 |
1 0 |
OP-CODE |
Rd |
Rs |
其中,OP-CODE爲操作碼,Rs爲源寄存器,Rd爲目的寄存器,並規定:
Rs或Rd |
選定的寄存器 |
00 01 10 11 |
R0 R1 R2 R3 |
⑵ 訪問指令及轉移指令
模型機設計2條訪問指令,即存數(STA)、取數(LDA),2條轉移指令,即無條件轉移(JMP)、結果爲零轉移(JZ)、有進位轉移指令(JC),指令格式爲:
7 6 5 4 |
3 2 |
1 0 |
OP-CODE |
Rd |
Rs |
D(低八) |
||
D(高八) |
⑶ I/O指令
輸入(IN)和輸出(OUT)指令採用單字節指令,其格式如下:
IN:
7 6 5 4 |
3 2 |
1 0 |
OP-CODE |
Rd |
0 0 |
OUT:
7 6 5 4 |
3 2 |
1 0 |
OP-CODE |
0 0 |
Rs |
⑷ 停機指令
指令格式如下:
7 6 5 4 |
3 2 |
1 0 |
OP-CODE |
0 0 |
0 0 |
HALT指令,用於實現停機操作。
1. 目標寄存器的尋址控制
1) 當OP=0、R/M=1時,將IR3、IR2作爲目標寄存器地址;
2. 源寄存器的尋址控制
1) 當XP=1時,將IR1、IR0作爲源寄存器地址。
助記符 |
指令格式 |
功 能 |
|||||
LDA Rd,M |
0 |
0 |
1 |
1 |
Rd |
00 |
[M]→RD |
STA M,Rs |
0 |
1 |
0 |
0 |
00 |
Rs |
Rs→[M] |
JMP M |
1 |
0 |
1 |
0 |
00 |
00 |
[M]→PC |
JZ M |
1 |
0 |
1 |
1 |
00 |
00 |
當Z=1時,[M]→PC |
JC M |
1 |
1 |
0 |
0 |
00 |
00 |
當CY=1時,[M]→PC |
MOV Rd,Rs |
1 |
0 |
0 |
1 |
Rd |
Rs |
Rs→Rd |
ADD Rd,Rs |
0 |
1 |
0 |
1 |
Rd |
Rs |
Rs+Rd→Rd |
SUB Rd,Rs |
0 |
1 |
1 |
0 |
Rd |
Rs |
Rd-Rs→Rd |
CLR Rd |
1 |
1 |
0 |
1 |
Rd |
00 |
0→Rd |
DEC Rd |
1 |
1 |
1 |
0 |
00 |
Rd |
Rd-1→Rd |
RR Rd |
1 |
0 |
0 |
0 |
Rd |
00 |
Rd循環右移一位 |
RL Rd |
0 |
1 |
1 |
1 |
Rd |
00 |
Rd循環左移一位 |
IN Rd,I/O |
0 |
0 |
0 |
1 |
Rd |
00 |
I/O→Rd |
OUT Rs,I/O |
0 |
0 |
1 |
0 |
00 |
Rs |
Rs→I/O |
HALT |
1 |
1 |
1 |
1 |
00 |
00 |
停機 |
3.指令系統
助記符 |
操作數 |
指令碼 |
長度 |
說明 |
IN |
R0,IOL |
10 |
1 |
I/O(數據開關)低字節→R0 |
IN |
R1,IOL |
14 |
1 |
I/O(數據開關)低字節→R1 |
IN |
R2,IOL |
18 |
1 |
I/O(數據開關)低字節→R2 |
IN |
R3,IOL |
1C |
1 |
I/O(數據開關)低字節→R3 |
OUT |
IOH,R0 |
20 |
1 |
R0→I/O(數據開關)高字節 |
OUT |
IOH,R1 |
21 |
1 |
R1→I/O(數據開關)高字節 |
OUT |
IOH,R2 |
22 |
1 |
R2→I/O(數據開關)高字節 |
OUT |
IOH,R3 |
23 |
1 |
R3→I/O(數據開關)高字節 |
LDA |
R0,* |
30 |
3 |
[M]→R0 |
LDA |
R1,* |
34 |
3 |
[M]→R1 |
LDA |
R2,* |
38 |
3 |
[M]→R2 |
LDA |
R3,* |
3C |
3 |
[M]→R3 |
STA |
*,R0 |
40 |
3 |
R0→[M] |
STA |
*,R1 |
41 |
3 |
R1→[M] |
STA |
*,R2 |
42 |
3 |
R2→[M] |
STA |
*,R3 |
43 |
3 |
R3→[M] |
|
|
|
|
|
ADD |
R0,R0 |
50 |
1 |
R0+R0→R0 |
ADD |
R0,R1 |
51 |
1 |
R0+R1→R0 |
ADD |
R0,R2 |
52 |
1 |
R0+R2→R0 |
ADD |
R0,R3 |
53 |
1 |
R0+R3→R0 |
ADD |
R1,R0 |
54 |
1 |
R1+R0→R1 |
ADD |
R1,R1 |
55 |
1 |
R1+R1→R1 |
ADD |
R1,R2 |
56 |
1 |
R1+R2→R1 |
ADD |
R1,R3 |
57 |
1 |
R1+R3→R1 |
ADD |
R2,R0 |
58 |
1 |
R2+R0→R2 |
ADD |
R2,R1 |
59 |
1 |
R2+R1→R2 |
ADD |
R2,R2 |
5A |
1 |
R2+R2→R2 |
ADD |
R2,R3 |
5B |
1 |
R2+R3→R2 |
ADD |
R3,R0 |
5C |
1 |
R3+R0→R3 |
ADD |
R3,R1 |
5D |
1 |
R3+R1→R3 |
ADD |
R3,R2 |
5E |
1 |
R3+R2→R3 |
ADD |
R3,R2 |
5F |
1 |
R3+R3→R3 |
SUB |
R0,R0 |
60 |
1 |
R0-R0→R0 |
SUB |
R0,R1 |
61 |
1 |
R0-R1→R0 |
SUB |
R0,R2 |
62 |
1 |
R0-R2→R0 |
SUB |
R0,R3 |
63 |
1 |
R0-R3→R0 |
SUB |
R1,R0 |
64 |
1 |
R1-R0→R1 |
SUB |
R1,R1 |
65 |
1 |
R1-R1→R1 |
SUB |
R1,R2 |
66 |
1 |
R1-R2→R1 |
SUB |
R1,R3 |
67 |
1 |
R1-R3→R1 |
SUB |
R2,R0 |
68 |
1 |
R2-R0→R2 |
SUB |
R2,R1 |
69 |
1 |
R2-R1→R2 |
SUB |
R2,R2 |
6A |
1 |
R2-R2→R2 |
SUB |
R2,R3 |
6B |
1 |
R2-R3→R2 |
SUB |
R3,R0 |
6C |
1 |
R3-R0→R3 |
SUB |
R3,R1 |
6D |
1 |
R3-R1→R3 |
SUB |
R3,R2 |
6E |
1 |
R3-R2→R3 |
SUB |
R3,R2 |
6F |
1 |
R3-R3→R3 |
|
|
|
|
|
RL |
R0 |
70 |
1 |
R0循環左移一位 |
RL |
R1 |
74 |
1 |
R1循環左移一位 |
RL |
R2 |
78 |
1 |
R2循環左移一位 |
RL |
R3 |
7C |
1 |
R3循環左移一位 |
|
|
|
|
|
RR |
R0 |
80 |
1 |
R0循環右移一位 |
RR |
R1 |
84 |
1 |
R1循環右移一位 |
RR |
R2 |
88 |
1 |
R2循環右移一位 |
RR |
R3 |
8C |
1 |
R3循環右移一位 |
|
|
|
|
|
MOV |
R0,R0 |
90 |
1 |
R0→R0 |
MOV |
R0,R1 |
91 |
1 |
R1→R0 |
MOV |
R0,R2 |
92 |
1 |
R2→R0 |
MOV |
R0,R3 |
93 |
1 |
R3→R0 |
MOV |
R1,R0 |
94 |
1 |
R0→R1 |
MOV |
R1,R1 |
95 |
1 |
R1→R1 |
MOV |
R1,R2 |
96 |
1 |
R2→R1 |
MOV |
R1,R3 |
97 |
1 |
R3→R1 |
MOV |
R2,R0 |
98 |
1 |
R0→R2 |
MOV |
R2,R1 |
99 |
1 |
R1→R2 |
MOV |
R2,R2 |
9A |
1 |
R2→R2 |
MOV |
R2,R3 |
9B |
1 |
R3→R2 |
MOV |
R3,R0 |
9C |
1 |
R0→R3 |
MOV |
R3,R1 |
9D |
1 |
R1→R3 |
MOV |
R3,R2 |
9E |
1 |
R2→R3 |
MOV |
R3,R2 |
9F |
1 |
R3→R3 |
|
|
|
|
|
JMP |
* |
A0 |
3 |
[M]→PC,即跳轉到M所指單元 |
JZ |
* |
B0 |
3 |
當Z=1時,跳轉到M所指單元 |
JC |
* |
C0 |
3 |
當CY=1時,跳轉到M所指單元 |
|
|
|
|
|
CLR |
R0 |
D0 |
1 |
將R0清零 |
CLR |
R1 |
D4 |
1 |
將R1清零 |
CLR |
R2 |
D8 |
1 |
將R2清零 |
CLR |
R3 |
DC |
1 |
將R3清零 |
|
|
|
|
|
DEC |
R0 |
E0 |
1 |
將R0值減1 |
DEC |
R1 |
E4 |
1 |
將R1值減1 |
DEC |
R2 |
E8 |
1 |
將R2值減1 |
DEC |
R3 |
EC |
1 |
將R3值減1 |
|
|
|
|
|
HALT |
“” |
F0 |
1 |
停機 |
五、微程序流程圖
六、微指令代碼
微址00002)1) |
M23 |
M22 |
M21 |
M20 |
M19 |
M18 |
M17 |
M16 |
代碼 |
M15 |
M14 |
M13 |
M12 |
M11 |
M10 |
M9 |
M8 |
代碼 |
M7 |
M6 |
M5 |
M4 |
M3 |
M2 |
M1 |
M0 |
代碼 |
後續微址 |
說明 |
|
E/M |
IP |
MWR |
R/M |
o2 |
o1 |
O0 |
OP |
M |
CN |
S2 |
S2 |
S0 |
X2 |
X1 |
X0 |
XP |
W |
ALU |
Iu |
IE |
IR |
Icz |
Ids |
|||||||
000 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
+1 |
空操作 |
|
001 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
bf |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
fb |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
F8 |
可變 |
ibus→ir |
|
620 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
F0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
fc |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
6d |
001 |
i/o→rd |
|
640 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
f5 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
f9 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
ed |
001 |
rS→i/o |
|
660 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
fa |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
fb |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
+1 |
ROm→bl |
|
661 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
bb |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
fb |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
+1 |
ROm→bh |
|
662 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
bc |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
c6 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
3F |
+1 |
bx→ar |
|
663 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
70 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
fb |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
ed |
001 |
ROm→rd |
|
680 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
fa |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
fb |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
+1 |
ROm→bl |
|
681 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
bb |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
fb |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
+1 |
ROm→bh |
|
682 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
bc |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
c6 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
3F |
+1 |
bx→ar |
|
683 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
5f |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
F9 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
ed |
001 |
rd→ROm |
|
6a0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
fa |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
b9 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
Df |
+1 |
rs→bl |
|
6a1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
f8 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
f9 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
5f |
+1 |
rd→al |
|
6a2 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
F1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
66 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
4d |
001 |
a+b→rd |
|
6c0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
F8 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
b9 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
Df |
+1 |
rD→Al |
|
6c1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
FA |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
B9 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
5f |
+1 |
rS→Bl |
|
6c2 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
f1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
6e |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
4d |
001 |
a-b→rd |
|
6E0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
f8 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
f9 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
5f |
+1 |
rd→al |
|
6E1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
F0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
56 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
4d |
001 |
a左移→rd |
|
700 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
f8 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
f9 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
5f |
+1 |
rd→al |
|
701 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
F0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
5e |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
4d |
001 |
a右移→rd |
|
720 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
F0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
f9 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
6d |
001 |
rs→rd |
|
740 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
fa |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
fb |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
+1 |
ROm→bl |
|
741 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
bb |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
fb |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
+1 |
ROm→bh |
|
742 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
3f |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
c6 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
2d |
001 |
bx→pc |
|
760 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
fa |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
fb |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
+1 |
ROm→bl |
|
761 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
bb |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
fb |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
+1 |
ROm→bh |
|
762 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
bc |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
c6 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
3F |
+1 |
bx→ar |
|
763 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
C6 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
FC |
764+z |
條件變址 |
|
764 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
ed |
001 |
空操作 |
|
765 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
3f |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
c6 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
2d |
001 |
bx→pc |
|
780 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
fa |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
fb |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
+1 |
ROm→bl |
|
781 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
bb |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
fb |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
+1 |
ROm→bh |
|
782 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
bc |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
c6 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
3F |
+1 |
bx→ar |
|
783 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
C6 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
F5 |
784+CY |
條件變址 |
|
784 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
ff |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
ed |
001 |
空操作 |
|
785 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
3f |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
c6 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
2d |
001 |
bx→pc |
|
微址00002)1) |
M23 |
M22 |
M21 |
M20 |
M19 |
M18 |
M17 |
M16 |
代碼 |
M15 |
M14 |
M13 |
M12 |
M11 |
M10 |
M9 |
M8 |
代碼 |
M7 |
M6 |
M5 |
M4 |
M3 |
M2 |
M1 |
M0 |
代碼 |
後續微址 |
說明 |
|
E/M |
IP |
MWR |
R/M |
o2 |
o1 |
O0 |
OP |
M |
CN |
S2 |
S2 |
S0 |
X2 |
X1 |
X0 |
XP |
W |
ALU |
Iu |
IE |
IR |
Icz |
Ids |
|||||||
7A0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
F0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
de |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
4d |
001 |
0→rd |
|
7C0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
f8 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
f9 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
5f |
+1 |
rd→al |
|
7C1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
F0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
D6 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
4d |
001 |
A-1→rd |
|
7E0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
F8 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
F8 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1F |
+1 |
PC->AX |
|
7E1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
3F |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
D6 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0D |
001 |
AX-1->PC |
十、參考資料
1、無錫達愛思科教儀器廠自編.《十六位體系結構計算機組成原理實驗指導書(第三版)》 2012年6月。重點參考其中的“分段模型機的設計與實現”(3.2節)、“帶移位運算的模型機的設計與實現”(3.3節)、“複雜模型機的設計與實現”(3.4節)。
2、《計算機組成原理微控制器編程手冊》。
3、《計算機組成與系統結構》,袁春風著。