Kỹ thuật lập trình nhúng - Phần 2: Lập trình hợp ngữ trên Vi xử lý 80x86

Chia sẻ: Dinh Long | Ngày: | Loại File: PPT | Số trang:61

0
212
lượt xem
98
download

Kỹ thuật lập trình nhúng - Phần 2: Lập trình hợp ngữ trên Vi xử lý 80x86

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tổng quan: Ngôn ngữ cấp thấp. Macro Assembler ( MASM) - CPU 8086. Tập tin hợp ngữ nguồn (.ASM). Các phát biểu lệnh hợp ngữ (assembly statement). Assembly Language Instruction. Xác định hành động CPU thực hiện. Dịch sang một lệnh mã máy tương ứng. Assembler directive. Khai báo hướng dẫn biên dịch.

Chủ đề:
Lưu

Nội dung Text: Kỹ thuật lập trình nhúng - Phần 2: Lập trình hợp ngữ trên Vi xử lý 80x86

  1. 0361- Kỹ thuật lập trình nhúng Lập trình hợp ngữ trên Vi xử lý 80x86 Phạm Quốc Thịnh Advanced Topics in Software Engineering 1 Department of Electronics & Telecommunications Spring 2006
  2. Nội dung  Cơ bản về hợp ngữ  Trạng thái của vi xử lý và các thanh ghi cờ  Các lệnh điều khiển(lập và rẽ nhánh)  Các lệnh logic, dịch và quay  Ngăn xếp và thủ tục  Các lệnh nhân và chia  Mảng và các chế độ định địa chỉ 2
  3. Nội dung  Cơ bản về hợp ngữ  Trạng thái của vi xử lý và các thanh ghi cờ  Các lệnh điều khiển(lập và rẽ nhánh)  Các lệnh logic, dịch và quay  Ngăn xếp và thủ tục  Các lệnh nhân và chia  Mảng và các chế độ định địa chỉ 3
  4. Cơ bản về hợp ngữ  Tổng quan  Cú pháp lệnh hợp ngữ  Các lệnh cơ bản  Cấu trúc của một chương trình hợp ngữ  Các lệnh vào ra  Chương trình đầu tiên 4
  5. Tổng quan  Ngôn ngữ cấp thấp  Macro Assembler ( MASM) - CPU 8086.  Tập tin hợp ngữ nguồn (.ASM) • Các phát biểu lệnh hợp ngữ (assembly statement) – Assembly Language Instruction » Xác định hành động CPU thực hiện » Dịch sang một lệnh mã máy tương ứng – Assembler directive » Khai báo hướng dẫn biên dịch 5
  6. Tổng quan (2)  Các thành phần – Bộ ký tự: • 26 chữ cái thường và hoa a-z, A-Z • 10 kí tự số 0-9 • Các kí tự dấu: –?@_$:.[](){}+-*/&%!‘~“|\=#^;, • Kí tự ngăn cách – Khoảng trắng – Tab • Kí tự xuống dòng: kết thúc một lệnh • Không phân biệt hoa thường 6
  7. Tổng quan (3)  Từ vựng: – Tên: A-Z a-z 0-9 . ? @ _ $ • Duy nhất  Qui tắc đặt tên?? – Từ khóa • Bắt buộc  Kiểu số liệu: – Số: • Thập phân 110d (mặc định) • Nhị phân 01111b • Hexa 0FF01h – Kí tự: • Giữa hai dấu ngoặc đơn hoặc kép • Mã ASCII  ‘A’ == 41h 7
  8. Tổng quan (4) Các toán hạng giả dùng để định nghĩa các loại số liệu  Biến byte, biến từ: chỉ dẫn của asm định nghĩa biến byte có dạng sau: Name DB initial_value Name DW initial_value Ví dụ: ALPHA1 DB 4; ALPHA2 DW -2; 8
  9. Tổng quan (5)  Mảng (Arrays): trong ASM mảng là một loạt các byte nhớ hoặc từ nhớ liên tiếp nhau  Ví dụ:  Nếu asm gán địa chỉ offset 0200h cho mảng B_ARRAY thì nội dung bộ nhớ sẽ như sau 9
  10. Tổng quan (6)  Chuỗi các ký tự (character strings)  Bên trong một chuỗi asm phân biệt chữ hoa chữ thường  Cũng có thể định nghĩa 10
  11. Tổng quan (7)  Các hằng (constants): trong chương trình các hằng số được đặt tên nhơ chỉ dẫn EQU  Cú pháp: Tên EQU constants  LF EQU 0AH MOV DL,0AH MOV DL,LF 11
  12. Cú pháp lệnh hợp ngữ  Name: Operation Operand(s) ;Comment [Nhãn] Tên gợi nhớ Toán hạng(s) ; Ghi chú o Trường tên(nhãn): dùng cho nhãn lệnh, tên thủ tục và tên biến. Asm sẽ chuyển tên thành địa chỉ bộ nhớ. Tên có thể dài từ 1-31 ký tự. 12
  13. Cú pháp lệnh hợp ngữ (2)  Name: Operation Operand(s) ;Comment [Nhãn] Toán tử Toán hạng(s) ; Ghi chú o Trường toán tử: Chứa ký hiệu của mã phép toán. Ví dụ: ADD, INC, DEC, INT… o Trường toán hạng: chỉ ra số liệu tham gia trong lệnh đó Trong các lệnh 2 toán hạng: toán hạng đầu là toán hạng đích, toán hạng thứ hai là toán hạng nguồn(không thay đổi khi thực hiện lệnh) 13
  14. Cú pháp lệnh hợp ngữ (3)  Name: Operation Operand(s) ;Comment [Nhãn] Toán tử Toán hạng(s) ; Ghi chú o Trường chú thích (ghi chú): lập trình viên thường chú thích để thuyết minh về câu lệnh. Người ta dùng dấu ; để bắt đầu chú thích 14
  15. Các lệnh cơ bản  Lệnh MOV  Lệnh XCHG 15
  16. Các lệnh cơ bản (2) 16
  17. Các lệnh cơ bản (3) 17
  18. Các lệnh cơ bản (4)  Lệnh NEG: lấy bù 2 của một của một thanh ghi hoặc vị trí nhớ  Cú pháp: NEG destination  Ví dụ: NEG AX Giả sử AX=0002h sau khi thực hiện lệnh AX=FFFEh 18
  19. Cấu trúc của một chương trình hợp ngữ  Mỗi chương trình ngôn ngữ máy bao gồm mã (code), số liệu (data) và ngăn xếp (stack). Mỗi một phần chiếm một đoạn bộ nhớ  Các kiểu bộ nhớ: được quy định bởi chỉ dẫn với cú pháp: .MODEL memory_model 19
  20. Cấu trúc của một chương trình hợp ngữ (2)  Đoạn số liệu: chứa các khai báo biến, hằng…  Cú pháp: .DATA ;Khai báo tên các biến, hằng và mảng  Ví dụ: 20
Đồng bộ tài khoản