1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tổ chức và cấu trúc máy tính ii báo cáo thực hành lab 03

14 2 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 đề Chương trình mô phỏng hợp ngữ (Assembly) MIPS
Tác giả Nguyễn Thế Luân
Người hướng dẫn Nguyễn Thành Nhân
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Tổ chức và cấu trúc máy tính
Thể loại Báo cáo thực hành
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 14
Dung lượng 1,62 MB

Nội dung

Mục lục1 CHƯƠNG TRÌNH MÔ PHỎNG HỢP NGỮ ASSEMBLY 2.1 Sinh viên tìm hiểu tài liệu “Một số lệnh assembly MIPS cơ bản” và mô phỏng việc thực thi các lệnh và cho biết chức năng của các lệnh c

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TỔ CHỨC VÀ CẤU TRÚC MÁY TÍNH II

BÁO CÁO THỰC HÀNH LAB 03

Sinh viên thực hiện :

Nguyễn Thế Luân - 23520899

Giảng viên hướng dẫn : Nguyễn Thành Nhân

Ngày 21 tháng 4 năm 2024

Trang 2

Mục lục

1 CHƯƠNG TRÌNH MÔ PHỎNG HỢP NGỮ (ASSEMBLY)

2.1 Sinh viên tìm hiểu tài liệu “Một số lệnh assembly MIPS cơ bản” và mô

phỏng việc thực thi các lệnh và cho biết chức năng của các lệnh cơ bản sau: 2

2.2 Ví dụ 1 7

2.3 Ví dụ 2 7

2.4 Ví dụ 3 7

2.5 Ví dụ 4 8

3 BÀI TẬP 8 3.1 Nhập vào một chuỗi, xuất ra cửa sổ I/O của MARS theo từng yêu cầu sau: 8 3.2 Biểu diễn nhị phân của 2 chuỗi trên dưới bộ nhớ là gì? 9

3.3 Xuất ra lại đúng chuỗi đã nhập 11

3.4 Nhập vào 2 số nguyên sau đó xuất tổng của 2 số nguyên này 12

Trang 3

1 CHƯƠNG TRÌNH MÔ PHỎNG HỢP NGỮ (ASSEMBLY) MIPS

Hợp ngữ MIPS là một ngôn ngữ lập trình cấp thấp được sử dụng rộng rãi trong việc giảng dạy về kiến trúc máy tính Để giúp sinh viên và nhà nghiên cứu dễ dàng tìm hiểu và thực hành với hợp ngữ MIPS, các chương trình mô phỏng như SPIM

và MARS đã được phát triển

Chương trình mô phỏng hợp ngữ MIPS cung cấp một môi trường giả lập cho phép người dùng nhập, biên dịch và thực thi mã hợp ngữ MIPS Nó giả lập một vi

xử lý MIPS 32-bit với tất cả các thanh ghi và bộ nhớ tương ứng Người dùng có thể nhập mã hợp ngữ MIPS vào chương trình mô phỏng, sau đó chạy mã để xem kết quả

Một trong những tính năng quan trọng của chương trình mô phỏng hợp ngữ MIPS là khả năng hiển thị trạng thái của vi xử lý sau mỗi lệnh Điều này giúp người dùng dễ dàng theo dõi và hiểu cách thức hoạt động của từng lệnh Ngoài ra, chương trình mô phỏng còn cho phép người dùng kiểm soát quá trình thực thi mã, bao gồm việc dừng, tiếp tục, hoặc bước qua từng lệnh

Chương trình mô phỏng hợp ngữ MIPS cũng hỗ trợ việc gỡ lỗi mã hợp ngữ MIPS Người dùng có thể đặt điểm dừng (breakpoints) tại các dòng mã cần kiểm tra, sau đó chạy mã đến điểm dừng để kiểm tra trạng thái của vi xử lý Điều này giúp người dùng dễ dàng tìm ra và sửa lỗi trong mã của mình

Ngoài ra, chương trình mô phỏng hợp ngữ MIPS còn cung cấp các công cụ để hiển thị và chỉnh sửa nội dung của bộ nhớ và các thanh ghi Điều này giúp người dùng dễ dàng kiểm tra và thay đổi giá trị của các biến và thanh ghi trong quá trình thực thi mã

2 THỰC HÀNH

2.1 Sinh viên tìm hiểu tài liệu “Một số lệnh assembly MIPS cơ bản” và mô phỏng việc thực thi các lệnh và cho biết chức năng của các lệnh cơ bản sau:

Trang 4

Hình 1: Enter Caption

Một số lệnh cơ bản MIPS cơ bản:

Chức năng của các lệnh:

• add: s và t, lưu kết quả vào thanh ghi d Nếu có tràn số, lệnh này sẽ tạo ra ngoại lệ

• andi: Cộng giá trị của thanh ghi Nếu có tràn số, lệnh này sẽ tạo ra ngoại lệ

• addu: Tương tự như lệnh add nhưng không kiểm tra tràn số

• addiu t, s, i: Tương tự như lệnh addi nhưng không kiểm tra tràn số

• sub d, s, t: Trừ giá trị của thanh ghi t từ thanh ghi s, lưu kết quả vào thanh ghi d Nếu có tràn số, lệnh này sẽ tạo ra ngoại lệ

• subu d, s, t: Tương tự như lệnh sub nhưng không kiểm tra tràn số

• and d, s, t: Thực hiện phép toán logic AND trên từng bit của s và t, lưu kết quả vào d

• andi t, s, i: Thực hiện phép toán logic AND trên từng bit của s và hằng số i, lưu kết quả vào t

Trang 5

• or d, s, t: Thực hiện phép toán logic OR trên từng bit của s và t, lưu kết quả vào d

• nor d, s, t: Thực hiện phép toán logic NOR (NOT OR) trên từng bit của s

và t, lưu kết quả vào d

• lw t, i(s): Đọc giá trị từ bộ nhớ tại địa chỉ được tính bằng cách cộng giá trị của s và hằng số i, lưu kết quả vào t

• sw t, i(s): Ghi giá trị của t vào bộ nhớ tại địa chỉ được tính bằng cách cộng giá trị của s và hằng số i

• slt d, s, t: So sánh s và t Nếu s nhỏ hơn t, đặt d bằng 1 Ngược lại, đặt d bằng 0 slti t, s, i: Tương tự như slt nhưng so sánh s với hằng số i

• sltu d, s, t: Tương tự như slt nhưng so sánh không dấu

• sltiu t, s, i: Tương tự như slti nhưng so sánh không dấu

• syscall: Thực hiện một lệnh hệ thống Chức năng cụ thể phụ thuộc vào giá trị trong thanh ghi v0

Mô phỏng việc thực thi một số lệnh:

Trang 7

Hình 2: Enter Caption

Trang 8

2.2 Ví dụ 1

Nhận xét: Chương trình này được dùng để thay đổi giá trị của biến var1 từ

23 về 5

2.3 Ví dụ 2

Nhận xét: Chương trình này được dùng để khai báo một mảng gồm 3 phần

tử và lưu các giá trị 5, 13 và -7 vào mảng đó

2.4 Ví dụ 3

Nhận xét:

Đoạn mã MIPS này được sử dụng để đọc một số nguyên từ bàn phím Số 5 được đặt vào thanh ghi v0

Trang 9

2.5 Ví dụ 4

Nhận xét:

Chương trình này được sử dụng để in ra giá trị của một chuỗi

3 BÀI TẬP

3.1 Nhập vào một chuỗi, xuất ra cửa sổ I/O của MARS theo từng yêu cầu sau:

Trang 10

Ghi chú: Addi v0, 0, 4 và syscall được sử dụng để in chuỗi ra màn hình console.

3.2 Biểu diễn nhị phân của 2 chuỗi trên dưới bộ nhớ là gì?

.Data:

01101111011000010110100001000011

01101110011000010110001000100000

01100001010000100010000000100001

01100001011011000010000001101110

01101110011010010111001100100000

01101001011101100010000001101000

01101110001000000110111001100101

01110100001000000110110101100001

01101101001000000111010101101000

00001010001111110111100101100001

01101000011010010100100000000000

Trang 11

00100000011010000110111001101001

01110011001000000110000101101100

00100000011010000110111001101001

01101110011001010110100101110110

01101101011000010110111000100000

01011110001000000011000100100000

00000000000010100101111000101101

00000000000000000000000000000000

00000000000000000000000000000000

.Text:

00100100000000100000000000000100

00111100000000010001000000000001

00110100001001000000000000000000

00000000000000000000000000001100

00100100000000100000000000000100

00111100000000010001000000000001

00110100001001000000000000101001

00000000000000000000000000001100

Trang 12

3.3 Xuất ra lại đúng chuỗi đã nhập

Lưu ý: Độ lớn tối đa của chuỗi khi khai báo phải bằng độ lớn tối đa của chuỗi khi nhập để đảm bảo rằng không gian bộ nhớ được cấp phát cho chuỗi có đủ chỗ

để lưu trữ tất cả các ký tự của chuỗi khi nhập

Trang 13

3.4 Nhập vào 2 số nguyên sau đó xuất tổng của 2 số nguyên này

Nhận xét:

- Chương trình được viết một cách rõ ràng và dễ hiểu

- Việc sử dụng các thanh ghi giúp tối ưu hóa việc lưu trữ và truy cập dữ liệu

- Tuy nhiên, cần lưu ý rằng chương trình này không kiểm tra các trường hợp tràn số khi thực hiện phép cộng

Trang 14

4 Tài Liệu Tham Khảo

Slide bài giảng Khoa Kỹ Thuật Máy Tính - UIT

Ngày đăng: 08/10/2024, 16:31

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w