BÀI TẬP CHƯƠNG 3
Mô tả việc vận chuyển dữ liệu khi thực hiện của các lệnh sau
1. Load R5, (R20)
2. Store R7, 100(R21)
3. Add R5, R4, R20
4. Sub R10, R12, R24
5. And R5, R2, R15
6. Or
R15, R3, R7
7. JMP R7
8. BRA +5
9. BGT R4, +2
Giải:
1. Load R5, (R20): Lệnh thâm nhập bộ nhớ
1) Đọc lệnh:
MAR ←
PC
IR
←
M[MAR]
2) Giải mã lệnh và đọc thanh ghi nguồn:
B
←
R20
PC
←
PC + 4
3) Thi hành lệnh:
MAR ←
B
4) Thâm nhập bộ nhớ/ nhảy lần cuối:
MDR ←
M[MAR]
5) Lưu trữ kết quả:
R5
←
MDR
2. Store R7, 100(R21): Lệnh thâm nhập bộ nhớ
1) Đọc lệnh:
MAR ←
PC
IR
←
M[MAR]
2) Giải mã lệnh và đọc thanh ghi nguồn:
B
←
R21
PC
←
PC + 4
3) Thi hành lệnh:
MAR ←
100 + B
MDR ←
R7
4) Thâm nhập bộ nhớ/ nhảy lần cuối:
M[MAR]
←
MDR
5) Lưu trữ kết quả:
3. Add R5, R4, R20: Lệnh ALU
1) Đọc lệnh:
MAR ←
PC
IR
←
M[MAR]
2) Giải mã lệnh và đọc thanh ghi nguồn:
A
←
R4
B
←
R20
PC
←
PC + 4
4.
5.
6.
7.
3) Thi hành lệnh:
Ngã ra ALU ←
Kết quả phép tính
4) Thâm nhập bộ nhớ/nhảy lần cuối:
5) Lưu trữ kết quả:
R5
←
Ngã ra ALU
Sub R10, R12, R24: Lệnh ALU
1) Đọc lệnh:
2) Giải mã lệnh và đọc thanh ghi nguồn:
A
←
R12
B
←
R24
PC
←
PC + 4
3) Thi hành lệnh:
Ngã ra ALU ←
Kết quả phép tính
4) Thâm nhập bộ nhớ/nhảy lần cuối:
5) Lưu trữ kết quả:
R10 ←
Ngã ra ALU
And R5, R2, R15 : Lệnh ALU
1) Đọc lệnh:
MAR ←
PC
IR
←
M[MAR]
2) Giải mã lệnh và đọc thanh ghi nguồn
A
←
R2
B
←
R15
PC
←
PC + 4
3) Thi hành lệnh:
Ngã ra ALU ←
A AND B
4) Thâm nhập bộ nhớ/nhảy lần cuối:
5) Lưu trữ kết quả:
R5
←
Ngã ra ALU
Or
R15, R3, R7 : Lệnh ALU
1) Đọc lệnh:
MAR ←
PC
IR
←
M[MAR]
2) Giải mã lệnh và đọc thanh ghi nguồn:
A
←
R3
B
←
R7
PC
←
PC + 4
3) Thi hành lệnh:
Ngã ra ALU ←
A OR B
4) Thâm nhập bộ nhớ/nhảy lần cuối
5) Lưu trữ kết quả:
R15 ←
Ngã ra ALU
JMP R7: Lệnh nhảy
1) Đọc lệnh:
MAR ←
PC
IR
←
M[MAR]
2) Giải mã lệnh và đọc thanh ghi nguồn:
B
←
R7
PC
←
PC + 4
3) Thi hành lệnh:
Ngã ra ALU ←
B
4) Thâm nhập bộ nhớ/nhảy lần cuối:
PC
←
Ngã ra ALU
5) Lưu trữ kết quả:
8. BRA +5 : Lệnh nhảy
1) Đọc lệnh:
MAR ←
PC
IR
←
M[MAR]
2) Giải mã lệnh và đọc thanh ghi nguồn:
PC
←
PC + 4
3) Thi hành lệnh:
Ngã ra ALU ←
PC + 5x4
4) Thâm nhập bộ nhớ/nhảy lần cuối
PC
←
Ngã ra ALU
5) Lưu trữ kết quả:
9. BGT R4, +2: Lệnh nhảy có điều kiện : Nhảy bỏ 2 lệnh nếu so sánh Rs1 > Rs2 cho kết
quả đúng, khi đó bit trạng thái Z = 0 và S = 0
1) Đọc lệnh:
MAR ←
PC
IR
←
M[MAR]
2) Giải mã lệnh và đọc thanh ghi nguồn:
A
←
2x4
B
←
PC
PC
←
PC + 4
3) Thi hành lệnh:
Ngã ra ALU ←
A+B
4) Thâm nhập bộ nhớ/nhảy lần cuối:
If (Z = 0, S = 0), PC ←
Ngã ra ALU
5) Lưu trữ kết quả: