Tham khảo tài liệu hướng dẫn thực hành mip asm trên pcspim, giáo dục - đào tạo, cao đẳng - đại học phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Hướng dẫn thực hành mip asm trên Pcspim1. Giới thiệu PCSPim PCSpim là chương trình chạy và mô phỏng chương trình hợp ngữ dành cho MIPS. Saukhi cài đặt PCSpim và chạy chương trình (Start -> All Programs -> PCSpim.exe), cửa sổchương trình PCSpim hiện lên như hình 1. Hình 1: Cửa sổ chương trình PCSpim Cửa sổ hiển thị chia làm 4 phần: Phần trên cùng hiển thị nội dung của 32 thanh ghi của CPU và FPU. Nội dung sẽ tự động cập nhật khi chương trình hợp ngữ chạy. • Phần dưới kế tiếp hiển thị mã của chương trình ở dạng hợp ngữ, dạng mã máy (số hex cột thứ 2 từ trái qua), và địa chỉ tương ứng của mỗi lệnh (cột đầu tiên bên trái). • Phần dưới kế tiếp hiển thị dữ liệu khai báo trong chương trình hợp ngữ (ví dụ: mảng hay chuỗi) và dữ liệu trong vùng ngăn xếp khi chương trình hợp ngữ được thực thi. • Phần dưới cùng hiển thị các thông tin phụ của SPIM, thông tin về lỗi nếu có. Chương trình hợp ngữ muốn chạy được phải được load trước. Đế load chương trình hợpngữ (ở dạng một file có đuôi mở rộng là *.asm hay *.s), thực hiện thao tác File menu ->Open -> chọn file chứa chương trình cần load. Để tạo file *.asm, chúng ta có thể dùng cácchương trình soạn thảo thô như Notepad, Notepad++, EditPlus… • Hình 2. Load file chứa chương trình nguồn. Sau khi chương trình hợp ngữ đã được load, chúng tacó thể thực hiện chạy chương trình và quan sát sự thayđối giá trị các thanh ghi, các ô nhớ, vị trí và lệnh đangđược thực thi … Các tác vụ chạy chương trình ở trongSimulator menu. Các bước để chạy và quan sát quá trình chạy củachương trình hợp ngữ trên PCSpim: • • Chọn Simulator -> Breakpoints… (hoặc nhấn Ctrl+B). Cửa sổ hiện ra điền vào textbox Address giá trị 0x00400000, chọn Add. Chọn Simulator -> Go (hoặc nhấn F5). Điền giá trị 0x00400000 vào texbox Starting Address, chọn OK. Giá trị của thanh ghi PC lúc này là 0x00400000. Chọn Simulator -> Single Step (hoặc nhấn F10) để chạy từng dòng lện trong chương trình. Chúng ta có thể quan sát kết quả thực hiện thông qua giá trị của các thanh ghi, các ô nhớ liên quan. • Cách khác để chạy chương trình nguồn: Simularor -> SetValue…, cửa sổ hiện ra, điềnvào textbox Register Name giá trị PC, điền vào textbox Value giá trị 0x00400000. Sau đónhấn F10 để chạy từng bước hay F5 để chạy cho đến khi gặp breakpoints.2. Các kiến thức cơ sở2.1 Đổi qua lại giữ số thập lục phân (hexadecimal) và số nhị phân (binary) Số thập lục phân được tạo thành từ 16 ký số: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f. Sốnhị phân tạo thành từ 2 ký số: 0, 1. Một ký số thập lục phân tương ứng với số nhị phân gồm 4ký số theo bảng sau: Ví dụ: Số thập lục phân 0xeca86420 chuyển sang số nhị phân: Số nhị phân 1 0011 0101 0111 1001 1011 1101 1111 chuyển sang số thập lục phân:2.2 Tổ chức bộ nhớ Bộ nhớ là một mảng 232 ô nhớ8-bit, bắt đầu từ địa chỉ 0x000000đến địa chỉ 0xFFFFFFFF. Ngườidùng chỉ có thể sử dụng vùng nhớtừ 0x00400000 đến 0x7FFFFFFF.Vùng nhớ người dùng chia làm 3phần: vùng chứa mã (text segment),vùng chứa dữ liệu (data segment)và vùng nhớ stack (stack segment). Bộ xử lý tương tác với bộ nhớ thông qua việc di chuyểndữ liệu giữa các ô nhớ và các thanh ghi. Có hai thao tác để thực hiện việc di chuyển dữ liệugiữa bộ nhớ và thanh ghi: load và store. Dữ liệu di chuyển được tổ chức thành nhóm một,hai hay bốn byte liên tục nhau theo chiều tăng địa chỉ ô nhớ. • • load: nhóm byte liên tục nhau theo chiều tăng địa chỉ ô nhớ bắt đầu từ địa chỉ được chỉ định được copy vào thanh ghi. store: nhóm dữ liệu 1, 2 byte thấp của thanh ghi hay cả 4 byte của thanh ghi được copy vào bộ nhớ từ địa chỉ được chỉ định.2.3 Tổ chức thanh ghi MIPS có tấc cả 32 thanh ghi 32-bit có thê sử dụng trong ngôn ngữ assembly được liệt kêtrong bảng sau: Bộ xử lý MIPS có bộ tính toán số học/luận lý (ALU) bên trong thực hiện các phép toánsố học và luận lý trên số nguyên 32-bit. Phép toán thựchiện bởi ALU gồm hai toán hạng. Một toán hạng là sốnguyên chứa trong thanh ghi, toán hạng còn lại có thểchứa trên thanh ghi hay là một phần của lệnh thực hiệnphép toán (hằng số). Kết quả của phép toán luôn đặt vàothanh ghi. 3. Tập lệnh của MIPS LệnhCộng số bù 2Cộng không dấuCộng với hằng số16 bit bù 2Cộng với hằng số16 bit không dấuAND từng bitAND từng bit vớihằng số 16 bitNhảy nếu bằngNhảy nếu lớn hơnhay bằng 0 Cú pháp add rd, rs, rt addu rd, rs, rt addi rd, rs, const addiu rd, rs, const and rd, rs, rt andi rd, rs, const ...