1 / 20

Assembly Lang. – Intel 8086 Ch . 7: Logic , Shift and Rotate instr.

Assembly Lang. – Intel 8086 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 …

rmary
Download Presentation

Assembly Lang. – Intel 8086 Ch . 7: Logic , Shift and Rotate instr.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Assembly Lang. – Intel 8086Ch. 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 0111 1111 = 7Fh 1000 0001 = 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 • MUL AX, 0 -- 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 • 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. 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 = 0000 0001b = 1

  10. Agenda • Logic Instructions • 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. opcodedest, 1 ; 1 bit change opcodedest, 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 = 1110 1111 SHR DH, 3 ; DH = 1110 1111 DH = 0111 1000 DH = 1011 1100 DH = 0001 1101 DH = 1111 1011 C = 1 C = 1 C = 1 C = 1 SAL DH, 2 ; DH = 1110 1111 SAR DH, 2 ; DH = 1110 1111

  14. Rotate Instructions ROL – rotate left ROR – r right RCL – r carry left RCR – r c right Let DH = 8Ah = 1000 1010 CF = 1 After first RCR DH = 1100 0101 CF = 0 After second RCR DH = 0110 0010 CF = 1

  15. Agenda • Logic Instructions • AND, OR, XOR and NOT • TEST Instruction • Shift and Rotate Instructions • Stack Operations

  16. Stack vs. Queue • Stack • LIFO : Last In First Out • Queue • 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 CharlsMarut • Ch 4, Intel Microprocessors – by Brey

More Related