1. Trang chủ
  2. » Giáo án - Bài giảng

kiến trúc máy tính pham tuan son bài04bis giới thiệu hợp ngữsinhvienzone com

9 55 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 247,35 KB

Nội dung

Giới thiệu hợp ngữ Phạm Tuấn Sơn ptson@fit.hcmus.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt Hợp ngữ (Assembly Language) • Lệnh máy dãy bit mà xử lý hiểu để thực thi công việc Ví dụ – Lệnh máy MIPS-32bit gán $8 giá trị ghi $9 cộng $10 000000 01001 01010 01000 00000 100000 – Lệnh máy x86-32bit cộng giá trị ghi EAX vào ghi ECX 000000 11 000 001 • Như vậy, có nghĩa muốn yêu cầu xử lý phục vụ cần phải cung cấp dãy bit có ý nghĩa tương ứng (nói cách khác giao tiếp ngôn ngữ máy (machine language)) Hợp ngữ (assembly language) ngôn ngữ cấp thấp, cung cấp cách thể gợi nhớ cho lệnh máy – Để dễ dàng ghi nhớ mã lệnh, địa nơi lưu trữ liệu lưu trữ lệnh, người ta đặt tên cho chúng Đó mã giả (mnemonic), tên gọi (label, tên biến, tên chương trình con),… • Hợp ngữ cho xử lý dòng xử lý (cùng kiến trúc) – Ví dụ lệnh máy MIPS viết lại hợp ngữ cho MIPS-32bit: add $8, $9, $10 – Ví dụ lệnh máy x86 viết lại hợp ngữ cho x86-32bit: add ECX, EAX CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ chương trình hợp ngữ MIPS-32bit data # data segment str: asciiz ”hello asm” text # text segment globl main main: addi $v0, $0, # = print str syscall la $a0, str # load address of string syscall # execute the system call CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ chương trình hợp ngữ x86-32bit global _WinMain@16 extern _MessageBoxA@16 [section data] title db "Message",0 message db "Hellow World!",0 [section code] _WinMain@16: push push title push message push call _MessageBoxA@16 ret 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt Trình biên dịch hợp ngữ • Chương trình viết hợp ngữ phải dịch trình biên dịch hợp ngữ (assembler) trước máy tính hiểu • Với dòng vi xử lí (cùng kiến trúc) – có nghĩa với ngôn ngữ máy xác định (tập lệnh máy gần giống nhau) – tồn nhiều trình biên dịch hợp ngữ nhiều nhà cung cấp khác nhau, chạy hệ điều hành khác • Ví dụ: kiến trúc x86, dùng A86, GAS, TASM, MASM, NASM,… • Mỗi assembler đưa vào mở rộng riêng Vì vậy, chương trình viết hợp ngữ mang đặc trưng riêng phụ thuộc vào trình biên dịch mà tác giả sử dụng CuuDuongThanCong.com https://fb.com/tailieudientucntt Biên dịch thực thi chương trình hợp ngữ MIPS PCSpim Mã máy Địa lệnh nhớ CuuDuongThanCong.com https://fb.com/tailieudientucntt Một số loại assembler http://en.wikipedia.org/wiki/List_of_assemblers CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm Thứ bậc ngôn ngữ • Một máy tính hiểu số mệnh lệnh, vài kiểu liệu Nghĩa là, máy tính hiểu loại ngơn ngữ hạn chế, ngơn ngữ máy • Để gợi nhớ ngơn ngữ máy, ta có hợp ngữ ngơn ngữ cấp thấp • Các tốn thực tế phức tạp, sử dụng hợp ngữ để biểu diễn khó Do đó, cần xây dựng ngơn ngữ dễ sử dụng ngôn ngữ cấp cao, C, java, … • Dĩ nhiên, xử lý khơng thể hiểu lệnh kiểu liệu xây dựng ngơn ngữ cấp cao Do đó, kèm với ngơn ngữ cấp cao, ln có thành phần làm nhiệm vụ diễn giải thành ngôn ngữ máy tương ứng (trên xử lý), trình biên dịch CuuDuongThanCong.com https://fb.com/tailieudientucntt Mơ hình phân tầng ngơn ngữ máy tính temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; High Level Language Program (e.g., C) Compiler Assembly Language Program (e.g.,MIPS) Assembler Machine Language Program (MIPS) lw lw sw sw 0000 1010 1100 0101 1001 1111 0110 1000 $t0, 0($2) $t1, 4($2) $t1, 0($2) $t0, 4($2) 1100 0101 1010 0000 0110 1000 1111 1001 1010 0000 0101 1100 1111 1001 1000 0110 0101 1100 0000 1010 1000 0110 1001 1111 Machine Interpretation Hardware Architecture Description (e.g block diagrams) Architecture Implementation Logic Circuit Description (Circuit Schematic Diagram) CuuDuongThanCong.com https://fb.com/tailieudientucntt ... CuuDuongThanCong .com https://fb .com/ tailieudientucntt Trình biên dịch hợp ngữ • Chương trình viết hợp ngữ phải dịch trình biên dịch hợp ngữ (assembler) trước máy tính hiểu • Với dòng vi xử lí (cùng kiến trúc) ... chương trình con),… • Hợp ngữ cho xử lý dòng xử lý (cùng kiến trúc) – Ví dụ lệnh máy MIPS viết lại hợp ngữ cho MIPS-32bit: add $8, $9, $10 – Ví dụ lệnh máy x86 viết lại hợp ngữ cho x86-32bit:... niệm Thứ bậc ngôn ngữ • Một máy tính hiểu số mệnh lệnh, vài kiểu liệu Nghĩa là, máy tính hiểu loại ngơn ngữ hạn chế, ngơn ngữ máy • Để gợi nhớ ngơn ngữ máy, ta có hợp ngữ ngơn ngữ cấp thấp •

Ngày đăng: 29/01/2020, 14:21

TỪ KHÓA LIÊN QUAN