lOMoARcPSD| 59908026
PHIẾU GHI KẾT QUẢ QUAN SÁT
LAB 1: CÁCH MÁY TÍNH XỬ LÝ MỘT CHƯƠNG TRÌNH
Ngày: 23/10/2023
Họ và tên sinh viên: Đào Thành Hà Lớp: 64CNTT1
Máy (Machine) mặc định: Wombat1.cpu
Chương trình (Text) mặc định: W1-0.a
Nhiệm vụ của sinh viên:
- Chạy chương trình trong file W1-0.a ở chế độ từng vi lệnh
- Quan sát nội dung các thanh ghi của CPU, nội dung của các ngăn nhớ trong RAM,
vùng cửa sổ 3 và 5, mục Fetch Sequence
- Ghi nội dung quan sát được vào bảng sau:
Lệnh hợp ngữ
Địa chỉ của
các ngăn nhớ
chứa lệnh
Lệnh mã máy
(giải thích ý nghĩa
của từng lệnh)
Vi lệnh hợp ngữ
( giải thích ý nghĩa của từng vi
lệnh)
Read
000 0000
000 0001
0011 0000
0000 0000
pc->mar // Địa chỉ của lệnh
đưa qua mar
Main[mar]->mdr // Lệnh read
từ bộ nhớ đưa qua mdr mdr-
>ir // Mã lệnh read từ mdr đưa
vào ir
inc2-pc // Tăng pc lên 2
decode-ir // Giải mã lệnh read
input-int->acc // Nhập 1 số
nguyên và truyền vào acc
End // Kết thúc
jmpn Done
(acc>=0)
000 0010
000 0011
1011 0000
0000 1010
pc->mar Main[mar]-
>mdr
mdr->ir inc2-pc decode-ir
if(acc>=0) skip-1 // Nếu
acc >= 0 thì bỏ qua 1 lệnh
( ir(4-15)->pc )
End
lOMoARcPSD| 59908026
jmpn Done
(acc<0)
000 0010
000 0011
1011 0000
0000 1010
pc->mar Main[mar]-
>mdr mdr->ir
1
inc2-pc decode-
ir if(acc>=0)
skip-1
ir(4-15)->pc //Truyền địa chỉ
lệnh vào pc
End
add sum
000 0100
000 0101
0101 0000
0001 0000
pc->mar Main[mar]-
>mdr
mdr->ir inc2-pc decode-ir
ir(4-15) -> mar // Truyền địa
chỉ (4-15) trong ir vào mar
Main[mar]->mdr
acc+mdr->acc // acc cộng giá
trị của acc và mdr rồi truyền
vào acc
End
store sum
000 0110
000 0111
0010 0000
0001 0000
pc->mar Main[mar]-
>mdr
mdr->ir inc2-
pc decode-ir
ir(4-15)->mar
acc->mdr // Đưa dữ liệu của
acc vào mdr mdr-
>Main[mar]
End
jump Start
000 1000
000 1001
1001 0000
0000 0000
pc->mar Main[mar]-
>mdr
mdr->ir inc2-
pc decode-ir
ir(4-15)->pc
End
lOMoARcPSD| 59908026
load sum
000 1010
000 1011
0001 0000
0001 0000
pc->mar Main[mar]-
>mdr
mdr->ir inc2-pc
decode-ir ir(4-
15)->mar
Main[mar]-
>mdr mdr->acc
End
Write
000 1100
000 1101
0100 0000
0000 0000
pc->mar Main[mar]-
>mdr
mdr->ir inc2-
pc
2
decode-ir
output-acc->int // Viết kết quả
ra màn hình
End
Stop
000 1110
000 1111
0000 0000
0000 0000
pc->mar Main[mar]-
>mdr
mdr->ir inc2-
pc decode-ir
set-halt-bit
End
Địa chỉ của 2 byte dữ liệu mà tổng được lưu trữ (2-byte location where sum is stored):
001 0000 và 001 0001
Giá trị nhị phân của tổng được lưu trong bộ nhớ: 0000 0000 và 0000 1010
Thông báo trong cửa sổ hiển thị (Console)
- Liệt kê các công đoạn thực hiện có thể có trong một chu kỳ lệnh:
+ Load dữ liệu từ thanh ghi pc vào thanh ghi mar
+ Lấy từ trong main dữ liệu từ dữ liệu của thanh ghi mar (lưu trữ địa chỉ của lệnh )
đưa vào thanh ghi mdr (lưu trữ địa chỉ) + Load địa chỉ từ thanh ghi mdr vào thanh
ghi ir
+ Tăng thanh ghi pc trỏ sang địa chỉ của lệnh tiếp theo trong main +
Giải mã lệnh trong ir và chạy
lOMoARcPSD| 59908026
3

Preview text:

lOMoAR cPSD| 59908026
PHIẾU GHI KẾT QUẢ QUAN SÁT
LAB 1: CÁCH MÁY TÍNH XỬ LÝ MỘT CHƯƠNG TRÌNH Ngày: 23/10/2023
Họ và tên sinh viên: Đào Thành Hà Lớp: 64CNTT1
Máy (Machine) mặc định: Wombat1.cpu
Chương trình (Text) mặc định: W1-0.a
Nhiệm vụ của sinh viên:
- Chạy chương trình trong file W1-0.a ở chế độ từng vi lệnh
- Quan sát nội dung các thanh ghi của CPU, nội dung của các ngăn nhớ trong RAM,
vùng cửa sổ 3 và 5, mục Fetch Sequence
- Ghi nội dung quan sát được vào bảng sau: Lệnh hợp ngữ Địa chỉ của Lệnh mã máy Vi lệnh hợp ngữ các ngăn nhớ (giải thích ý nghĩa
( giải thích ý nghĩa của từng vi chứa lệnh của từng lệnh) lệnh) Read 000 0000 0011 0000
pc->mar // Địa chỉ của lệnh 000 0001 0000 0000 đưa qua mar
Main[mar]->mdr // Lệnh read
từ bộ nhớ đưa qua mdr mdr-
>ir // Mã lệnh read từ mdr đưa vào ir inc2-pc // Tăng pc lên 2
decode-ir // Giải mã lệnh read
input-int->acc // Nhập 1 số nguyên và truyền vào acc End // Kết thúc jmpn Done 000 0010 1011 0000 pc->mar Main[mar]- (acc>=0) 000 0011 0000 1010 >mdr mdr->ir inc2-pc decode-ir if(acc>=0) skip-1 // Nếu
acc >= 0 thì bỏ qua 1 lệnh ( ir(4-15)->pc ) End lOMoAR cPSD| 59908026 jmpn Done 000 0010 1011 0000 pc->mar Main[mar]- (acc<0) 000 0011 0000 1010 >mdr mdr->ir 1 inc2-pc decode- ir if(acc>=0) skip-1
ir(4-15)->pc //Truyền địa chỉ lệnh vào pc End add sum 000 0100 0101 0000 pc->mar Main[mar]- 000 0101 0001 0000 >mdr mdr->ir inc2-pc decode-ir
ir(4-15) -> mar // Truyền địa
chỉ (4-15) trong ir vào mar Main[mar]->mdr
acc+mdr->acc // acc cộng giá
trị của acc và mdr rồi truyền vào acc End store sum 000 0110 0010 0000 pc->mar Main[mar]- 000 0111 0001 0000 >mdr mdr->ir inc2- pc decode-ir ir(4-15)->mar
acc->mdr // Đưa dữ liệu của acc vào mdr mdr- >Main[mar] End jump Start 000 1000 1001 0000 pc->mar Main[mar]- 000 1001 0000 0000 >mdr mdr->ir inc2- pc decode-ir ir(4-15)->pc End lOMoAR cPSD| 59908026 load sum 000 1010 0001 0000 pc->mar Main[mar]- 000 1011 0001 0000 >mdr mdr->ir inc2-pc decode-ir ir(4- 15)->mar Main[mar]- >mdr mdr->acc End Write 000 1100 0100 0000 pc->mar Main[mar]- 000 1101 0000 0000 >mdr mdr->ir inc2- pc 2 decode-ir
output-acc->int // Viết kết quả ra màn hình End Stop 000 1110 0000 0000 pc->mar Main[mar]- 000 1111 0000 0000 >mdr mdr->ir inc2- pc decode-ir set-halt-bit End
Địa chỉ của 2 byte dữ liệu mà tổng được lưu trữ (2-byte location where sum is stored): 001 0000 và 001 0001
Giá trị nhị phân của tổng được lưu trong bộ nhớ: 0000 0000 và 0000 1010
Thông báo trong cửa sổ hiển thị (Console)
- Liệt kê các công đoạn thực hiện có thể có trong một chu kỳ lệnh:
+ Load dữ liệu từ thanh ghi pc vào thanh ghi mar
+ Lấy từ trong main dữ liệu từ dữ liệu của thanh ghi mar (lưu trữ địa chỉ của lệnh )
đưa vào thanh ghi mdr (lưu trữ địa chỉ) + Load địa chỉ từ thanh ghi mdr vào thanh ghi ir
+ Tăng thanh ghi pc trỏ sang địa chỉ của lệnh tiếp theo trong main +
Giải mã lệnh trong ir và chạy lOMoAR cPSD| 59908026 3