Nhóm lệnh logic và ghi dịch

Một phần của tài liệu Bài giảng lập trình hệ thống assembly (Trang 45)

1. AND, OR, XOR, TEST: Và, Hoặc, Cộng không nhớ, Kiểm tra bit

Cú pháp: AND đích, nguồn ; đích ← đích ∧ nguồn OR đích, nguồn ; đích ← đích ∨ nguồn XOR đích, nguồn ; đích ← đích ⊕ nguồn TEST đích, nguồn ; Cờ ← đích ∧ nguồn

Nguồn: Reg, Mem hay Immed.

Đích: Reg, Mem.

Ý nghĩa: Thực hiện phép toán logic (and, or, xor) theo từng bit tương ứng giữa toán hạng đích và toán hạng nguồn, lưu giữ kết quả ở toán hạng đích.

- Lệnh TEST thực hiện kiểm tra bit, giống lệnh AND nhưng không lưu giữ lại kết quả mà kết quả của phép toán chỉ ảnh hưởng đến các cờ trạng thái.

Ví dụ: MOV AL, 01101110b ; AL ← 01101110b

AND DL, 11000011b ; Xóa 4 bit giữa trong thanh ghi DL

TEST DH, 00010000b ; Kiểm tra giá trị của bit 4 trong thanh ghi DH. Kết quả kiểm tra sẽ ảnh hưởng lên cờ Zero (ZF)

2. NOT – Đảo bit (Lấy Bù 1)

Cú pháp: NOT đích ; đích ←đích

Đích: Reg, Mem

Ý nghĩa: Đảo ngược từng bit (hay lấy bù 1) toán hạng đích. Ví dụ: MOV AH, 0Fh ; AH ← 0Fh (00001111b)

NOT AH ; AH = 0F0h (11110000b) 3. SHL – Dịch trái logic (logical SHift Left)

Cú pháp: SHL đích, 1 ; dịch toán hạng đích sang trái 1 bit.

SHL đích, CL ; dịch sang trái CL bít

Đích: Reg, Mem

Ý nghĩa: Dịch toán hạng đích sang trái, có thể dịch 1 bit hay nhiều bit hơn (CL chứa số

bit dịch). LSB được nạp vào logic 0, còn MSB được dịch sang cờ Carry (CF).

CF 7 2 1 0

0

Hình 3.3: Dịch toán hạng đích 8 bit sang trái 1 bit Ví dụ: MOV AL, 01101101b ; AL = 01101101b

SHL AL, 1 ; AL = 11011010b và CF=0 4. SHR (logical shift right) dịch phải logic.

Cú pháp: SHR đích, 1 ; dịch trái toán hạng đích 1 bit.

SHR đích, CL ; dịch trái đích với số bít trong CL

Ý nghĩa: Giống lệnh SHL nhưng bay giờ dịch toán hạng đích sang phải

7 6 1 0 CF

0

Hình 3.4: Dịch toán hạng đích 8 bit sang phải 1 bit Ví dụ: MOV AL, 01101101b ; AL = 01101101b

SHR AL, 1 ; AL = 00110110b và CF=1 5. SAL (Shift arithmetic left): dịch trái số học

Cú pháp: SAL đích, 1 ; dịch toán hạng đích sang trái 1 bit.

SAL đích, CL ; dịch sang trái CL bít

Đích: Reg, Mem

Ý nghĩa: Lệnh nầy giống SHL nhưng LSB (bit thấp nhất) vừa được dịch lên bít 1 và

CF 7 2 1 0

Hình 3.5: Dịch toán hạng đích 8 bit sang trái 1 bit Ví dụ: MOV AL, 01101101b ; AL = 01101101b

SHL AL, 1 ; AL = 11011011b và CF=0 6. SAR (Shift arithmetic right) : dịch phải số học

Cú pháp: SAR đích, 1 ; dịch toán hạng đích sang trái 1 bit.

SAR đích, CL ; dịch sang trái CL bít

Đích: Reg, Mem

Ý nghĩa: Lệnh nầy giống SHR nhưng MSB (bit cao nhất) vừa được dịch xuống bit thấp

hơn và giữ nguyên (bảo toàn bit MSB – Bit dấu).

7 6 0 CF

Hình 3.6: Dịch toán hạng đích 8 bit sang phải 1 bit Ví dụ: MOV AL, 01101101b ; AL = 01101101b

SAR AL, 1 ; AL = 00110110b và CF=1 7. ROL (Rotate left) : quay vòng sang trái

Cú pháp: ROL đích, 1 ; quay vòng toán hạng đích sang trái 1 bit.

ROL đích, CL ; quay vòng sang trái số lần quay bằng CL.

Ý nghĩa: Giống SHL, nhưng thực hiện việc quay vòng, MSB dịch vào LSB

CF 7 2 1 0

Hình 3.7: Quay toán hạng đích 8 bit sang trái 1 bit Ví dụ: MOV AL, 01101101b ; AL = 01101101b

ROL AL, 1 ; AL = 11011010b và CF=0 8. ROR (Rotate right) : Quay vòng sang phải

Cú pháp: ROR đích, 1 ; Quay vòng toán hạng đích sang phải1 bit.

ROR đích, CL ; Quay vòng với số lần quay bằng CL

Đích: Reg, Mem

Ý nghĩa: Lệnh nầy giống ROL nhưng quay vòng sang phải, nghĩa là LSB (bit thấp

nhất) vừa được dịch đến MSB.

7 6 0 CF

Ví dụ: MOV AL, 01101101b ; AL = 01101101b

SAR AL, 1 ; AL = 00110110b và CF=1 9. RCL (Rotate through carry left): Quay trái qua cờ Carry

Cú pháp: RCL đích, 1 ; quay vòng TH. đích qua cờ sang trái 1 bit.

RCL đích, CL ; quay vòng qua cờ sang trái số lần bằng CL.

Ý nghĩa: Giống như lệnh ROL nhưng có sự tham gia của cờ carry (CF). Xem hình 3.9.

Như vậy CF cũng là 1 bit tham gia vào vòng quay

CF 7 2 1 0

Hình 3.9: Quay toán hạng đích 8 bit qua cờ sang trái 1 bit

10. RCR (Rotate through carry right): Quay vòng qua cờ sang phải

Cú pháp: RCR đích, 1 ; Quay vòng TH. đích qua cờ sang phải 1 bit. RCR đích, CL ; số lần quay bằng CL

Đích: Reg, Mem

Ý nghĩa: Lệnh nầy giống RCL nhưng quay vòng sang phải.

7 6 0 CF

Hình 3.10: Quay toán hạng đích 8 bit qua cờ sang phải 1 bit

Một phần của tài liệu Bài giảng lập trình hệ thống assembly (Trang 45)

Tải bản đầy đủ (PDF)

(117 trang)