slide 05

advertisement
Lecture 5
Presented By
Dr. Shazzad Hosain
Asst. Prof. EECS, NSU
Agenda
• Logic Instructions
– AND, OR, XOR and NOT
•
•
•
•
TEST Instruction
Shift and Rotate Instructions
Stack Operations
Introduction to Procedures
AND, OR and XOR Instructions
AND destination, source
OR destination, source
XOR destination, source
• Memory-to-memory operations are not allowed
• Effect on flags
– SF, ZF, PF reflect the result
– AF is undefined
– CF, OF = 0
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 cab 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
Examples
Example 7.2: Clear the sign bit of AL while leaving the
other bits unchanged.
AND
AL, 7Fh
0111 1111 = 7Fh
Example 7.3: Set the msb and lsb of AL while preserving
the other bits.
OR
AL, 81h
1000 0001 = 81h
Example 7.4: Change the sign bit of DX
XOR
DX, 8000h
NOT Instruction
Complement operation
NOT destination
Example 7.5: Complement the bits in AX
NOT AX
Agenda
• Logic Instructions
– AND, OR, XOR and NOT
•
•
•
•
TEST Instruction
Shift and Rotate Instructions
Stack Operations
Introduction to Procedures
TEST Instruction
• TEST performs AND on the destination
• 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
TEST Example
• Jump to label BELOW if AL contains an even
number
TESET
JZ
AL, 1
BELOW
; is AL even?
; yes, go to BELOW
Agenda
• Logic Instructions
– AND, OR, XOR and NOT
•
•
•
•
TEST Instruction
Shift and Rotate Instructions
Stack Operations
Introduction to Procedures
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
Shift and Rotate Instructions
SHL
DH, 3
; DH = 1110 1111
DH = 0111 1000
SAL
DH, 2
C=1
; DH = 1110 1111
DH = 1011 1100
SHR
C=1
DH, 3
; DH = 1110 1111
DH = 0001 1101
SAR
DH, 2
C=1
; DH = 1110 1111
DH = 1111 1011
C=1
Rotate Instructions
Let
DH = 8Ah = 1000 1010
CF = 1
After first RCR
DH = 1100 0101
CF = 0
After second RCR
DH = 0110 0010
CF = 1
Agenda
• Logic Instructions
– AND, OR, XOR and NOT
•
•
•
•
TEST Instruction
Shift and Rotate Instructions
Stack Operations
Introduction to Procedures
Stack vs. Queue
• Stack
– LIFO : Last In First Out
• Queue
– FIFO : First In First Out
Queue
Stack
PUSH vs. POP in Stack
Stack Operations
PUSH Instructions
POP Instructions
Stack example
Agenda
• Logic Instructions
– AND, OR, XOR and NOT
•
•
•
•
TEST Instruction
Shift and Rotate Instructions
Stack Operations
Introduction to Procedures
Procedure Example
Product = 0
REPEAT
IF lsb of B is 1
THEN
product = product + A
END_IF
Shift left A
Shift right B
UNTIL B = 0
References
• Ch 7, Assembly Language Programming – by
Charls Marut
• Ch 4, Intel Microprocessors – by Brey
Download