intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Tổ chức và cấu trúc máy tính: Biên dịch chương trình

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:15

3
lượt xem
1
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Tổ chức và cấu trúc máy tính: Biên dịch chương trình giới thiệu tổng quan về quá trình biên dịch, bao gồm hoạt động của trình biên dịch (compiler), trình biên dịch hợp ngữ (assembler) và khái niệm biên dịch ngược (reverse-engineering). Bài giảng cũng tích hợp các câu hỏi và bài tập giúp người học củng cố kiến thức và kỹ năng thực hành. Mời các bạn cùng tham khảo bài giảng để biết thêm chi tiết!

Chủ đề:
Lưu

Nội dung Text: Bài giảng Tổ chức và cấu trúc máy tính: Biên dịch chương trình

  1. TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT MÁY TÍNH IT010 – TỔ CHỨC VÀ CẤU TRÚC MÁY TÍNH BIÊN DỊCH CHƯƠNG TRÌNH
  2. Nội dung 1. Trình biên dịch (Compiler) Kiến trúc 2. Trình biên dịch hợp ngữ (Assembler) 3. Biên dịch ngược (Reverse-Engineering) Vi kiến trúc 4. Câu hỏi và Bài tập Luận lý Mạch số 2 IT010 – Tổ chức và Cấu trúc Máy tính
  3. Nội dung 1. Trình biên dịch (Compiler) Kiến trúc 2. Trình biên dịch hợp ngữ (Assembler) 3. Biên dịch ngược (Reverse-Engineering) Vi kiến trúc 4. Câu hỏi và Bài tập Luận lý Mạch số 3 IT010 – Tổ chức và Cấu trúc Máy tính
  4. Chương trình ngôn ngữ cấp cao (C, Java, ...) 1. Trình biên dịch (1/2) Trình biên dịch • Trình biên dịch có chức năng chuyển chương trình được viết bởi ngôn ngữ lập Chương trình hợp ngữ trình cấp cao thành chương trình hợp ngữ: (MIPS, ARM, ...) Ngôn ngữ lập trình cấp cao (C, Java, …) gần với suy nghĩ con người và độc lập phần cứng Trình biên dịch Hợp ngữ (MIPS, ARM, ...) là một ngôn ngữ hợp ngữ gợi nhớ của mã máy, phụ thuộc phần cứng Mã máy (có thể thực thi trên máy tính) 4 IT010 – Tổ chức và Cấu trúc Máy tính
  5. Chương trình ngôn ngữ cấp cao (C, Java, ...) 1. Trình biên dịch (2/2) – Ví dụ Trình biên dịch if(a == b) bne $a0, $a1, ELSE c = 2; addi $s0, $0, 2 Chương trình hợp ngữ else j ENDIF (MIPS, ARM, ...) c = -1; ELSE: Trình biên dịch d = a + c; addi $s0, $0, -1 hợp ngữ ENDIF: Mã máy (có thể thực thi add $s1, $a0, $s0 trên máy tính) 5 IT010 – Tổ chức và Cấu trúc Máy tính
  6. Quiz 1 • Biên dịch chương trình được viết bằng ngôn ngữ C sau sang hợp ngữ MIPS int arraylength = 5; for(int i = 0; i < arraylength; i++){ arrayvalue[i] = i; } 6 IT010 – Tổ chức và Cấu trúc Máy tính
  7. Nội dung 1. Trình biên dịch (Compiler) Kiến trúc 2. Trình biên dịch hợp ngữ (Assembler) 3. Biên dịch ngược (Reverse-Engineering) Vi kiến trúc 4. Câu hỏi và Bài tập Luận lý Mạch số 7 IT010 – Tổ chức và Cấu trúc Máy tính
  8. Chương trình ngôn ngữ cấp cao (C, Java, ...) 2. Trình biên dịch hợp ngữ (1/2) Trình biên dịch • Trình biên dịch hợp ngữ có chức năng chuyển chương trình được viết bởi hợp ngữ thành mã máy: Chương trình hợp ngữ Mã máy là các chuỗi bit (0, 1) có thể được thực thi (MIPS, ARM, ...) trên máy tính Trình biên dịch • Có thể sử dụng lệnh giả (psudoinstruction) để hợp ngữ viết chương trình hợp ngữ nhằm đơn giản hơn cho lập trình viên Mã máy (có thể thực thi Lệnh giả: Không phải lệnh thực sự của máy nhưng trên máy tính) trình biên dịch có thể chuyển thành lệnh thực sự 8 IT010 – Tổ chức và Cấu trúc Máy tính
  9. Chương trình ngôn ngữ cấp cao (C, Java, ...) 2. Trình biên dịch hợp ngữ (2/2) Trình biên dịch la $a0, exit 0x3c010040 li $a1, 50 0x3424001c Chương trình hợp ngữ add $t1, $t2, $t1 0x24050032 (MIPS, ARM, ...) addi $t1, $a0, 0 0x01494820 Trình biên dịch bne $a1, $t1, exit 0x20890000 hợp ngữ lw $a3, 4($t1) 0x14a90001 Mã máy (có thể thực thi exit: 0x8d270004 trên máy tính) … 9 IT010 – Tổ chức và Cấu trúc Máy tính
  10. Quiz 2 • Biên dịch chương trình được viết bằng addi $a0, $0, -4 hợp ngữ MIPS bên cạnh sang mã máy addi $a1, $0, -5 sub $s0, $a0, $a1 sw $s0, -8($0) lw $s1, -8($0) bne $s0, $s1, FAIL add $s2, $0, $0 j END FAIL: addi $s2, $0, -1 END: 10 IT010 – Tổ chức và Cấu trúc Máy tính
  11. Nội dung 1. Trình biên dịch (Compiler) Kiến trúc 2. Trình biên dịch hợp ngữ (Assembler) 3. Biên dịch ngược (Reverse-Engineering) Vi kiến trúc 4. Câu hỏi và Bài tập Luận lý Mạch số 11 IT010 – Tổ chức và Cấu trúc Máy tính
  12. Biểu diễn hexa HEX 2 BIN 3. Biên dịch ngược Biểu diễn nhị phân • Biên dịch ngược là quá trình khôi phục mã máy thành chương trình hợp ngữ Tìm định dạng lệnh và chia các trường 0x00af8020 0000 0000 1010 1111 1000 0000 0010 0000 R: op|rs|rt|rd|shamt|funct I: op|rs|rt|immediate 000000 00101 01111 10000 00000 100000 J: op|address add $16, $5, $15 hoặc add $s0, $a1, $t7 Biểu diễn gợi nhớ Lệnh hợp ngữ 12 IT010 – Tổ chức và Cấu trúc Máy tính
  13. Quiz 3 • Biên dịch ngược chương trình sau sang hợp ngữ MIPS Địa chỉ Mã máy 0x004000 0x3c010040 00 0x3424001c 0x004000 0x24050032 04 0x01494820 0x004000 0x20890000 08 0x14a90001 0x004000 0x8d270004 13 IT010 – 0c Tổ chức và Cấu trúc Máy tính
  14. Nội dung 1. Trình biên dịch (Compiler) Kiến trúc 2. Trình biên dịch hợp ngữ (Assembler) 3. Biên dịch ngược (Reverse-Engineering) Vi kiến trúc 4. Câu hỏi và Bài tập Luận lý Mạch số 14 IT010 – Tổ chức và Cấu trúc Máy tính
  15. 4. Câu hỏi và Bài tập • Biên dịch chương trình chương trình được viết bằng ngôn ngữ lập trình C sau sang hợp ngữ MIPS, int count = 1; while(count
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
115=>1