Hỏi đáp:
https://www.facebook.com/groups/EmAnhDuong
Video:
https://www.youtube.com/DuongComputing
LAB05B – Learn to Work
MỤC TIÊU
- Rèn luyện khả năng sử dụng ngôn ngữ kịch bản cho công việc tương lai
- Hiểu cách hoạt động của trình biên dịch hợp ngữ
ĐỐI TƯỢNG
- Sinh viên đang học một trong những môn học sau:
o CE119 – Thực hành Kiến trúc Máy tính
o IT006 – Kiến trúc Máy tính
TRÌNH BIÊN DỊCH HỢP NGỮ
Trình biên dịch hợp ngữ có chức năng chuyển một chương trình được viết bằng hợp ngữ sang ngôn ngữ
máy. Có thể viết trình biên dịch theo 2 chuyến như sau:
Chuyến 1: Duyệt tập tin hợp ngữ đầu vào và xuất kết quả vào tập tin tạm
- Bước 1.1: Loại bỏ tất cả chú thích, hàng trống khỏi chương trình
- Bước 1.2: Tính toán địa chỉ cho tất cả label và lưu vào bảng
label
- Bước 1.3: Loại bỏ label khỏi chương trình
Chuyến 2: Duyệt tập tin tạm và xuất kết quả ra tập tin mã máy
- Bước 2.1: Xác định định dạng lệnh
- Bước 2.2: Phát sinh mã nhị phân cho các mã gợi nhớ và thay thế label bằng địa chỉ label của lệnh
dựa theo định dạng lệnh
- Bước 2.3: Nối mã nhị phân của các trường thành mã máy hoàn chỉnh
YÊU CẦU
- Đầu vào: tập tin chương trình hợp ngữ MIPS bao gồm tối thiểu:
o Thanh ghi: 32 thanh ghi đa dụng
o Lệnh loại R: add, addu, and, jr
o Lệnh loại I: addi, addiu, andi, beq, bne, lbu, lhu, lui, lw, sw
o Lệnh loại J: j, jal
- Đầu ta: tập ra chương trình mã máy
HƯỚNG DẪN LẬP TRÌNH
Thủ tục
Mô tả
DeleleComment()
Xóa các chú thích
CalculateImmediate()
Tính toán địa chỉ cho label
BuiltLabelTable()
Xây dựng bảng label và xóa label
GenerateBinary()
Tạo mã nhị phân cho lệnh
FirstPass()
Chuyến 1
SecondPass()
Chuyến 2
Main()
Hàm chính