my_ngoc60

New Member
Link tải luận văn miễn phí cho ae Kết Nối

Ôn tập Vi Xử Lý


Phần 1 – Lý thuyết

Khi học về lập trình hợp ngữ thì chủ yếu thao tác trên các thanh ghi và bộ nhớ stack, nên các anh chị phải nắm rõ chức năng của từng thanh ghi để có thể hiểu mà sử dụng các lệnh
________________________________________

1. Tập thanh ghi:
4 thanh ghi đoạn:

• CS (Code Segment): thanh ghi đoạn lệnh
• DS (Data Segment): thanh ghi đoạn dữ liệu
• SS (Stack Segment): thanh ghi đoạn ngăn xếp
• ES (Extra Segment): thanh ghi đoạn dữ liệu phụ

3 thanh ghi con trỏ:

• IP (Instruction Pointer): thanh ghi con trỏ lệnh
• SP (Stack Pointer): con trỏ ngăn xếp
• BP (Base Pointer): thanh ghi con trỏ cơ sở

4 thanh ghi dữ liệu:

• AX (Accumulator): thanh chứa - thanh ghi tích lũy
• BX (Base): thanh ghi cơ sở
• CX (Count): thanh ghi đếm
• DX (Data): thanh ghi dữ liệu

Mỗi thanh ghi này đều có thể được chia ra thành 2 nửa có khả năng sử dụng độc lập.
Thanh ghi cờ
________________________________________

2. Các bước lập trình
Các bước lập trình hợp ngữ cũng giống như các bước lập trình trong ngôn ngữ bậc cao, cũng gồm những bước như sau:

• Bước 1: Phát biểu bài toán
• Bước 2: Xây dựng thuật giải
• Bước 3: Viết mã chương trình
• Bước 4: Dịch và sửa lỗi cú pháp
• Bước 5: Chạy thử và hiệu chỉnh chương trình
________________________________________

3. Cấu trúc chung của lập trình hợp ngữ

.MODEL small
.STACK 100h
.DATA
; Khai báo các biến ở đây
.CODE
; Các lệnh chương trình ghi ở đây
END

________________________________________

4. Các lệnh cơ bản trong lập trình hợp ngữ
4.1. Lệnh MOV
- Cú pháp: MOV <đích>,
- Ý nghĩa: lệnh này dùng để sao chép dữ liệu từ toán hạng nguồn vào toán hạng đích
- Lưu ý:

• toán hạng đích phải đủ để nhận dữ liệu
• không được sao chép hằng vào thanh ghi đoạn
• 2 toán hạng không đồng thời là vùng nhớ hay thanh ghi đoạn

- Ví dụ:

MOV AX,vungnho ; AX <- vungnho
MOV AX,BX ; AX <- BX
MOV AH,'A' ; AX <- 41h
MOV AX,'A' ; AX <- 0041h
MOV DX, OFFSET MSG ; DX <- địa chỉ ô (MSG)
MOV DX,SEG MSG ; DX <- địa chỉ đoạn (MSG)

4.2. Lệnh XCHG
- Cú pháp: XCHG <đích>,
- Ý nghĩa: lệnh này dùng để hoán chuyển dữ liệu của 2 toán hạng đích và nguồn.
- Lưu ý:

• hai toán hạng có thể là thanh ghi hay vùng nhớ cùng kích thước
• không được sao chép hằng vào thanh ghi đoạn
• 2 toán hạng không đồng thời là vùng nhớ

- Ví dụ:

XCHG AX,vungnho ; AX <-> vungnho
XCHG AL,BH ; AL <-> BH

4.3. Lệnh ADD và SUB
- Cú pháp:

ADD <đích>,
SUB <đích>,

- Ý nghĩa: 2 lệnh này dùng để thêm/bớt nội dung trong toán hạng đích với toán hạng nguồn
- Lưu ý:

• kết quả chứa trong toán hạng đích
• toán hạng nguồn có thể là hằng, thanh ghi hay vùng nhớ
• toán hạng đích có thể là thanh ghi hay vùng nhớ
• 2 toán hạng không đồng thời là vùng nhớ
• 2 toán hạng có thể có dấu (bù 2) hay không dấu

- Ví dụ:

ADD AX,BX ; AX <- AX+BX
ADD AX,vungnho ; AX <- vungnho
ADD AX,2 ; AX <- AX+2
SUB AX,BX ; AX <- AX-BX
SUB AX,vungnho ; AX <- AX-BX
SUB AX,2 ; AX <- AX-2

4.4. Lệnh INC và DEC
- Cú pháp:

INC <đích>
DEC <đích>

- Ý nghĩa: 2 lệnh này dùng để tăng/giảm nội dung trong toán hạng đích
- Lưu ý: toán hạng đích có thể là thanh ghi hay vùng nhớ
- Ví dụ:

INC AX ; AX <- AX+1
INC vungnho ; vungnho <- vungnho+1
DEC AX ; AX <- AX+1
DEC vungnho ; vungnho <- vungnho-1


SAL <đích>,
- Ý nghĩa: Lệnh SHL (hay SAL) chuyển các bit trong tác tố đích qua trái về hướng cao, các bit 0 sẽ được điền vào chỗ trống bên phải. Các cờ S,Z,P có trị theo kết quả, AF không xác định, CF nhận bit MSB của tác tố chuyển qua. SHL thường được dùng để nhân tác tố với luỹ thừa 2 vì nhanh hơn là dùng lệnh MUL
- Ví dụ:

SHL DX,1 ; DX * 2
SHL DX,1 ; DX * 4
SHL DX,1 ; DX * 8
SHL DX,1 ; DX * 16

hoặc

MOV CL,4
SHL DX,CL

b. Lệnh SHR/SAR (Shift Logical/Arithmetic Right)
- Cú pháp:
SHR <đích>,
SAR <đích>,
- Ý nghĩa: lệnh này giống như lệnh SHL/SAL nhưng nó sẽ chuyển các bit qua phải thay vì trái và bit 0 được đưa vào MSB, bit LSB đưa vào CF. Lệnh SHR dùng để chia số không dấu có luỹ thừa 2, còn lệnh SAR dùng để chia số có dấu có luỹ thừa 2
- Ví dụ:

MOV CL,-4
SAR BX,1 ; BX = -2

c. Lệnh ROL/ROR (Rotate Left/Rotate Right)
- Cú pháp:
ROL <đích>,
ROR <đích>,
- Ý nghĩa: Lệnh này tương tự như SHL và SHR nhưng bit MSB của đích ngoài việc đưa vào CF còn vòng lại và đưa vào LSB. Chỉ có CF và OF bị ảnh hưởng (nhưng bit LSB của đích ngoài việc đưa vào CF còn vòng lại và đưa vào MSB. Chỉ có CF và OF bị ảnh hưởng)
d. Lệnh RCL/RCR (Rotate Left through Carry/Rotate Right through Carry)
- Cú pháp:
RCL <đích>,
RCR <đích>,
- Ý nghĩa: Lệnh này tương đương ROL và ROR nhưng bit CF sẽ tham gia vào quá trình quay của các bit, tức CF sẽ đưa vào LSB của đích và MSB đưa vào CF. Chỉ có CF và OF bị ảnh
Link Download bản DOC
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:

 
Last edited by a moderator:

Các chủ đề có liên quan khác

Top