instructionsetof8086 by alwani

19
By: Himanshu Alwani Venkatesh Sharma 14/10/14 1 [email protected]

Upload: himanshu-alwani

Post on 15-Jul-2015

42 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Instructionsetof8086 by Alwani

By:

Himanshu Alwani

Venkatesh Sharma

14/10/14 [email protected]

Page 2: Instructionsetof8086 by Alwani

Classification of Instruction SetData Transfer Instructions

Logical & Shift & Rotate Instructions

Arithmetic Instructions

String Instructions

Branch & Loop Instructions

Miscellaneous Instructions

2

Page 3: Instructionsetof8086 by Alwani

Data Transfer InstructionsThese instructions are used to transfer data

from source to destination.

The operand can be a constant, memory location, register or I/O port address.

1. MOV-Copy byte or word from source to destination

2. PUSH-Copy specified word to top of stack

3

Page 4: Instructionsetof8086 by Alwani

Data Transfer Inst.(continue)3. POP-Copy word from top of stack to specified

location

4. XCHG-Exchange bytes or exchange words

5. IN-Copy a byte or word from specified port to acc.

6. OUT-Copy a byte or word from acc.to specified port

7. XLAT-Translate a byte in AL using table in memory

8. LEA-Load Effective address of operand into specified register

9. LAHF-Load AH with the lower byte of the flag register

4

Page 5: Instructionsetof8086 by Alwani

Data Transfer Inst.(continue)10. LDS/LES-Load pointer to DS/ES.i.e.loads DS/ES

register and other specified register from memory

5

Page 6: Instructionsetof8086 by Alwani

Logical Instructions1. AND-AND each bit in a byte or word with the

corresponding bit in another byte or a word

2. OR-OR each bit in a byte or word with the corresponding bit in another byte or a word

3. NOT-Invert each bit of a byte or word

4. XOR-Exclusive-OR each bit in a byte or word with the corresponding bit in another byte or a word

5. TEST-AND operands to update flags,but don’t change operands

6

Page 7: Instructionsetof8086 by Alwani

Shift & Rotate Instructions1. SHL/SAL-Shifts bits or byte or word left, put zero(‘s)

in LSB(‘s)

2. SHR-Shifts bits or byte or word right, put zero(‘s) in MSB(‘s)

3. SAR-Shifts bits or byte or word right, copy old MSB into new MSB

4. ROR-Rotate bits of byte or word right, LSB to MSB and to CF

5. ROL-Rotate bits of byte or word left, MSB to MSB and to CF

7

Page 8: Instructionsetof8086 by Alwani

Shift & Rotate Instructions6. RCR-Rotate bits of byte or word right, LSB to CF and

CF to MSB.

7. RCL-Rotate bits of byte or word left, MSB to CF and CF to LSB

8

Page 9: Instructionsetof8086 by Alwani

Arithmetic Instructions1. ADD-Add specified byte to byte or specified word to

word

2. ADC-Add byte + byte +CF or word+word+CF

3. INC- Increment specified byte or specified word by 1

4. DEC- Decrement specified byte or specified word by1

5. SUB-Subtract byte from byte or word from word

6. SBB- Subtract byte from byte with borrow(CF)

7. CMP-Compare to specified byte or specified word

8. NEG-Forms 2’s compliment

9

Page 10: Instructionsetof8086 by Alwani

Arithmetic Instructions9. MUL- Multiply unsigned byte by byte or unsigned

word by word

10. IMUL- Multiply signed byte by byte or unsigned word by word

11. DIV- Divide unsigned word by byte or unsigned double word by word

12. IDIV- Divide signed word by byte or signed double word by word

13. AAA-ASCII adjust after addition

10

Page 11: Instructionsetof8086 by Alwani

Arithmetic & ASCII Inst.14. AAS- ASCII adjust after subtraction

15. AAM-ASCII adjust after multiplication

16. AAD-ASCII adjust before division

17. DAA-Decimal(BCD) adjust after addition

18. DAS-Decimal(BCD) adjust after subtraction

19. CBW-Fill upper byte or word with copies of sign bit of lower byte

20. CWD-Fill upper word of double word with sign bit of lower word

11

Page 12: Instructionsetof8086 by Alwani

String Instructions There are very strong set of string instructions in 8086.

By using these string instructions, the size of the program is considerably reduced.

1. REPE/REPZ-Repeat instruction on until CX=O or ZF not equals to 1

2. REP-Repeat instruction on until CX=O

3. MOVS/MOVSB/MOVSW-Move byte or word from one string to another

21-Nov-2010 12

Page 13: Instructionsetof8086 by Alwani

String Instructions4. REPNE/REPNZ-Repeat until CX=O or ZF=1

5. CMPS/CMPSB/CMPSW-Compare two string bytes or two string words

6. SCAS/SCASB/SCASW-Scan a string. Compare a string byte with a byte in AL or a string word with a word in AX

21-Nov-2010 [email protected] 13

Page 14: Instructionsetof8086 by Alwani

Conditional Jump TableMnemonic Meaning Jump Condition

JA Jump if Above CF = 0 and ZF = 0

JAE Jump if Above or Equal CF = 0

JB Jump if Below CF = 1

JBE Jump if Below or Equal CF = 1 or ZF = 1

JC Jump if Carry CF = 1

JE/JZ Jump if Equal ZF = 1

JNC Jump if Not Carry CF = 0

JNE Jump if Not Equal ZF = 0

JNZ Jump if Not Zero ZF = 0

JPE Jump if Parity Even PF = 1

JPO Jump if Parity Odd PF = 0

JMP Unconditional Jump -

14

Page 15: Instructionsetof8086 by Alwani

Branch & Loop Inst.1. CALL-Call a procedure(sub-program),save return

address on stack

2. RET- Return from procedure to calling program

3. JNO-Jump if not overflow(OF=0)

4. JO-Jump if OF=1

5. JS-Jump if SF=1

6. INTO-Interrupt program execution if OF=1

7. LOOP-Loop through a sequence of instructions until CX=O

15

Page 16: Instructionsetof8086 by Alwani

Branch & Loop Inst.8. JCXZ-Jump to specified address if CX=O.

16

Page 17: Instructionsetof8086 by Alwani

Miscellaneous Instructions1. CLC-Clear carry flag to zero

2. STC-Set the carry flag to ONE

3. STD-Set DF=1 and decrement SP

4. CMP-Compliment the state of carry flag(CF)

5. STI-Set IE=1(Enable INTR input)

6. CLD-Clear DF=O

7. HLT-Halt the programs

8. CLI-IE=O.(Disable INTR input)

9. WAIT-wait until signal on the TEST pin is low

17

Page 18: Instructionsetof8086 by Alwani

Miscellaneous Instructions10. NOP-No action except fetch and decode

11. LOCK-Prevents another processor from taking the bus while the adjacent instruction executes.

18

Page 19: Instructionsetof8086 by Alwani

19