This document presents a presentation on logic, shift, and rotate instructions. It discusses binary logic instructions like AND, OR, XOR, and NOT and provides truth tables. It also covers shift instructions such as SHL, SHR, SAL, SAR, ROL, ROR, RCL, and RCR and provides examples of how each works. The use of masks with AND, OR, and XOR instructions is also covered, allowing specific bits of a destination to be cleared, set, or complemented.
4. Logic inStRuction
• To manipulate individual bits
• Binary Value 0 treated as false
• Binary Value 1 treated as true
• AND
• OR
• XOR
• NOT
• TEST
4
Kashifshafqat25@yahoo.com
5. tRuth tabLe
a b a AND b a OR b a XOR b
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0
a NOT a
0 1
1 0
5
Kashifshafqat25@yahoo.com
8. Syntax
AND destination,source
OR destination,source
XOR destination,source
• Destination:
• Store result
• Can be a Register or Memory Location
• Source:
• May be a Constant,Register or Memory Location
• Memory to memory operation not allowed
8
Kashifshafqat25@yahoo.com
9. EffEcts on flags
• SF,ZF,PF reflects the result
• AF is undefined
• CF,OF = 0
9
Kashifshafqat25@yahoo.com
10. MasK
• To modify only selective bits in destination, we construct
a source bit pattern known as MASK
• T o choose mask , use following properties:
• b AND 1 = b
• b AND 0 = 0
• b OR 1 = 1
• b OR 0 = b
• b XOR 0 = b
• b AND 1 = ~b ( complement of b)
• Where b represents a bit (0 or 1)
10
Kashifshafqat25@yahoo.com
11. contd…
1. The AND Instruction:
– May be used to clear specific destination bits
while preventing the others.
– A 0 mask bit clears the corresponding
destination bit.
– A 1 mask bit preserves the corresponding
destination bit.
11Kashifshafqat25@yahoo.com
12. ExaMplE:
• Clear the sign bit of AL while leaving the
other bits unchanged.
Solution:
AND AL,7Fh
Where 7Fh (0111 1111) is the mask.
12Kashifshafqat25@yahoo.com
13. contd…
The OR Instruction:
May be used to SET specific destination bits
while preventing the others.
– A 1 mask bit sets the corresponding
destination bit.
– A 0 mask bit preserves the corresponding
destination bit.
13Kashifshafqat25@yahoo.com
14. ExaMplE:
• Set the MSB and LSB of AL while
preserving the other bits.
• Solution:
OR AL,81h
Where 81h (1000 0001) is the mask.
14Kashifshafqat25@yahoo.com
15. contd…
The XOR Instruction:
– May be used to Complement specific
destination bits while preventing the others.
– A 1 mask bit complements the
corresponding destination bit.
– A 0 mask bit preserves the corresponding
destination bit.
15Kashifshafqat25@yahoo.com
16. ExaMplE
• Change the sign bit of DX.
• Solution:
XOR DX,8000h
Where 80h ( 1000 0000 ) is the mask.
16Kashifshafqat25@yahoo.com
17. Clearing a register:
MOV AX,0 ;machine code 3 bytes
OR
SUB AX,AX ;machine code 2 bytes
OR
XOR AX,AX ;machine code 2 bytes
17Kashifshafqat25@yahoo.com
18. testing a register FOr ZerO:
•
CMP CX,0
Is same like :
OR CX,CX
;Sets ZF=1 if CX is 0
18Kashifshafqat25@yahoo.com
19. nOt instruCtiOn
• Performs the one’s complement operation
on the destination.
• Syntax:
• NOT destination
• No effects on flags
• example:
Complement the bit in AX:
NOT AX
19Kashifshafqat25@yahoo.com
20. sHiFt anD rOtate instruCtiOn:
• Shift the bits in destination operand by one
or more positions either to the left or right.
• sHiFt: Bit shifted out is lost
• rOtate: Bit shifted out from one end of
the destination operand is put back on the
other end.
• syntax:
• OPCODE destination,1
• OPCODE destination,CL
20Kashifshafqat25@yahoo.com
22. sHl instruCtiOn (leFt sHiFt)
• The SHL (shift left) instruction performs a
logical left shift on the destination
operand, filling the lowest bit with 0.
• Operand types:
SHL reg,imm8
SHL mem,imm8
SHL reg,CL
SHL mem,CL
22Kashifshafqat25@yahoo.com
23. sHr instruCtiOn (rigHt sHiFt)
• The SHR (shift right) instruction performs
a logical right shift on the destination
operand. The highest bit position is filled
with a zero.
mov dl,80
shr dl,1 ; DL = 40
shr dl,2 ; DL = 10
23Kashifshafqat25@yahoo.com
24. sal anD sar instruCtiOns
• SAL (shift arithmetic left) is identical to SHL.
• SAR (shift arithmetic right) performs a right
arithmetic shift on the destination operand.
mov dl,-80
sar dl,1 ; DL = -40
sar dl,2 ; DL = -10
24Kashifshafqat25@yahoo.com
25. ROL InstRuctIOn (shIft Left)
• ROL (rotate) shifts each bit to the left
• The highest bit is copied into both the
Carry flag and into the lowest bit
• No bits are lost
mov al,11110000b
rol al,1 ; AL = 11100001b
mov dl,3Fh
rol dl,4 ; DL = F3h
25Kashifshafqat25@yahoo.com
26. ROR InstRuctIOn (shIft RIght)
• ROR (rotate right) shifts each bit to the right
• The lowest bit is copied into both the Carry
flag and into the highest bit
• No bits are lost
mov al,11110000b
ror al,1 ; AL = 01111000b
mov dl,3Fh
ror dl,4 ; DL = F3h
26Kashifshafqat25@yahoo.com
27. RcL InstRuctIOn (shIft caRRy Left)
• RCL (rotate carry left) shifts each bit to the left
• Copies the Carry flag to the least significant bit
• Copies the most significant bit to the Carry flag
clc ; CF = 0
mov bl,88h ; CF,BL = 0 10001000b
rcl bl,1 ; CF,BL = 1 00010000b
rcl bl,1 ; CF,BL = 0 00100001b
27Kashifshafqat25@yahoo.com
28. RcR InstRuctIOn (shIft caRRy RIght)
• RCR (rotate carry right) shifts each bit to the right
• Copies the Carry flag to the most significant bit
• Copies the least significant bit to the Carry flag
stc ; CF = 1
mov ah,10h ; CF,AH = 00010000 1
rcr ah,1 ; CF,AH = 10001000 0
28
Kashifshafqat25@yahoo.com