Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN
Các chỉ thị gọi thủ tục
Chỉ thị CALL và RET
• Chỉ thị CALL: Chuyển điều khiển đến thủ tục bị gọi
* Cú pháp:
[nhãn] CALL
* Thực hiện các công việc:
- Giảm nội dung SP bởi 2
- Cất nội dung IP vào Stack
- Đưa offset thủ tục bị gọi lên IP
• Chỉ thị RET: Chuyển điều khiển trở về chương trình gọi từ thủ tục bị
gọi
* Cú pháp:
[nhãn] RET
* Thực hiện các công việc:
- Lấy giá trị cũ của IP từ Stack nạp cho IP
- Tăng nội dung SP bởi 2
Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN
Các chỉ thị gọi thủ tục
Chỉ thị CALL và RET
Ví dụ:
.CODE
BEGIN PROC
CALL
...
MOV
INT
BEGIN ENDP
B10
PROC
CALL
....
RET
B10
ENDP
C10
PROC
....
RET
C10
ENDP
FAR
B10
;gọi thủ tục B10
AX,4CH
21H
NEAR
C10
;gọi thủ tục C10
;trở về vị trí gọi
NEAR
;trở về vị trí gọi
Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN
Các chỉ thị logic
-
-
Các chỉ thị logic bao gồm: AND, OR, XOR, TEST và NOT
Chức năng: Xóa hoặc thiết lập các bit để quản lý dữ liệu ASCII cho
các mục đích tính toán số học
Cú pháp tổng quát:
[nhãn] Chỉ thị (Thanh ghi/từ nhớ),[Thanh ghi/từ nhớ]
* Đặc trưng:
- AND: Hai bit tương ứng là 1 thì kết quả là 1, ngược lại kết quả là 0
- OR: Một trong 2 bit (Hoặc cả 2 bit) là 1 thì kết quả là 1, ngược lại
kết quả là 0
- XOR: Hai bit tương ứng khác nhau kết quả là 1, ngược lại giống
nhau thì kết quả là 0
- TEST: Tương tự AND, nhưng không lưu kết quả
- NOT: Kết quả là nghịch đảo của các bit
Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN
Các chỉ thị logic
Ví dụ 1: AL=1100 0101, BH=0101 1100
• Chỉ thị AND:
AND
AND
AL,BH
AL,00h
;AL=0100 0100
;AL=0000 0000
• Chỉ thị OR:
OR
BH,AL
;BH=1101 1101
• Chỉ thị XOR:
XOR
AL,AL
;AL=0000 0000
• Chỉ thị TEST:
TEST
JNZ
BL,11000000b
.....
;Kiểm tra có bit nào
;bên trái không?
TEST
JNZ
AL,00000001b ;Có phải AL chứa 1
....
;số lẻ
Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN
Các chỉ thị logic
Ví dụ 2: Viết chương trình đổi chữ thường thành chữ HOA
Nhận xét:
- Chữ HOA từ A Z có giá trị ASCII từ 41H 5AH
- Chữ thường từ a z có giá trị ASCII từ 61H
7AH
- Sự khác nhau duy nhất: Bit thứ 5 (bằng 0 - chữ
HOA và bằng 1 - chữ thường)
Ví dụ:
A=
Z=
Chữ HOA
0100 0001
0101 1010
a=
z=
Chữ thường
0110 0001
0111 1010
Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN
Các chỉ thị logic
Ví dụ 2: Viết chương trình đổi chữ thường thành chữ HOA
Phương pháp:
- Sử dụng chỉ thị AND để xóa đi bit số 5
AH=0100 0001
AND AH,11011111b
- Mã ví dụ:
;nhập ký tự
MOV AH,1
INT
21h
;đổi từ thường qua HOA
AND AL,11011111b
;in ra màn hình
MOV AH,2
MOV DL,AL
INT 21h
Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN
Các chỉ thị dịch bit
Cú pháp:
[nhãn] Chỉ thị dịch
1.
-
(Thanh ghi/từ nhớ), (CL)
Dịch bit sang phải:
Chỉ thỉ SHR: Dịch phải logic, sử dụng bit 0 để làm đầy
Chỉ thị SAR: Dịch phải số học, sử dụng bit dấu để làm đầy
Các bit được định lần lượt đặt vào cờ CF
Sử dụng cho phép chia 2: Dịch phải n bit tương đương chia 2n bit
Ví dụ:
Chỉ thị SHR
Chỉ thị SAR
MOV
MOV
SHR
SHR
MOV
MOV
SAR
SAR
CL,3
AL, B7h ;AL=1011 0111
AL,1
;AL=0101 1011
AL,CL ;AL=0000 1011
CL,3
AL,B7h ;AL=1011 0111
AL,1
;AL=1101 1011
AL,CL ;AL=1111 1011
Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN
Các chỉ thị dịch bit
Cú pháp:
[nhãn] Chỉ thị dịch
(Thanh ghi/từ nhớ), (CL)
2. Dịch bit sang trái:
-
Chỉ thỉ SHL,SAL: Dịch trái logic, sử dụng bit 0 để làm đầy và hoạt
động như nhau. Các bit được định lần lượt đặt vào cờ CF
Sử dụng cho phép nhân 2: Dịch trái n bit tương đương nhân 2n bit
Ví dụ:
MOV
MOV
SHL
SHL
CL,3
AL,B7h
AL,1
AL,CL
;AL=1011 0111
;AL=0110 1110
;AL=0111 0000
Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN
Các chỉ thị quay bit
Cú pháp:
[nhãn] Chỉ thị quay
(Thanh ghi/từ nhớ), (CL)
1. Quay bit sang phải:
-
Chỉ thỉ ROR: Quay logic bit sang phải, bit được địch ra ngoài được
đưa vào cờ CF và được dùng để làm đầy
-
Chỉ thị RCR: Quay số học bit sang phải, bit được dịch ra ngoài được
đưa vào cờ CF và bit cờ CF được dùng làm đầy
Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN
Các chỉ thị quay bit
Cú pháp:
[nhãn] Chỉ thị quay
(Thanh ghi/từ nhớ), (CL)
1. Quay bit sang phải:
Ví dụ 1:
Ví dụ 2:
MOV
MOV
ROR
ROR
CL,3
BH,B7h
BH,1
BH,CL
MOV
MOV
RCR
CL,3
BH,B7h
BH,1
RCR
BH,CL
;BH=1011 0111
;BH=1101 1011
;BH=0111 1011
;BH=1011 0111
;BH=0101 1011 (CF=0)
;BH=1101 1011 (CF=1)
;BH=1110 1011 (CF=0)
;BH=1111 1011 (CF=1)
Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN
Các chỉ thị quay bit
Cú pháp:
[nhãn] Chỉ thị quay
(Thanh ghi/từ nhớ), (CL)
2. Quay bit sang trái:
-
Chỉ thỉ ROL: Quay logic bit sang trái, bit được địch ra ngoài được
đưa vào cờ CF và được dùng để làm đầy
-
Chỉ thị RCL: Quay số học bit sang trái, bit được dịch ra ngoài được
đưa vào cờ CF và bit cờ CF được dùng làm đầy
Chöông 2: CAÙC CHÆ THÒ LOGIC VAØ ÑIEÀU KHIEÅN
Các chỉ thị quay bit
Cú pháp:
[nhãn] Chỉ thị quay
(Thanh ghi/từ nhớ), (CL)
2. Quay bit sang trái:
Ví dụ 1:
Ví dụ 2:
MOV
MOV
ROL
ROL
CL,3
BH,B7h
BH,1
BH,CL
MOV
MOV
RCL
CL,3
BH,B7h
BH,1
RCL
BH,CL
;BH=1011 0111
;BH=0110 1111
;BH=0111 0111
;BH=1011 0111
;BH=0110 1110 (CF=0)
;BH=0110 1111 (CF=1)
;BH=0111 0101 (CF=0)
;BH=0111 1101 (CF=1)
- Xem thêm -