1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo môn học thực hành kiến trúc máy tính báo cáo bài thực hành số 2

14 14 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo Cáo Bài Thực Hành Số 2
Tác giả Võ Ngọc Hoài
Người hướng dẫn Thân Thế Tùng
Trường học Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Kỹ Thuật Máy Tính
Thể loại Báo cáo
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 14
Dung lượng 272,66 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT MÁY TÍNH BÁO CÁO MÔN HỌC THỰC HÀNH KIẾN TRÚC MÁY TÍNH CE119 N21 MTCL BÁO CÁO BÀI THỰC HÀNH SỐ 2 Giảng viên hướng dẫn Th[.]

Trang 1

Page | 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

BÁO CÁO MÔN HỌC

THỰC HÀNH KIẾN TRÚC MÁY TÍNH

CE119.N21.MTCL

BÁO CÁO BÀI THỰC HÀNH SỐ 2

Giảng viên hướng dẫn: Thân Thế Tùng

Sinh viên thực hiện: Võ Ngọc Hoài - Mssv:21522084

Trang 2

MỤC LỤC:

1 Lý thuyết… 3

2 Thực hành 3

3 Bài tập 5

Trang 3

if (i == j)

f = g + h;

else

f = g – h;

Giảng viên hướng dẫn sinh viên về chương trình hợp ngữ MIPS dựa theo

tài liệu: Tổngquát về hợp ngữ và kiến trúc MIPS

Chuyển đoạn code trong bảng theo sau sang MIPS và sử dụng MARS để kiểm tra lại kết quả:

Trang 4

(Với giá trị của i, j, f, g, h lần lượt chứa trong các thanh ghi $s0, $s1, $s2, $t0, $t1)

Trình bày:

Chuyển đoạn code trên sang MIPS:

Trang 5

Giải thích:

Nếu s0 khác s1 thì thanh ghi PC sẽ có địa chỉ ở nhãn label và sau đó chương trình chạy tới label cho tới exit còn nếu bằng thì ta sẽ xuống lệnh tiếp theo và thực hiệu yêu cầu f=g+h

Rồi chạy xuống exit kết thúc chương trình

Trang 6

int Sum = 0

for (int i = 1; i <=N; ++i)

{ Sum = Sum + i;

}

(Với giá trị của i, N, Sum lần lượt chứa trong các thanh ghi $s0, $s1, $s2)

Trình bày:

Chuyển đoạn code trên sang MIPS:

Trang 7

Giải thích:

Đầu tiên ta sài lệnh li để gán giá trị cho các biến i,N,Sum, giả sử N bằng 4

Ở dòng 6 ta sài lệnh bgt để so sánh xem i và N lúc đầu như nào nếu i lớn hơn N thì sẽ chạy xuống lênh exit và kết thúc ngay , còn nếu ngược lại thì sẽ xuống dòng lệnh tiếp theo , rồi chạy xuống lệnh label thực hiện sum=sum+i, sau đó ta cộng i lênh một đơn vị bằng cách sài lệnh addi , sau đó ta so sánh xem giữa i và N như nào nếu i nhỏ hơn N thì sẽ lặp lại bằng cách chạy lên lại lệnh label và thực hiện lại tiếp , còn không thì ta chạy thẳng xuống exit

Trang 8

a. Nhập vào một ký tự, xuất ra cửa sổ I/O của MARS theo từng yêu

cầu sau:

 Ký tự liền trước và liền sau của ký tự nhập vào

Ví dụ:

Nhap ky tu (chỉ

một ký tự): b

Ky tu truoc: a

Ky tu sau: c

 Ký tự nhập vào chỉ được phép là ba loại: số, chữ thường và chữ

hoa Nếu ký tự nhập vào rơi vào một trong ba loại, xuất ra cửa sổ

đó là loại

Trang 9

nào; nếu ký tự nhập không rơi vào một trong ba loại trên, xuất ra thông báo “invalid type”

Trình bày:

Giải thích:

Ta tạo các chuỗi var 0, var1 ,var2

Để tạo ra các câu xuất ra màn hình khi ta nhập b vào ở dòng 6-7

Xong ta xuất chuỗi var0 để xuống dòng rồi ta xuất tiếp chuỗi var1 và var2

Kết quả:

Trang 10

b Nhập từ bàn phím 2 số nguyên, in ra cửa sổ I/O của MARS theo

từng yêu cầu sau:

 Tổng, hiệu, tích và thương của hai số

Trình bày:

Trang 12

Giải thích:

Ta tạo 3 chuỗi là var0 var1 và var2 để khi nhập số thứ nhất và số thứ hai để

dễ nhận biết khi nào nhập, còn chuỗi 2 là để nhằm mục đích xuống dòng cho các câu khi xuất ra được xuống dòng

Đầu tiên ta nhập vào 2 số xong sau đó ta so sánh chúng qua lệnh blt ở dòng

21, nếu như s0 lớn hơn s1 thì sẽ chạy xuống dòng tiếp theo để xuất số lớn hơn là s0 rồi chạy đến hàm tổng, còn nếu như ngược lại thì sẽ chạy xuống

Trang 13

nhãn label để xuất số lớn hơn là s1 , rồi ta xuống hàm tổng , ta gán tổng của hai số đó vào biến

$t0 rồi xuất ra biến này bằng tập lệnh syscall hỗ trợ xuất số nguyên , tương tự hàm hiệu như hàm tổng , hàm tích thì sài mul để tính tích và gán vào $t0 rồi xuất ra, còn hàm thương đặc biệt hơn là ta sài div xong sau đó thương số của s0 và s1 sẽ được lưu vào trong thanh ghi $lo nên để lấy giá trị trong thanh ghi này thì phải sài mflo để gán vào $t0 rồi sau đó ta xuất giá trị $t0 này

ra là được thương số của hai số

Kết quả:

Ngày đăng: 11/04/2023, 10:11

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w