BÁO cáo TỔNG kết môn THỰC HÀNH KIẾN TRÚC máy TÍNH – CE119 mô phỏng các chương trình bên dưới và cho biết ý nghĩa của chương trình

49 10 0
BÁO cáo TỔNG kết môn THỰC HÀNH KIẾN TRÚC máy TÍNH – CE119  mô phỏng các chương trình bên dưới và cho biết ý nghĩa của chương trình

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT MÁY TÍNH BÁO CÁO TỔNG KẾT MƠN THỰC HÀNH KIẾN TRÚC MÁY TÍNH – CE119 HỌ VÀ TÊN: NGUYỄN TUẤN ANH MSSV: 21520580 LỚP: CE119.M21.1 GIẢNG VIÊN HƯỚNG DẪN: Trần Quốc Sơn TP HỒ CHÍ MINH – Tháng năm 2022 MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC BẢNG Thực hành buổi – Lab01 I I.1 Lý thuyết I.1.1 Bộ nhớ I.1.2 Biểu diễn thông tin I.1.3 Cấu trúc chương trình I.2 Thực hành I.2.1 Một số lệnh assembly MIPS I.2.2 Mơ chương trình bên cho biết ý nghĩa chương trình: I.3 Bài tập I.3.1 Bài tập 1a I.3.2 Bài tập 1b I.3.3 Bài tập 1c I.3.4 Bài tập 1d II Thực hành buổi – Lab02 11 II.1 Lý thuyết 11 II.1.1 Cấu trúc if, if-else 11 II.1.2 Cấu trúc switch/case 11 II.1.3 Cấu trúc vòng lặp 11 II.2 Thực hành 12 II.3 Bài tập 15 II.3.1 Bài tập 2a 15 II.3.2 Bài tập 2b 17 II.3.3 Bài tập 2c 20 III Thực hành buổi – Lab03 25 III.1 Lý thuyết 25 III.1.1 Kiến trúc ghi – ghi 25 III.1.2 Thao tác với mảng 25 III.1.3 Thao tác với trỏ 27 III.2 Thực hành trỏ 27 III.3 Bài tập 27 III.3.1 Bài tập 3a 27 III.3.2 Bài tập 3b 30 IV Thực hành buổi -Lab04 37 IV.1 Lý thuyết 37 IV.1.1 Thủ tục với MIPS 37 IV.1.2 Đệ quy 37 IV.2 Thực hành 37 IV.2.1 Thực hành với thủ tục 37 IV.2.2 Thực hành với đệ quy 37 IV.3 Bài tập 37 IV.3.1 Bài 3.1 37 IV.3.2 Bài 3.2 39 V Thực hành buổi – Lab05 43 V.1 Datapaths 43 DANH MỤC HÌNH ẢNH Hình - Kết tập 1a Hình - Biểu diễn dạng nhớ Hình - Kết tập 1c Hình - Kết tập 1d 10 Hình - Kết thực hành 2a.1 14 Hình - Kết thực hành 2a.2 14 Hình - Kết tập 2c 23 Hình - Kết tập 4a.1 39 Hình - Kết tập 4a.2 39 Hình 10 - Kết tập 4b.1 41 Hình 11 - Kết tập 4b.2 41 Hình 12 - Lệnh add 43 Hình 13 - Lệnh addi 44 Hình 14 - Lệnh sub 44 Hình 15 - Lệnh lw 45 Hình 16 - Lệnh sw 45 Hình 17 - Lệnh j 46 Hình 18 - Lệnh slt 47 Hình 19 - Lệnh beq 47 Hình 20 - Lệnh bne 48 Hình 21 - Lệnh sll 48 DANH MỤC BẢNG Bảng - Một số lênh assembly MIPS Bảng - Một số chương trình Bảng - Bài tập 1a Bảng - Bài tập 1c Bảng - Bài tập 1d 10 Bảng - So sánh ngôn ngữ 12 Bảng - Bài thực hành 2a 13 Bảng - Bài thực hành 2b 15 Bảng -Bài tập 2a 17 Bảng 10 - Bài tập 2b 20 Bảng 11 - Bài tập 2c 23 Bảng 12 - Thao tác với mảng 25 Bảng 13 - Chương trình thao tác với mảng 27 Bảng 14 - Bài tập 3a 30 Bảng 15 - Bài tập 3b 35 Bảng 16 - Bài tập 4a 38 Bảng 17 - Bài tập 4b 40 I Thực hành buổi – Lab01 I.1 Lý thuyết I.1.1 Bộ nhớ  Lưu liệu theo byte, half, word  Một kí tự lưu byte  Một số nguyên lưu word  Một lệnh lưu word I.1.2 Biểu diễn thông tin  Ký số: o Hệ thập phân: Viết bình thường(17) o Hệ thập lục phân: Thêm tiền tố 0x(0x11)  Ký tự: Đặt cặp nháy đơn ‘b’  Chuỗi: Đặt cặp nháy kép “Embedded System” I.1.3 Cấu trúc chương trình data #Khai báo liệu sau hàng #Khai báo liệu text #Viết chương trinh sau hàng #Nhãn thể bắt đầu chương trình Main: #Viết chương trinh # Comment đầu ký tự # I.2 Thực hành I.2.1 Một số lệnh assembly MIPS Sinh viên tìm hiểu tài liệu “Một số lệnh assembly MIPS bản” mô việc thực thi lệnh cho biết chức lệnh sau: Lệnh Add Addi Addu Addiu Sub Subu Mô add $s1, $s2, $s3 addi $s1, $s2, x addu $s1, $s2, $s3 addiu $s1, $s2, x sub $s1, $s2, $s3 subu $s1, $s2, $s3 Ý nghĩa $s1 = $s2 + $s3 $s1 = $s2 + x $s1 = $s2 + $s3 (không số tràn) $s1 = $s2 + x (không số tràn) $s1 = $s2 - $s3 $s1 = $s2 - $s3 (không số tràn) And Andi Or Nor Lw Sw Slt Slti Sltu and $s1, $s2, $s3 andi $s1, $s2, x or $s1, $s2, $s3 nor $s1, $s2, $s3 lw $s1, x($s2) sw $s1, x($s2) slt $s1, $s2, $s3 slti $s1 , $s2, x sltu $s1, $s2, $s3 Sltiu sltiu $s1 , $s2, x Syscall li $v0,1 syscall $s1 = $s2 & $s3 $s1 = $s2 & $s1 = $s2 | $s3 $s1 = ⁓($s2 | $s3) $s1 = Memory[$s2 + x] Memory[$s2 + x] = $s1 $s2 $s1 = | $s1 = (có dấu) $s2 < x -> $s1 = | $s2 = (có dấu) $s2 $s1 = | $s1 = (không dấu ) $s2 < x -> $s1 = | $s2 = ( không dấu) Hiển thị kết định Bảng 1- Một số lênh assembly MIPS bản I.2.2 Mơ chương trình bên cho biết ý nghĩa chương trình: Chương trình data var1: word 23 text start: lw $t0, var1 li $t1, sw $t1, var1 data array1: space 12 text start: la $t0, array1 li $t1, sw $t1, ($t0) li $t1, 13 sw $t1, 4($t0) li $t1, -7 sw $t1, 8($t0) li $v0, syscall data string1: asciiz “Print this \n” text main: li $v0, la $a0,string1 Ý nghĩa Tạo biến var1 có kiểu word có độ lớn 23 Lưu giá trị var1[0] vào ghi t0 Gán cho t1 = Lưu t1 vào var1[0] => var1[0] = Cấp 12 bytes cho array1 Lưu array1 vào t0 Gán t1 = t0[0] = Gán t1 = 13 t0[1] = 12 Gán t1 = -7 t0[2] = -7 Gán v0 = Đọc số nguyên vào máy Khai báo chuỗi “Print this” v0 = (in chuỗi) Lưu string1 vào a0 syscall In chuỗi hình Bảng 2- Một số chương trình bản I.3 Bài tập I.3.1 Bài tập 1a Khai báo xuất cửa sổ I/O chuỗi có giá trị sau: - Chuỗi 1: Chao ban! Ban la sinh vien nam thu may? - Chuỗi 2: Hihi, minh la sinh vien nam thu data string1: asciiz "Chao ban ! Ban la sinh vien nam thu may? \n" Khai báo chuỗi Khai báo chuỗi string2: asciiz "Hihi, minh la sinh vien nam thu \n" text main: li $v0, Khởi tạo ghi v0 có giá trị =4 la $a0, string1 a0 = string1 syscall Xuất chuỗi li $v0,4 la $a0, string2 a0 = string syscall Xuất chuỗi Bảng - Bài tập 1a Hình - Kết quả tập 1a I.3.2 Bài tập 1b Biểu diễn chuỗi nhớ gì? Hình - Biểu diễn dạng nhớ I.3.3 Bài tập 1c Xuất lại chuỗi nhập .data string1: Tạo chuỗi string1 với độ lớn 100 bytes space 100 text main: Khởi tạo ghi v0, gọi lệnh đọc chuỗi li $v0, la $a0, string1 a0 = string1 li $a1, 100 a1= 100 syscall Nhập chuỗi li $v0, syscall Xuất chuỗi Bảng 4-Bài tập 1c Hình 3- Kết quả tập 1c I.3.4 Bài tập 1d Nhập vào số nguyên sau xuất tổng số nguyên này: Main: li $v0,5 Nhập số thứ syscall Lưu số thứ vào t0 add $t0,$0,$v0 li $v0,5 syscall Nhập số thứ add $t1,$0,$v0 Lưu số thứ vào t1 li $v0,1 add $t2,$t0,$t1 Lưu tổng t0 t1 vào t2 add $a0,$t2,$0 syscall Xuất t2 slt $t5, $t4, $t0 Nếu t4 < t0 t5 =1 beq $t5,0 , main Nếu t5 = nhảy đến main lw $t6,0($t4) addi $a0, $t6, li $v0, syscall Xuất phần tử trpng mảng la $a0, space li $v0, Xuất khoảng trắng syscall Nhảy đến phần tử addi $t4, $t4, j outB main: li $s0, s0 = add $s3,$s3,$s1 Lưu giá trị mảng A pre: la $a0, str5 li $v0, syscall In chuỗi str5 loop: beq $s0,10, exit Nếu s0 = 10 addi $t8, $s0, -2 t8 = s0 -2 sll $t8,$t8,2 t8 = t8*4 add $t8,$t8,$s1 t8 = t8+s1 lw $t9, 0($t8) Lưu địa t8 vào t9 34 sll $t9,$t9, t9= t9*4 add $t9,$t9,$s2 t9 = t9 + s2 lw $t7,0($t9) Lưu địa t9 vào t7 sw $s3,0($t9) Lưu vào mảng A addi $a0, $t7, li $v0, syscall Xuất giá trị t7 la $a0, space li $v0, syscall In space addi $s0,$s0,1 Lặp addi $s3, $s3,4 Trỏ đến địa mảng A j loop exit: Bảng 15-Bài tập 3b 35 36 IV Thực hành buổi -Lab04 IV.1 Lý thuyết IV.1.1 Thủ tục với MIPS Chuẩn bị đối số Lưu trạng thái Nhảy tới thủ tục Thực thi thủ tục Chuẩn bị kết Quay chương trình chính(tại lệnh kế tiếp) Quy ước:  Thanh ghi đối số: $a0 -$a3  Thanh ghi kết quả: $v0,$v1  Thanh ghi tạm: $t0- $t9  Thanh ghi lưu trữ: $s0 – $s7  Thanh ghi địa trả về: $ra  Thanh ghi trỏ ngăn xếp: $sp IV.1.2 Đệ quy IV.2 Thực hành IV.2.1 Thực hành với thủ tục IV.2.2 Thực hành với đệ quy IV.3 Bài tập IV.3.1 Bài 3.1 data string1: asciiz "nhap so nguyen n: " string2: asciiz "n!= " text Khai báo chuỗi string1 Khai báo chuỗi string2 main: li $v0, la $a0, string1 syscall In chuỗi string1 li $v0, syscall Nhập n từ bàn phím addi $t4, $v0, addi $t4, $t4, addi $t0, $0, Khởi tạo $t4=$v0 (n) Khởi tạo $t4=$t4+1 (n+1) Khởi tạo $t0=1 (int i=1) 37 addi $t1, $0, jal Giaithua Khởi tạo $t1=1 (tich=1) Nhảy tới thủ tục Giaithua li $v0, la $a0, string2 syscall In chuỗi string2 li $v0, add $a0, $t1, $zero syscall In kết n! Dừng chương trình j end Giaithua: addi $sp, $sp, -4 sw $ra, ($sp) slt $t3, $t0, $t4 beq $t3, 0, exit mul $t1, $t1, $t0 addi $t0, $t0, jal Giaithua Mở ô nhớ stack Lưu địa ghi $ra vào stack Nếu i $s1 = | $s2 = ( không dấu) Hiển thị kết định Bảng 1- Một số lênh assembly MIPS bản I.2.2 Mơ chương trình bên cho biết ý nghĩa chương trình: Chương trình data var1: word 23 text start:... đầu chương trình Main: #Viết chương trinh # Comment đầu ký tự # I.2 Thực hành I.2.1 Một số lệnh assembly MIPS Sinh viên tìm hiểu tài liệu “Một số lệnh assembly MIPS bản” mô việc thực thi lệnh cho

Ngày đăng: 20/06/2022, 06:01

Tài liệu cùng người dùng

Tài liệu liên quan