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
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 ...
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ìm kiếm theo từ khóa liên quan:
lập trình máy tính lập trình căn bản ngôn ngữ lập trình hợp ngữ MIPS kiến trúc MIPSGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 274 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 265 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 265 0 0 -
114 trang 240 2 0
-
Bài giảng Tin học lớp 11 bài 1: Giới thiệu ngôn ngữ lập trình C#
15 trang 237 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 232 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 224 0 0 -
80 trang 219 0 0
-
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 217 1 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 206 0 0