lOMoARcPSD| 59908026
PHIẾU GHI KẾT QUẢ QUAN SÁT
LAB 2: TẠO MỘT MACHINE MỚI VỚI CPUSIM
Ngày: 23/10/2023
Họ và tên sinh viên: Phùng Thị Thu Huyền Lớp: 64CNTT1
Máy (Machine) mặc định: Machine-new.cpu
Chương trình (Text): Prog-new.a
Nhiệm vụ của sinh viên:
- Chạy chương trình trong file Prog-new.a ở chế độ từng lệnh 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
Vi lệnh hợp ngữ
Read
0000 0000
0000 0001
0000 0010
0000 0011
0000 0011
0000 0000
0000 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 inc4-pc //
Tăng pc lên 4 decode-ir
// Giải mã lệnh read
input-int->acc // Nhập
1 số nguyên và truyền
vào acc
End
jmpn Done
(acc>=0)
0000 0100
0000 0101
0000 0110
0000 0111
0000 1011
0000 0000
0000 0000
0001 0100
pc->mar Main[mar]-
>mdr
mdr->ir inc4-
pc decode-ir
if(acc>=0) skip-1 //
Nếu acc >= 0 thì bỏ
qua 1 lệnh (ir(8-31)>
pc )
End
lOMoARcPSD| 59908026
1
jmpn Done
(acc<0)
0000 0100
0000 0101
0000 0110
0000 0111
0000 1011
0000 0000
0000 0000
0001 0100
pc->mar Main[mar]-
>mdr
mdr->ir inc4-pc
decode-ir if(acc>=0)
skip-1 ir(8-31)->pc
//Truyền
địa chỉ lệnh vào pc
End
add sum
0000 1000
0000 1001
0000 1010
0000 1011
0000 0101
0000 0000
0000 0000
0010 0000
pc->mar Main[mar]-
>mdr
mdr->ir inc4-
pc decode-ir
ir(8-31) -> mar //
Truyền địa chỉ (8-31)
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
0000 1100
0000 1101
0000 1110
0000 1111
0000 0010
0000 0000
0000 0000
0010 0000
pc->mar Main[mar]-
>mdr
mdr->ir inc4-pc
decode-ir ir(8-31)-
>mar acc->mdr //
Đưa dữ liệu của arr
vào mdr mdr-
>Main[mar]
End
jump Start
0001 0000
0001 0001
0001 0010
0001 0011
0000 1001
0000 0000
0000 0000
0000 0000
pc->mar Main[mar]-
>mdr
mdr->ir inc4-
pc decode-ir
ir(8-31)->pc
End
lOMoARcPSD| 59908026
load sum
0001 0100
0001 0101
0001 0110
0001 0111
0000 0001
0000 0000
0000 0000
0010 0000
pc->mar Main[mar]-
>mdr
mdr->ir inc4-pc
decode-ir ir(8-
31)->mar
Main[mar]-
>mdr mdr->acc
2
End
Write
0001 1000
0001 1001
0001 1010
0001 1011
0000 0100
0000 0000
0000 0000
0000 0000
pc->mar Main[mar]-
>mdr
mdr->ir inc4-pc
decode-ir output-acc-
>int // Viết
kết quả ra màn hình
End
Stop
0001 1100
0001 1101
0001 1110
0001 1111
0000 0000
0000 0000
0000 0000
0000 0000
pc->mar Main[mar]-
>mdr
mdr->ir inc4-
pc decode-ir
set-halt-bit
End
Địa chỉ của 4 byte dữ liệu mà tổng được lưu trữ (4-byte location where sum is
stored): 0010 0000
0010 0001
0010 0010
0010 0011
Giá trị nhị phân của tổng được lưu trong bộ nhớ:
0000 0000
0000 0000
0000 0000
0000 1011
Thông báo trong cửa sổ hiển thị (Console)
3

Preview text:

lOMoAR cPSD| 59908026
PHIẾU GHI KẾT QUẢ QUAN SÁT
LAB 2: TẠO MỘT MACHINE MỚI VỚI CPUSIM Ngày: 23/10/2023
Họ và tên sinh viên: Phùng Thị Thu Huyền Lớp: 64CNTT1
Máy (Machine) mặc định: Machine-new.cpu
Chương trình (Text): Prog-new.a
Nhiệm vụ của sinh viên:
- Chạy chương trình trong file Prog-new.a ở chế độ từng lệnh 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ớ chứa lệnh Read 0000 0000 0000 0011
pc->mar // Địa chỉ của 0000 0001 0000 0000 lệnh đưa qua mar 0000 0010 0000 0000 Main[mar]->mdr // 0000 0011 0000 0000 Lệnh read từ bộ nhớ đưa qua mdr mdr->ir // Mã lệnh read từ mdr đưa vào ir inc4-pc // Tăng pc lên 4 decode-ir // Giải mã lệnh read input-int->acc // Nhập 1 số nguyên và truyền vào acc End jmpn Done 0000 0100 0000 1011 pc->mar Main[mar]- (acc>=0) 0000 0101 0000 0000 >mdr 0000 0110 0000 0000 0000 0111 0001 0100 mdr->ir inc4- pc decode-ir if(acc>=0) skip-1 // Nếu acc >= 0 thì bỏ qua 1 lệnh (ir(8-31)> pc ) End lOMoAR cPSD| 59908026 1 jmpn Done 0000 0100 0000 1011 pc->mar Main[mar]- (acc<0) 0000 0101 0000 0000 >mdr 0000 0110 0000 0000 0000 0111 0001 0100 mdr->ir inc4-pc decode-ir if(acc>=0) skip-1 ir(8-31)->pc //Truyền địa chỉ lệnh vào pc End add sum 0000 1000 0000 0101 pc->mar Main[mar]- 0000 1001 0000 0000 >mdr 0000 1010 0000 0000 mdr->ir inc4- 0000 1011 0010 0000 pc decode-ir ir(8-31) -> mar // Truyền địa chỉ (8-31) 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 0000 1100 0000 0010 pc->mar Main[mar]- 0000 1101 0000 0000 >mdr 0000 1110 0000 0000 mdr->ir inc4-pc 0000 1111 0010 0000 decode-ir ir(8-31)- >mar acc->mdr // Đưa dữ liệu của arr vào mdr mdr- >Main[mar] End jump Start 0001 0000 0000 1001 pc->mar Main[mar]- 0001 0001 0000 0000 >mdr 0001 0010 0000 0000 mdr->ir inc4- 0001 0011 0000 0000 pc decode-ir ir(8-31)->pc End lOMoAR cPSD| 59908026 load sum 0001 0100 0000 0001 pc->mar Main[mar]- 0001 0101 0000 0000 >mdr 0001 0110 0000 0000 mdr->ir inc4-pc 0001 0111 0010 0000 decode-ir ir(8- 31)->mar Main[mar]- >mdr mdr->acc 2 End Write 0001 1000 0000 0100 pc->mar Main[mar]- 0001 1001 0000 0000 >mdr 0001 1010 0000 0000 mdr->ir inc4-pc 0001 1011 0000 0000 decode-ir output-acc- >int // Viết kết quả ra màn hình End Stop 0001 1100 0000 0000 pc->mar Main[mar]- 0001 1101 0000 0000 >mdr 0001 1110 0000 0000 mdr->ir inc4- 0001 1111 0000 0000 pc decode-ir set-halt-bit End
Địa chỉ của 4 byte dữ liệu mà tổng được lưu trữ (4-byte location where sum is stored): 0010 0000 0010 0001 0010 0010 0010 0011
Giá trị nhị phân của tổng được lưu trong bộ nhớ: 0000 0000 0000 0000 0000 0000 0000 1011
Thông báo trong cửa sổ hiển thị (Console) 3