Lập trình mips

      18

Hợp ngữ (Assembly) là ngữ điệu lập trình sẵn bậc rẻ, nó có tập các trường đoản cú khóa với trường đoản cú gợi nhớcực kỳ ngay gần cùng với ngôn ngữ đồ vật (machine code).Mỗi phong cách xây dựng vi cách xử trí đều phải có tập lệnh (instruction set) riêng rẽ, cho nên sẽ có được thích hợp ngữ riêng rẽ dànhcho phong cách thiết kế đó. Ở đây, ta tập trung phân tích về hòa hợp ngữ dành riêng cho phong cách thiết kế MIPS. Môingôi trường lập trình sẵn được áp dụng là lịch trình MARS. MARS là môi trường xung quanh lập trình trả lậpđỡ đần ta viết, biên dịch và chạy phù hợp ngữ MIPS bên trên những vật dụng x86....

Bạn đang xem: Lập trình mips


*

HDTH Kiến trúc máy tính và Hợp Ngữ Sở môn MMTVT - HCMUS LẬP. TRÌNH HỢPhường NGỮ MIPSMục đích • Làm thân quen cùng với thích hợp ngữ MIPS. • Biết cách viết, biên dịch với chạy lịch trình phù hợp ngữ MIPS cùng với điều khoản MARS.Tóm tắt lý thuyếtHợp ngữ (Assembly) là ngôn ngữ thiết kế bậc tốt, nó tất cả tập những tự khóa và tự gợi nhớkhôn cùng ngay gần với ngôn ngữ sản phẩm công nghệ (machine code).Mỗi kiến trúc vi xử trí đều sở hữu tập lệnh (instruction set) riêng biệt, do đó sẽ sở hữu được hợp ngữ riêng biệt dànhmang đến phong cách xây dựng đó. Ở phía trên, ta triệu tập nghiên cứu và phân tích về phù hợp ngữ dành cho kiến trúc MIPS. Môingôi trường lập trình sẵn được thực hiện là công tác MARS. MARS là môi trường xung quanh xây dựng đưa lậpđỡ đần ta viết, biên dịch cùng chạy hợp ngữ MIPS trên các lắp thêm x86.  Cấu trúc của một công tác hợp ngữ MIPS # knhì báo thay đổi sau thông tư này .data... # viết những lệnh sau thông tư này .text # điểm bước đầu của cmùi hương trìnhmain:…  Cách knhì báo biếntên_biến: kiểu_lưu_trữ giá_trịCác vẻ bên ngoài lưu trữ hỗ trợ: .word, .byte, .asciiz .spaceLưu ý: tên_biến (nhãn) đề xuất theo sau vì chưng vết nhì chấm (:)Ví dụ: # số nguyên 4-byte có mức giá trị khởi chế tạo ra là 3var1: .word 3 ’a’,’b’ # mảng 2 thành phần, khởi chế tạo ra là a cùng bvar2: .byte # cấp 40-byte bộ lưu trữ, không đượ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 tkhô giòn 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 tmê mẩn số của hàm$4-$7 $a0-$a3 Thanh khô ghi nhất thời (ko giữ quý giá trong quy trình gọi hàm)$8-$15 $t0-$t7 Thanh hao ghi tàng trữ (giữ lại quý giá trong veo quá trình Hotline hàm)$16-$23 $s0-$s7 Thanh ghi tạm$24-$25 $t8-$t9 Dự trữ mang đến 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 $raTkhô giòn ghi HI và LOThao tác nhân của MIPS có công dụng chứa trong 2 tkhô nóng ghi HI và LO. Bit 0-31 trực thuộc LO và32-63 nằm trong HI.Thanh hao có ấn tượng phẩy độngMIPS áp dụng 32 tkhô cứng có ấn tượng phẩy đụng để màn trình diễn độ đúng chuẩn đối kháng của số thực. Cáctkhô cứng ghi này có tên là : $f0 – $f31.Để biểu diễn độ đúng mực kép (double precision) thì MIPS áp dụng sự ghép đôi của 2 thanhghi gồm độ chính xác solo. 2HDTH Kiến trúc máy tính xách tay và Hợp Ngữ Sở môn MMTVT - HCMUS  Cú pháp tổng quát lệnh MIPS , , − r1: tkhô nóng ghi cất công dụng − r2: tkhô hanh ghi − r3: tkhô hanh ghi hoặc hằng số  Một số lệnh MIPS cơ bảnGhi chú: • Rd: thanh hao ghi đích, Rs, Rt: tkhô cứng ghi đần độn ồn. • những lệnh màu xanh da trời là những lệnh mang (pseuvị instructions).Lệnh Load / Store nap / luuĐây là những lệnh nhất được phnghiền truy nã 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ộ lưu trữ RAM vào tkhô cứng ghilw Rd, RAM_src Chxay 1 byte tại địa điểm vào bộ lưu trữ RAM vào byte phải chăng của thanhlb Rd, RAM_src ghi Lưu 1 word trong tkhô nóng ghi vào vị trí vào bộ lưu trữ RAMsw Rs, RAM_dest Lưu 1 byte phải chăng trong tkhô hanh ghi vào địa chỉ vào bộ nhớ RAMsb Rs, RAM_dest Khởi tạo nên tkhô giòn ghi với giá trịli Rd, value Khởi chế tạo ra tkhô giòn ghi với ảnh hưởng của nhãnla Rd, labelNhóm lệnh số học:Cú pháp Ý nghĩa Rd = Rs + Rt (hiệu quả bao gồm dấu)add Rd, Rs, Rtaddi Rd, Rs, imilimet Rd = Rs + imm(hang so) Rd = Rs + Rt (công dụng ko dấu)addu Rd, Rs, Rtsub Rd, Rs, Rt Rd = Rs - Rt Rd = Rs - Rt (tác dụng 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 sầu Rd, Rs Rd = Rs 3HDTH Kiến trúc máy tính & Hợp Ngữ Sở môn MMTVT - HCMUSNhóm lệnh nhảyCú pháp Ý nghĩa Nhảy ko ĐK mang lại nhãn "label"j label Lưu hệ trọng trsống về vào $ra và dancing đến nhãn "label" (dùng lúc gọi hàm)jal label Nhảy mang đến xúc tiến trong thanh hao ghi Rs (dùng để làm trsinh sống về từ lời Hotline hàm)jr Rs Nhảy cho nhãn "label" trường hợp Rs >= 0bgez Rs, label Nhảy mang lại nhãn "label" nếu Rs > 0bgtz Rs, label Nhảy cho nhãn "label" giả dụ Rs i Nhảy cho nhãn "label" giả dụ Rs != Rtbne Rs, Rt, labelSystem Call:Lệnh syscall làm cho treo sự tiến hành của lịch trình với gửi quyền điều khiển cho HĐH(được trả lập vì MARS). Sau kia, HĐH đang xem cực hiếm thanh khô ghi $v0 để khẳng định xemcông tác mong nó làm việc gì.Bảng những system callDịch vụ Giá trị vào $v0 Đối số Kết quả Y nghiaprint_int 1 $a0 = integer Xuat so nguyenprint_float 2 $f12 = float Xuat so thucprint_double 3 $f12 = double Xuat chuoiprint_string 4 $a0 = string Xuat chuoiprint_character 11 $a0 = char Xuat ky turead_character 12 Nhap ky tu char (trong $v0)read_int 5 Nhap so nguyen integer (vào $v0)read_float 6 Nhap so thuc float (vào $f0)read_double 7 Nhap so thuc double (trong $f0) dairead_string 8 $a0 = buffer, $a1 = length Nhap chuoisbrk 9 $a0 = amount address (trong $v0)exit 10 4HDTH Kiến trúc máy tính xách tay & Hợp Ngữ Sở môn MMTVT - HCMUSVí dụ: .data # khai báo data segmentstr: .asciiz “hello world” .text .globl mainmain: # nhãn main đến vi xử lý biết địa điểm tiến hành lệnh đầu tiên # download tương tác của nhãn str vào thanh khô ghi $a0 la $a0, str addi $v0, $zero, 4 # đưa quý hiếm 4 vào thanh khô ghi $v0 sysHotline addi $v0, $zero, 10 sysCall  StackStack (ngnạp năng lượng xếp) là vùng nhớ đặc biệt được truy vấn theo cơchế “vào trước ra sau” (LIFO – Last In First Out), nghĩa là d ữliệu nào chuyển vào sau sẽ được lấy ra trước.Hình mặt là kết cấu staông chồng vào bộ nhớ lưu trữ, từng thành phần bao gồm kíchthước một word (32-bit).Thanh hao ghi $sp vào vai trò là bé trỏ ngăn uống xếp (stackpointer), luôn chỉ cho đỉnh của stachồng. Stack phát triển theochiều bớt của liên can vùng nhớ (đỉnh của staông chồng luôn gồm liên hệ thấp).Hai làm việc cơ bản vào staông xã là push (đưa một phần tử vào stack) cùng pop (rước một phần tửthoát ra khỏi stack). Cơ chế nhỏng sau: • push: bớt $sp đi 4, lưu giá trị vào ô lưu giữ mà lại $sp chỉ mang đến. Ví dụ: push vào stachồng cực hiếm trong $t0 subu $sp, $sp, 4 sw $t0, ($sp) • pop: copy giá trị trong vùng lưu giữ được chỉ đến vì chưng $sp, cùng 4 vào $sp. Ví dụ: pop từ bỏ staông xã ra $t0 lw $t0, ($sp) addu $sp, $sp, 4  Thủ tục 5HDTH Kiến trúc máy tính xách tay & Hợp Ngữ Sở môn MMTVT - HCMUSMIPS cung ứng một số thanh khô ghi nhằm lưu trữ những tài liệu ship hàng cho thủ tục: • Đối số $a0, $a1, $a2, $a3 • Kết trái trả về $v0, $v1 • Biến toàn cục $s0, $s1, ...

Xem thêm: Xem Phim Diệp Vấn 3 Bản Đẹp, Xem Phim Võ Thuật Diệp Vấn 3

, $s7 • Địa chỉ quay về $raCấu trúc của một thủ tục:Đầu thủ tục entry_label: # knhị báo size cho staông xã addi $sp,$sp, -frameform size # chứa can hệ trả về của giấy tờ thủ tục vào $ra vào ngăn xếp sw $ra, framesize-4($sp) Lưu lâm thời các tkhô cứng ghi không giống (nếu cần)Thân thủ tục ... (có thể Điện thoại tư vấn những giấy tờ thủ tục không giống...)Cuối giấy tờ thủ tục khôi phục những tkhô nóng ghi khác (trường hợp cần) # rước địa chỉ trả về ra $ra lw $ra, framesize-4($sp) addi $sp,$sp, frameform size jr $raHotline thủ tục: jal entry_label  Giới thiệu công tác MARS 6HDTH Kiến trúc máy vi tính và Hợp Ngữ Bộ môn MMTVT - HCMUS1. Cho biết ta sẽ sinh hoạt chế độ soạn thảo2,3. Tkhô giòn menu và thanh khí cụ hỗ trợ những tính năng của lịch trình.4. Nơi soạn thảo chương trình phù hợp ngữ MIPS Cho biết ta sẽ làm việc chính sách thực thi1. Khung triển khai cho ta biết ảnh hưởng lệnh (Address), mã vật dụng (Code), lệnh thích hợp ngữ MIPS2. (Basic), chiếc lệnh vào file source tương xứng (Source). Các giá trị vào bộ lưu trữ, có thể chỉnh sửa được.3. Cho phxay ta chuyên chú bộ nhớ lưu trữ (2 nút ít mũi tên) cùng đi mang đến những phân đoạn bộ nhớ thông4. 7HDTH Kiến trúc máy tính & Hợp Ngữ Sở môn MMTVT - HCMUS dụng. Bật, tắt câu hỏi xem xúc tiến cùng giá trị ô nhớ sống dạng thập phân (decimal) giỏi thập lục5. phân (hexa). Địa chỉ của các knhị báo nhãn cùng dữ liệu.6. Các quý hiếm vào tkhô giòn ghi, rất có thể chỉnh sửa được.7. Điểm đặt breakpoint cần sử dụng mang đến việc debug chương trình.8. thay đổi vận tốc chạy lịch trình, cho phép người dùng có thể xem mọi gì diễn9. ra vậy bởi vì chương trình xong ngay.Tài liệu tsi mê khảo<1> http://chortle.ccsu.edu/AssemblyTutorial/index.html - Programmed Introduction to lớn MIPSAssembly Language, Bradley Kjell<2> http://www.scribd.com/doc/3577342/MIPS-Assembly-Language-Programming - MIPSAssembly Language Programming, Robert Britton.

Xem thêm: ‎My Talking Tom 2 Trên App Store, ‎My Talking Angela Trên App Store

<3> http://dkrizanc.web.wesleyan.edu/courses/231/07/mips-spyên.pdf - MIPS AssemblyLanguage Programming, Daniel J. Ellard.<4> http://logos.cs.uic.edu/366/notes/MIPS%20Quick%20Tutorial.htm - MIPS Architecture andAssembly Language Overview<5> http://www.cs.cornell.edu/~tomf/notes/cps104/mips.html - MIPS ExamplesBài tậpHãy viết lịch trình hợp ngữ MIPS (không dùng lệnh giả) nhằm xử lý những bài bác toán sau: Nhập vào một trong những chuỗi, xuất lại chuỗi đó ra màn hình (echo).1.Ví dụ:Nhap mot chuoi: HelloChuoi da nhap: Hello Nhập vào một ký từ, xuất ra cam kết từ ngay thức thì trước cùng tức thì sau.2.Ví dụ:Nhap mot ky tu: bKy tu lien truoc: aKy tu lien sau: c Nhập vào trong 1 ký từ hoa, in ra cam kết trường đoản cú thường xuyên.3.Ví dụ:Nhap mot ky tu: AKy tu thuong: a Nhập từ bỏ keyboard 2 số nguim, tính tổng, hiệu, tích, tmùi hương của 2 số.4.Ví dụ: 8HDTH Kiến trúc máy tính & Hợp Ngữ Sở môn MMTVT - HCMUSNhap so thu nhat: 7Nhap so thu hai: 4Tong: 11Hieu: 3Tich: 28Thuong: 1 du 3 Nhập lệ 2 số nguyên, xuất ra phnghiền đối chiếu giữa 2 số.5.Ví dụ:Nhap so thu nhat: 6Nhap so thu hai: 9So lon hon la: 9 Nhập một ký kết tự từ bỏ keyboard. Nếu ký kết trường đoản cú vừa nhập trực thuộc <0-9>, , thì xuất ra6. screen cam kết từ đó và các loại của ký kết từ bỏ kia (số, chữ thường, chữ hoa).Ví dụ:Nhập vào một trong những ký kết tự: 5Ký tự vừa nhập: 5 là sốNhập vào một ký kết từ bỏ : fKý từ bỏ vừa nhập : f là chữ thườngNhập vào một trong những ký kết trường đoản cú : DKý trường đoản cú vừa nhập : D là chữ hoa Nhập một mảng các số nguyên ổn n bộ phận, xuất mảng kia ra màn hình.7.Ví dụ:Nhap có cac so nguyen: 1 2 3 4 5Mang vua nhap: 1 2 3 4 5 Nhập vào một vài nguyên n, tính tổng từ là một đến n.8.Ví dụ:Nhap mot so: 4Tong tu 1 den 4 la: 10 Nhập vào trong 1 chuỗi, xuất ra chuỗi ngược.9.Ví dụ:Nhap vao mot chuoi: helloChuoi nguoc la: olleh 9

Chuyên mục: Tin Tức

Link vao M88