Chương 3: Tập lệnh của Vi Xử Lý
Khái niệm lệnh
Định dạng lệnh - Instruction Format
Slide 4
Slide 5
Slide 6
Slide 7
Các loại toán hạng -Operand types
Effective Address
Các chế độ địa chỉ- addressing mode
Chế độ địa chỉ tức thời – Immediate Addressing
Chế độ địa chỉ thanh ghi - Register
Chế độ địa chỉ trực tiếp Direct Addressing
Slide 14
Chế độ địa chỉ gián tiếp thanh ghi Register Indirect Addressing
Chế độ địa chỉ tương đối cơ sở Based Relative Addressing
Chế độ địa chỉ chỉ số tương đối Indexed Relative Addressing
Chế độ địa chỉ cơ sở chỉ số tương đối Based Indexed Relative Addressing
Ví dụ về các chế độ địa chỉ Addressing Mode Examples
Slide 20
Chế độ địa chỉ cổng I/O Port Addressing
Tập lệnh của 80286
Các lệnh truyền dữ liệu - MOVE
Các toán hạng sử dụng trong lệnh MOV
Các lệnh truyền dữ liệu - EXCHANGE
Các lệnh truyền dữ liệu
Slide 27
Các lệnh truyền dữ liệu- PUSH, POP
Các lệnh truyền dữ liệu- IN, OUT
TỔNG KẾT CÁC LỆNH TRUYỀN DỮ LIỆU
CÁC LỆNH XỬ LÝ DỮ LIỆU
Các lệnh số học và logic Arithmetic/Logic Instructions
Các lệnh số học Arithmetic Instruction Summary
Các lệnh cộng Addition Instruction Types
Các lệnh cộng – ADD
Các lệnh cộng Cộng có nhớ – ADC (Add with Carry)
Ví dụ: ADC - Add with Carry
Các lệnh số học – Tăng
Ví dụ về lệnh tăng - Increment Examples
Các lệnh số học – Chỉnh thập phân cho phép cộng (DAA)
Chỉnh thập phân Decimal Adjust after Addition
Ví dụ về lệnh DAA Decimal Adjust after Addition Example
Các lệnh số học – Chỉnh ASCII cho phép cộng (AAA)
Chỉnh ASCII sau lệnh cộng ASCII Adjust after Addition
Các lệnh trừ Subtraction Instruction Types
Các toán hạng sử dụng trong các lệnh cộng trừ Allowable Operands for add, sub
Trừ có nhớ Subtract with Borrow, sbb
Lệnh nhân - Multiplication
Các lệnh nhân - Multiply Instructions
Các lệnh nhân toán hạng tức thời đặc biệt Special Immediate Multiply Instruction
Lệnh chia - Division
Ví dụ cho các lệnh chia Division Instruction Examples
Các lệnh logic Logical Instructions
Các loại lệnh logic Logic Instruction Types
Tác động mức bit Bit Level Logic
Slide 56
Che bit - Masking Operations
Chú ý về các thuật toán chuyển đổi
Ví dụ lệnh AND
Lệnh kiểm tra bit Bit Test Instruction, test
Các lệnh dịch - Shifts
Tính toán số học đơn giản bằng lệnh dịch Simple Arithmetic Using Shifts
Các lệnh quay - Rotates
Ví dụ về sử dụng lệnh quay Example Using Rotates
Program Control Instructions
Các lệnh điều khiển chương trình Program Control Instructions
Phân loại các lệnh điều khiển chương trình Program Control Instructions
Các lệnh điều khiển chương trình Control Instruction Summary
Lệnh điều khiển chương trình đơn giản nhất Simplest Control Instruction, jmp
Ví dụ về lệnh nhảy ngắn Example with Short Jump
Nhảy gián tiếp - Indirect Jump
Nhảy theo địa chỉ gián tiếp Indirect Addressed Jump
Các lệnh nhảy có điều kiện Conditional Control Instruction Summary Rẽ nhánh theo các cờ - Simple Flag Branches
Các lệnh rẽ nhánh theo phép so sánh không dấu Branches for unsigned comparisons
Nhảy theo phép so sánh số có dấu Branches for signed comparisons
Lệnh lập điều kiện SET condition Instruction
Các lệnh lặp Iteration Instruction, loop
Các thủ tục - Procedures
Lệnh call
Ví dụ về lệnh call
Giải thích ví dụ về lệnh Call
Lệnh call với địa chỉ gián tiếp call Instruction with Indirect Address
Slide 83
Lệnh quay về ret Instruction
Các lệnh điều khiển cờ
Các lệnh xử lý chuỗi dữ liệu String Instructions
Các lệnh di chuyển chuỗi dữ liệu String Transfer Instructions
Slide 88
Lặp lại lệnh chuyển chuỗi
Repeated String Move Example (Cont.)
Assembling/Linking
Running the String Move Program
Các lệnh xử lý chuỗi khác Other String Instructions
Lệnh quét chuỗi String Scan Instruction, scas
Các lệnh logic từ CPU 386 Logic Instruction Types (386+)
Double Precision Shifts
Bỏ qua các ký tự khoảng trống ASCII Skip ASCII Space Character
Lệnh so sánh chuỗi Compare String Instruction, cmps
Tiền tố Reapeat
Tổng kết tập lệnh
LẬP TRÌNH HỢP NGỮ TRÊN MÁY PC
Nội dung
Dòng lệnh hợp ngữ MASM 8086 Instruction - Basic Structure
Ví dụ về dòng lệnh hợp ngữ
Khung chương trình nguồn hợp ngữ Anatomy of MASM Source File
Các loại đoạn trong một chương trình hợp ngữ Assembler Language Segment Types
Sử dụng trình hợp dịch MASM Using MASM Assembler
Sử dụng chương trình hợp dịch/liên kết Using MASM Assembler/Linker (Cont.)
Chương trình hợp ngữ MASM Assembler Language
Ví dụ chương trình hợp ngữ MASM Program Example
Một cách khác để định nghĩa các đoạn Another Way to define Segments
Thêm một cách khác để định nghĩa các đoạn Yet another way to define Segs
Slide 113
Slide 114
Slide 115
Slide 116
Các chỉ thị hợp dịch Masm Assembler Directives
Các chỉ thị khai báo dữ liệu Data Allocation Directives
Slide 119
Home Work
Chú ý
CÁC HÀM CƠ BẢN CỦA DOS
Slide 123
Slide 124
Slide 125
Slide 126
CÁC CẤU TRÚC LẬP TRÌNH CƠ BẢN
Slide 128
Slide 129
Slide 130
Slide 131
Slide 132
Slide 133
Slide 134
Slide 135
Slide 136
Slide 137
Slide 138
Slide 139
Slide 140
Một số ví dụ cơ bản
Slide 142
Slide 143
Slide 144