Danh mục

KIẾN TRÚC MÁY TÍNH VÀ HỢP NGỮ: LẬP TRÌNH HỢP NGỮ MIPS

Số trang: 9      Loại file: doc      Dung lượng: 442.50 KB      Lượt xem: 15      Lượt tải: 0    
10.10.2023

Phí tải xuống: 4,000 VND Tải xuống file đầy đủ (9 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Hợp ngữ (Assembly) là ngôn ngữ lập trình bậc thấp, nó gồm tập các từ khóa và từ gợi nhớrất gần với ngôn ngữ máy (machine code).Mỗi kiến trúc vi xử lý đều có tập lệnh (instruction set) riêng, do đó sẽ có hợp ngữ riêng dànhcho kiến trúc đó. Ở đây, ta tập trung nghiên cứu về hợp ngữ dành cho kiến trúc MIPS. Môitrường lập trình được sử dụng là chương trình MARS. MARS là môi trường lập trình giả lậpgiúp ta viết, biên dịch và chạy hợp ngữ MIPS trên các máy x86....
Nội dung trích xuất từ tài liệu:
KIẾN TRÚC MÁY TÍNH VÀ HỢP NGỮ: LẬP TRÌNH HỢP NGỮ MIPSHDTH Kiến trúc máy tính & Hợp Ngữ Bộ môn MMTVT - HCMUS LẬP TRÌNH HỢP NGỮ MIPSMục đích • Làm quen với hợp ngữ MIPS. • Biết cách viết, biên dịch và chạy chương trình hợp ngữ MIPS với công cụ MARS.Tóm tắt lý thuyếtHợp ngữ (Assembly) là ngôn ngữ lập trình bậc thấp, nó gồm tập các từ khóa và từ gợi nhớrất gần với ngôn ngữ máy (machine code).Mỗi kiến trúc vi xử lý đều có tập lệnh (instruction set) riêng, do đó sẽ có hợp ngữ riêng dànhcho kiến trúc đó. Ở đây, ta tập trung nghiên cứu về hợp ngữ dành cho kiến trúc MIPS. Môitrường lập trình được sử dụng là chương trình MARS. MARS là môi trường lập trình giả lậpgiúp ta viết, biên dịch và chạy hợp ngữ MIPS trên các máy x86. Cấu trúc của một chương trình hợp ngữ MIPS # khai báo biến sau chỉ thị này .data... # viết các lệnh sau chỉ thị này .text # điểm bắt đầu của chương trìnhmain:… Cách khai báo biếntên_biến: kiểu_lưu_trữ giá_trịCác kiểu lưu trữ hỗ trợ: .word, .byte, .asciiz .spaceLưu ý: tên_biến (nhãn) phải theo sau bởi dấu hai chấm (:)Ví dụ: # số nguyên 4-byte có giá trị khởi tạo là 3var1: .word 3 ’a’,’b’ # mảng 2 phần tử, khởi tạo là a và bvar2: .byte # cấp 40-byte bộ nhớ, chưa được khởi tạovar3: .space 40 1HDTH Kiến trúc máy tính & Hợp Ngữ Bộ môn MMTVT - HCMUS Các thanh ghi trong MIPSThanh ghi đa năngSố Tên Ý nghĩa Hằng số 0$0 $zero$1 $at Assembler Temporary Giá trị trả về của hàm hoặc biểu thức$2-$3 $v0-$v1 Các tham số của hàm$4-$7 $a0-$a3 Thanh ghi tạm (không giữ giá trị trong quá trình gọi hàm)$8-$15 $t0-$t7 Thanh ghi lưu trữ (giữ giá trị trong suốt quá trình gọi hàm)$16-$23 $s0-$s7 Thanh ghi tạm$24-$25 $t8-$t9 Dự trữ cho nhân HĐH$26-27 $k0-$k1 Con trỏ toàn cục (global pointer)$28 $gp Con trỏ stack$29 $sp Con trỏ frame$30 $fp Địa chỉ trả về$31 $raThanh ghi HI và LOThao tác nhân của MIPS có kết quả chứa trong 2 thanh ghi HI và LO. Bit 0-31 thuộc LO và32-63 thuộc HI.Thanh ghi dấu phẩy độngMIPS sử dụng 32 thanh ghi dấu phẩy động để biểu diễn độ chính xác đơn của số thực. Cácthanh ghi này có tên là : $f0 – $f31.Để biểu diễn độ chính xác kép (double precision) thì MIPS sử dụng sự ghép đôi của 2 thanhghi có độ chính xác đơn. 2HDTH Kiến trúc máy tính & Hợp Ngữ Bộ môn MMTVT - HCMUS Cú pháp tổng quát lệnh MIPS , , − r1: thanh ghi chứa kết quả − r2: thanh ghi − r3: thanh ghi hoặc hằng số Một số lệnh MIPS cơ bảnGhi chú: • Rd: thanh ghi đích, Rs, Rt: thanh ghi ngu ồn. • các lệnh màu xanh là các lệnh giả (pseudo instructions).Lệnh Load / Store nap / luuĐây là các lệnh duy nhất được phép truy xuất bộ nhớ RAM trong tập lệnh của MIPS.Cú pháp Ý nghĩa Chép 1 word (4 byte) tại vị trí trong bộ nhớ RAM vào thanh ghilw Rd, RAM_src Chép 1 byte tại vị trí trong bộ nhớ RAM vào byte thấp của thanhlb Rd, RAM_src ghi Lưu 1 word trong thanh ghi vào vị trí trong bộ nhớ RAMsw Rs, RAM_dest Lưu 1 byte thấp trong thanh ghi vào vị trí trong bộ nhớ RAMsb Rs, RAM_dest Khởi tạo thanh ghi với giá trịli Rd, value Khởi tạo thanh ghi với địa chỉ của nhãnla Rd, labelNhóm lệnh số học:Cú pháp Ý nghĩa Rd = Rs + Rt (kết quả có dấu)add Rd, Rs, Rtaddi Rd, Rs, imm Rd = Rs + imm(hang so) Rd = Rs + Rt (kết quả không dấu)addu Rd, Rs, Rtsub Rd, Rs, Rt Rd = Rs - Rt Rd = Rs - Rt (kết quả không dấu)subu Rd, Rs, Rtmult Rs, Rt (Hi,Lo) = Rs * Rt Lo = Rs / Rt (thương), Hi = Rs % Rt (số dư)div Rs, Rtmfhi Rd Rd = Himflo Rd Rd = Lomove Rd, Rs ...

Tài liệu được xem nhiều: