Download presentation

1
**Ch. 7 Logic, Shift and Rotate instr.**

Logic Instructions AND, OR, XOR and NOT TEST Instruction Shift Instructions Left shift – doubles a number Right shift – halves a number … multiply or divide by powers of 2 MUL, DIV – much slower than shift instr… Rotate Stack Operations Introduction to Procedures

2
**7.1 AND, OR and XOR Instructions**

AND destination, source OR destination, source XOR destination, source Dest. – must be a Register or mem. Source – const, reg., mem Memory-to-memory operations are not allowed Effect on flags SF, ZF, PF reflect the result AF is undefined CF, OF = 0 SF – sign ZF – zero PF – parity AF – auxiliary carry OF – overflow CF – carry

3
**Use of Logic Instructions**

Selectively modify the bits of destination b AND 1 = b (b represents a bit, 0/1) b AND 0 = 0 b OR 0 = b b OR 1 = 1 b XOR 0 = b b XOR 1 = ~b (complement of b) So, AND can be used to clear specific destination bit OR can be used to set specific destination bit XOR can be used to complement specific destination bit

4
Examples mask Example 7.2: Clear the sign bit of AL while leaving the other bits unchanged. AND AL, 7Fh Example 7.3: Set the msb and lsb of AL while preserving the other bits. OR AL, 81h Example 7.4: Change the sign bit of DX XOR DX, 8000h = 7Fh = 81h See example from book

5
**How to clear a register? MOV AX, 0 ; machine code 3 bytes**

SUB AX, AX ; .. 2 bytes XOR AX, AX ; .. 2 bytes -- BUT mem2mem operations only for MOV is allowed here – so to clear a memory location, use MOV.

6
**7.1.2 NOT Instruction 1’s Complement operation NOT destination**

No effect on status flags Example 7.5: Complement the bits in AX NOT AX

7
**7 Logic Instructions TEST Instruction Shift and Rotate Instructions**

AND, OR, XOR and NOT TEST Instruction Shift and Rotate Instructions Stack Operations Introduction to Procedures

8
7.2 TEST Instruction TEST performs AND of the destination with source – but no change of the dest. contents TEST destination, source Effects on flags SF, ZF, PF reflect the result AF is undefined CF, OF = 0 TEST vs. CMP CMP is subtraction operation

9
**JZ – jump if equal to zero**

TEST Example Jump to label BELOW if AL contains an even number TESET AL, 1 ; is AL even? JZ BELOW ; yes, go to BELOW JZ – jump if equal to zero use to examine individual bits in an operand. mask contains 1’s in the bits positions to be tested & 0’s elsewhere Even numbers have a 0 in bit#0. So, mask = b = 1

10
**Agenda Logic Instructions TEST Instruction**

AND, OR, XOR and NOT TEST Instruction Shift and Rotate Instructions Stack Operations Introduction to Procedures

11
**7.2 Shift and Rotate Instructions**

Two types of shift and rotate instructions Logical Shift / Rotate Arithmetic Shift/Rotate Both logical and arithmetic left shift are identical But right shifts are different

12
**opcode dest, 1 ; 1 bit change opcode dest, CL ; N bits change **

; CL contians N Dest reg., mem SHL Multiplication by left shift by multiplies of 2 SAL for numeric multiplication

13
**Shift and Rotate Instructions**

SHL DH, 3 ; DH = DH = C = 1 SHR DH, 3 ; DH = DH = C = 1 SAL DH, 2 ; DH = DH = C = 1 SAR DH, 2 ; DH = DH = C = 1

14
**Rotate Instructions ROL – rotate left ROR – r right RCL – r carry left**

RCR – r c right Let DH = 8Ah = CF = 1 After first RCR DH = CF = 0 After second RCR DH = CF = 1

15
**Agenda Logic Instructions TEST Instruction**

AND, OR, XOR and NOT TEST Instruction Shift and Rotate Instructions Stack Operations

16
**Stack vs. Queue Stack Queue LIFO : Last In First Out**

FIFO : First In First Out Queue Stack

17
PUSH vs. POP in Stack

18
PUSH Instructions

19
POP Instructions

20
**References Some materials are from Dr. Sazzad, NSU**

Ch 7, Assembly Language Programming – by Charls Marut Ch 4, Intel Microprocessors – by Brey

Similar presentations

© 2020 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google