Thông tin tài liệu:
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.
Nội dung trích xuất từ tài liệu:
Kỹ thuật lập trình nhúng - Phần 2: Lập trình hợp ngữ trên Vi xử lý 80x860361- 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 2006Nộ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ỉ 2Nộ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ỉ 3Cơ 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 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 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 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 7Tổ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_valueVí dụ: ALPHA1 DB 4; ALPHA2 DW -2; 8Tổ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 9Tổ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 10Tổ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 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 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 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 14Các lệnh cơ bản Lệnh MOV Lệnh XCHG 15Các lệnh cơ bản (2) 16Các lệnh cơ bản (3) 17Cá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 18Cấ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 19Cấ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 ...