intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng hợp ngữ - Chương 4

Chia sẻ: Nguyen Nhi | Ngày: | Loại File: PDF | Số trang:7

97
lượt xem
24
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo Bài giảng hợp ngữ gồm 9 chương - Chương 4 Các lệnh logic, dịch và quay

Chủ đề:
Lưu

Nội dung Text: Bài giảng hợp ngữ - Chương 4

  1. Bài gi ng h p ng Ch ng IV: Các l nh logic, d ch và quay CH NG IV: CÁC L NH LOGIC, D CH VÀ QUAY 4.1 Các l nh logic 4.1.1 Các phép toán logic a) Phép toán AND (và) Quy t c th c hi n phép toán AND gi a hai s nh phân A và B c trình bày trong ng sau: A B A AND B 0 0 0 0 1 0 1 0 0 1 1 1 Ví d : Cho M = 16h, N = 0Dh, hãy tính M AND N = ? Gi i: M = 0001 0110b (16h) N = 0000 1101b (0Dh) M AND N = 0000 0100b = 04h b) Phép toán OR (ho c) Quy t c th c hi n phép toán OR gi a hai s nh p hân A và B c trình bày trong ng sau: A B A OR B 0 0 0 0 1 1 1 0 1 1 1 1 Ví d : Cho M = 16h, N = 0Dh, hãy tính M OR N = ? Gi i: M = 0001 0110b (16h) N = 0000 1101b (0Dh) M OR N = 0001 1111b = 1Fh c) Phép toán NOT (ph nh) Quy t c t h c hi n phép toán NOT gi a hai s nh phân A và B c t rình bày trong ng sau: A NOT A 0 1 1 0 Ví d : Cho M = 16h, hãy tính NOT M = ? Gi i: M = 0001 0110b (16h) NOT M = 1110 1001b = E9h 32
  2. Bài gi ng h p ng Ch ng IV: Các l nh logic, d ch và quay d) Phép toán XOR (ho c - ph nh) Quy t c th c hi n phép toán XOR gi a hai s nh phân A và B c t rình bày trong ng sau: A B A XOR B 0 0 0 0 1 1 1 0 1 1 1 0 Ví d : Cho M = 16h, N = 0Dh, hãy tính M XOR N = ? Gi i: M = 0001 0110b (16h) N = 0000 1101b (0Dh) M XOR N = 0001 1011b = 1Bh 4.1.2 Các l nh logic trong h p ng T ng ng v i các phép toán logic trên, h p ng có các l nh sau ây: AND < ích>, OR < ích>, XOR < ích>, NOT < ích> ích>: là m t t hanh ghi hay m t ô nh : là m t t hanh ghi, m t ô nh , ho c m t h ng s ích>, không ng th i là hai ô nh . Ví d : AND AX, 002Ah OR AL, 3Dh NOT BX 4.1.3 ng d ng các l nh logic Ví d 1: Hãy thay i bit d u trong thanh ghi AX. XOR AX, 8000h Ví d 2: Hãy xoá bit LSB trong thanh ghi BH. AND BH, 0FEh Ví d 3: Nh p m t kí t s t bàn phím (‘0’, ‘1’, ... , ‘9’), i nó sang s th p phân t ng ng. Gi i: Ta s s d ng các l nh logic chuy n i kí t sang s . 33
  3. Bài gi ng h p ng Ch ng IV: Các l nh logic, d ch và quay TITLE VI DU 3 .MODEL SMALL .STACK 100H .CODE MAIN PROC NhapLai: MOV AH, 1 ;Nh p m t kí t INT 21h CMP AL, JB NhapLai ;N u AL < thì nh p l i CMP AL, JA NhapLai ;N u AL > thì nh p l i AND AL, 0Fh ; i sang s th p phân t ng ng ; (xoá 4 bit cao c a AL) ... ;Các l nh khác MOV AH, 4Ch ;K t thúc INT 21h MAIN ENDP END MAIN 4.2 Các l nh d ch 4.2.1 Các phép toán d ch a) Phép d ch trái Xét m t dãy bit trong m t thanh ghi ho c m t ô nh : phép d ch trái s d ch chuy n toàn b các bít trong dãy v bên trái, giá tr c a Msb c a vào c CF, thêm bit 0 vào trí Lsb. Tr c khi d ch trái: 1 1 1 0 0 1 1 0 CF Sau khi d ch trái: 1 1 1 0 0 1 1 0 0 CF Msb Lsb b) Phép d ch ph i Xét m t dãy bit trong m t thanh ghi ho c m t ô nh : phép d ch ph i s d ch chuy n toàn b các bít trong dãy v bên ph i, giá tr c a Lsb c a vào c CF, thêm bit 0 vào trí Msb. Tr c khi d ch ph i: 1 1 1 0 0 1 1 0 CF →0 Sau khi d ch ph i: 0 1 1 1 0 0 1 1 Msb Lsb CF 34
  4. Bài gi ng h p ng Ch ng IV: Các l nh logic, d ch và quay 4.2.2 Các l nh d ch trong h p ng a) L nh d ch trái Có th s d ng l nh SHL (Shift Left) ho c l nh SAL (Shift Arithmetic Left), hai l nh này t o ra cùng m t mã máy. Cú pháp l nh: - D ng 1: SHL < ích>, 1 - D ng 2: SHL < ích>, CL ích>: là m t t hanh ghi hay m t ô nh D ng 1 s d ch các bít c a t oán h ng ích sang trái 1 l n, d ng 2 s d ch các bít c a toán h ng ích sang trái nhi u l n, s l n d ch ch a trong thanh ghi CL. Ví d 1: SHL AX, 1 ;D ch các bít c a thanh ghi AX sang trái 1 l n Ví d 2: MOV CL, 3 SHL AX, CL ;D ch các bít c a thanh ghi AX sang trái 3 l n • ng d ng c a l nh d ch trái: M t trong s các ng d ng c a l nh d ch trái là th c hi n phép nhân v i 2. Xét ví d sau ây: Gi s AH = 0001 1010b = 1x24 + 1x23 + 1x21 = 26 Sau khi d ch trái 1 l n thì AH = 0011 0100b = 1x25 + 1x24 + 1x22 = 2x(1x24 + 1x23 + 1x21 ) = 52 Nh v y, phép d ch trái 1 l n t ng ng phép nhân toán h ng ích v i 2. ng phép nhân toán h ng ích v i 2N. ng quát: Phép d ch trái N l n t ng Chú ý: K t lu n trên ch úng khi không có hi n t ng tràn x y ra. Ví d : Gi s AH = 1000 0001b = 129 Sau khi d ch trái 1 l n thì AH = 0000 0010b = 2: Không ph i là phép nhân v i 2. Bít Msb c a AH c chuy n vào c CF: c CF = 1 báo hi u hi n t ng tràn x y ra, k t qu không còn úng n a. b) L nh d ch ph i Có hai lo i l nh d ch ph i: SHR (Shift Right) và SAR (Shift Arithmetic Right), tác ng c a chúng không hoàn toàn gi ng nhau. Cú pháp l nh SHR: - D ng 1: SHR < ích>, 1 - D ng 2: SHR < ích>, CL ích>: là m t t hanh ghi hay m t ô nh D ng 1 s d ch các bít c a toán h ng ích sang ph i 1 l n, d ng 2 s d ch các bít c a toán h ng ích sang ph i nhi u l n, s l n d ch ch a trong thanh ghi CL. Ví d 1: SHR BX, 1 ;D ch các bít c a thanh ghi BX sang ph i 1 l n Ví d 2: MOV CL, 3 SHR BX, CL ;D ch các bít c a thanh ghi BX sang ph i 3 l n 35
  5. Bài gi ng h p ng Ch ng IV: Các l nh logic, d ch và quay • ng d ng c a l nh d ch ph i: M t t rong s các ng d ng c a l nh d ch ph i là th c hi n phép chia cho 2. Xét ví d sau ây: Gi s AL = 0001 0000b = 1x24 = 16 Sau khi d ch ph i 1 l n thì AL = 0000 1000b = 1x23 = 8 Nh v y, phép d ch ph i 1 l n t ng ng phép chia toán h ng ích cho 2. ng phép chia toán h ng ích cho 2N. ng quát: Phép d ch ph i N l n t ng Chú ý: K t lu n trên ch úng n u không làm thay i bít d u khi d ch ph i. Ví d : Gi s AL = 1000 0001b = -127 Sau khi d ch ph i 1 l n thì AL = 0100 0000b = 64: Không ph i là phép chia cho 2. Do ó, i v i các s có d u ta không c s d ng l nh SHR mà ph i s d ng l nh SAR. L nh SAR s gi nguyên bít d u khi d ch ph i. Ví d : Ban u AL = 1000 0001b = -127 Sau l nh SAR AL, 1 thì AL = 1100 0000b = -64 (bít d u v n c gi nguyên). 4.3 Các l nh quay 4.3.1 L nh quay trái (ROL - Rotate Left) L nh quay trái c ng g n gi ng v i l nh d ch trái, ch khác ch bít Msb v a c a vào c CF, v a c a tr l i v t rí Lsb. CF Cú pháp l nh: - D ng 1: ROL < ích>, 1 ;Quay trái m t l n - D ng 2: ROL < ích>, CL ;Quay trái nhi u l n, CL ch a s l n quay ích>: là m t t hanh ghi hay m t ô nh 4.3.2 L nh quay ph i (ROR - Rotate Right) L nh quay ph i c ng g n gi ng v i l nh d ch ph i, ch khác ch bít Lsb v a c a vào c CF, v a c a tr l i v t rí Msb. CF 36
  6. Bài gi ng h p ng Ch ng IV: Các l nh logic, d ch và quay Cú pháp l nh: - D ng 1: ROR < ích>, 1 ;Quay ph i m t l n - D ng 2: ROR < ích>, CL ;Quay ph i nhi u l n, CL ch a s l n quay ích>: là m t t hanh ghi hay m t ô nh 4.3.3 L nh quay trái qua c CF (RCL – Rotate Carry Left) L nh này c ng g n gi ng v i l nh d ch trái, ch khác ch bít Msb c a vào c CF, còn n i dung c CF l i c a vào v trí Lsb. CF Cú pháp l nh: - D ng 1: RCL < ích>, 1 ;Quay m t l n - D ng 2: RCL < ích>, CL ;Quay nhi u l n, CL ch a s l n quay ích>: là m t t hanh ghi hay m t ô nh 4.3.4 L nh quay ph i qua c CF (RCR – Rotate Carry Right) L nh này c ng g n gi ng v i l nh d ch ph i, ch k hác ch bít Lsb c a vào c CF, còn n i dung c CF l i c a vào v t rí Msb. CF Cú pháp l nh: - D ng 1: RCR < ích>, 1 ;Quay m t l n - D ng 2: RCR < ích>, CL ;Quay nhi u l n, CL ch a s l n quay ích>: là m t t hanh ghi hay m t ô nh • ng d ng l nh quay: nh quay có nhi u ng d ng khác nhau, d i ây ch xét m t tr ng h p n gi n: Ví d : m s bít 1 trong thanh ghi AX Gi i: Ta s t h c hi n l nh quay AX 16 l n (quay trái hay quay ph i u c). M i l n quay thì m t bít s c a vào c CF, n u bít ó b ng 1 thì t ng BX lên 1 (BX ch a giá tr m c). Sau 16 l n quay thì thanh ghi AX s t r l i giá tr ban u. MOV CX, 16 ;CX ch a s l n l p XOR BX ;Xoá BX chu n b ch a s l ng bít 1 37
  7. Bài gi ng h p ng Ch ng IV: Các l nh logic, d ch và quay Lap: ROL AX, 1 ;Quay trái AX 1 l n JNC TiepTuc ;N u CF = 0 (g p bít 0) thì nh y INC BX ;N u g p bít 1 thì t ng BX TiepTuc: LOOP Lap 38
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2