GV Biên soạn: TTNNguyet-Khoa KTMT-UIT 2013 Tổng quát hợp ngữ kiến trúc MIPS Dữ liệu Lưu trữ: Byte (8 bits), word (2 bytes), word (4 bytes) Một lệnh sử dụng 32 bits để lưu trữ Một ký tự (character) sử dụng byte để lưu trữ Một số nguyên sử dụng word (bytes) để lưu trữ Cách viết số, chữ chuỗi: Số nguyên hệ 10 viết bình thường, số hệ 16 đặt 0x vào đầu Ví dụ: Số 17 hệ 10: 17 Số 17 hệ 16: 0x17 Các ký tự đặt dấu nháy đơn Ví dụ: „b‟ Một chuỗi đặt dấu nháy kép Ví dụ: “Đại học Cơng Nghệ Thơng Tin” Thanh ghi: Có 32 ghi đa dụng (general-purpose registers) Thanh ghi viết với ký tự $ trước Mỗi ghi có số tên kèm, thể sử dụng hai cách gọi ghi: Sử dụng số cụ thể ghi: từ $0 tới $31 Sử dụng tên gọi ghi, ví dụ: $t1, $sp Hai ghi đặc biệt “Lo” “Hi” sử dụng để lưu trữ kết phép nhân chia Truy xuất liệu từ hai ghi sử dụng mfhi ("move from Hi") and mflo ("move from Lo") Lưu ý: Các ghi nên sử dụng theo quy ước hình Thanh ghi $at phục vụ cho assembler, ghi $k0, $k1 phục vụ cho hệ điều hành Các ghi $gp, $sp, $fp, $ra dùng mục đích đặc biệt, không nên sử dụng biến lập trình CuuDuongThanCong.com https://fb.com/tailieudientucntt GV Biên soạn: TTNNguyet-Khoa KTMT-UIT 2013 Hình Các ghi quy ước sử dụng Stack: Stack phát triển từ nhớ cao tới nhớ thấp Cấu trúc chương trình Dữ liệu khai báo đặt sau nhãn data lưu nhớ (main memory – RAM) Code đặt sau nhãn text Điểm bắt đầu chương trình main Các ghi chú/chú giải đặt sau dấu “#” Mẫu chương trình: CuuDuongThanCong.com https://fb.com/tailieudientucntt GV Biên soạn: TTNNguyet-Khoa KTMT-UIT 2013 Như để khai báo biến sau data Việc khai báo biến sử dụng theo công thức sau: name: storage_type value(s) Ví dụ: # Tạo biến số nguyên tên var1, chiếm word lưu trữ, với giá trị khởi tạo var1: word # Tạo mảng tên array1 có hai phần tử, phần tử chiếm byte, khởi tạo với hai ký tự „a‟ „b‟ array1: byte 'a','b' # Tạo mảng tên array2 có 40 bytes liên tục với lưu trữ chưa khởi tạo (có thể xem mảng 40 ký tự 10 số nguyên, v.v.) array2: space 40 # Tạo chuỗi tên myString với khởi tạo “a string” myString: asciiz "a string" Lưu ý: Việc khai báo bỏ qua tên biến, liệu cấp phát bình thường Viêc truy xuất liệu không dùng tên mà dùng trực tiếp địa nơi liệu cấp phát Ví dụ: data word 13, 14 space 16 byte 2, 4, 1, Giả sử quy định cho data địa 0x10000, định địa theo byte, word bytes, word 0x10000 nhận giá trị 13, word 0x10004 nhận giá trị 14 Tiếp theo, word, tức 16 byte từ word 0x10008 đến 0x10014 dành cho cấp phát space Cuối word 0x10018 cấp phát với byte tương ứng 2, 4, 1, CuuDuongThanCong.com https://fb.com/tailieudientucntt GV Biên soạn: TTNNguyet-Khoa KTMT-UIT Tài liệu tham khảo http://logos.cs.uic.edu/366/notes/mips%20quick%20tutorial.htm CuuDuongThanCong.com https://fb.com/tailieudientucntt 2013 ... byte tương ứng 2, 4, 1, CuuDuongThanCong .com https://fb .com/ tailieudientucntt GV Biên soạn: TTNNguyet-Khoa KTMT-UIT Tài liệu tham khảo http://logos.cs.uic.edu/366/notes /mips %20 quick %20 tutorial.htm... chú/chú giải đặt sau dấu “#” Mẫu chương trình: CuuDuongThanCong .com https://fb .com/ tailieudientucntt GV Biên soạn: TTNNguyet-Khoa KTMT-UIT 20 13 Như để khai báo biến sau data Việc khai báo biến sử dụng... http://logos.cs.uic.edu/366/notes /mips %20 quick %20 tutorial.htm CuuDuongThanCong .com https://fb .com/ tailieudientucntt 20 13