Professional Documents
Culture Documents
An instruction is an order or command given to a processor by a computer program. All commands are known as instruction set and set of instructions is known as program.
8051 have in total 111 instructions, i.e. 111 different words available for program writing.
PPU,HISAR
Instruction Format
Where first part describes WHAT should be done, while other explains HOW to do it. The latter part can be a data (binary number) or the address at which the data is stored. Depending upon the number of bytes required to represent 1 instruction completely. PPU,HISAR
Types Of Instructions
1.
2.
3.
Types Of Instructions
1.
One/single byte instructions : If operand is not given in the instruction or there is no digits present with instruction, the instructions can be completely represented in one byte opcode. OPCODE 8 bit
PPU,HISAR
Types Of Instructions
2.
If 8 bit number is given as operand in the instruction, the such instructions can be completed represented in two bytes.
First byte Second byte OPCODE 8 bit data or I/O port
PPU,HISAR
Types Of Instructions
3. Three/triple byte instruction:
If 16 bit number is given as operand in the instructions than such instructions can be completely represented in three bytes 16 bit number specified may be data or address.
PPU,HISAR
Types Of Instructions
1. First byte will be instruction code. 2. Second byte will be 8 LSBs of 16 bit number. 3. Third byte will be 8 MSBs of 16 bit number.
Addressing Modes
Addressing modes specifies where the data (operand) is. They specify the source or destination of data (operand) in several different ways, depending upon the situation. Addressing modes are used to know where the operand located is.
PPU,HISAR
Addressing Modes
There are 5 types of addressing modes: Register addressing. Direct addressing. Register indirect addressing. Immediate addressing. Index addressing.
PPU,HISAR
1. 2. 3. 4. 5.
In register addressing mode; the source and/or destination is a register. In this case; data is placed in any of the 8 registers(R0-R7); in instructions it is specified with letter Rn (where N indicates 0 to 7).
PPU,HISAR
For example;
1.
2.
In direct addressing mode; the address of memory location containing data to be read is specified in instruction. In this case; address of the data is given with the instruction itself.
PPU,HISAR
For example;
1.
MOV A, 25H (This instruction will read/move the data from internal RAM address 25H and store it in the accumulator.
PPU,HISAR
In register indirect addressing mode; the contents of the designated register are used as a pointer to memory. In this case; data is placed in memory, but address of memory location is not given directly with instruction.
PPU,HISAR
For example;
1.
MOV A,@R0 This instruction moves the data from the register whose address is in the R0 register into the accumulator.
PPU,HISAR
In immediate addressing mode, the data is given with the instruction itself.
In this case; the data to be stored in memory immediately follows the opcode.
PPU,HISAR
For example;
1.
MOV A, #25H (This instruction will move the data 25H to accumulator.
PPU,HISAR
Offset (from accumulator) is added to the base index register( DPTR OR Program Counter) to form the effective address of the memory location.
In this case; this mode is made for reading tables in the program memory.
PPU,HISAR
For example;
1.
MOVC A, @ A + DPTR ( This instruction moves the data from the memory to accumulator; whose address is computed by adding the contents of accumulator and DPTR)
PPU,HISAR
Types Of Instructions
1. 2. 3. 4. 5.
Data transfer instructions. Arithmetic instructions. Logical instructions. Logical instructions with bits. Branch instructions.
PPU,HISAR
Data can be transferred to stack with the help of PUSH and POP instructions.
PPU,HISAR
MNEMONIC
DESCRIPTION
BYTES
MOV A,Rn
MOV A,Rx MOV A,@Ri
(A)
(A) (A)
(Rn)
(Rx) (Ri)
1
2 1
PPU,HISAR
(A) (Rn)
Data (A)
2 1
MOV Rn, Rx
(Rn)
(Rx)
PPU,HISAR
(Rn) (Rx)
Data (A)
2 2
MOV Rx, Rn
(Rx)
(Rn)
PPU,HISAR
(RX) (Rx)
(Ry) (Ri)
3 2
MOV Rx, # X
(Rx)
Data
PPU,HISAR
(Ri) (Ri)
(A) (Rx)
1 2
MOV @ Ri, #X
(Ri)
Data
PPU,HISAR
(DPTR) (A)
Data
3 1
(A+DPTR)
(A)
(A+PC)
PPU,HISAR
A (A)
(Ri) (DPTR)
1 1
MOVX @Ri, A
(Ri)
(A)
1
PPU,HISAR
MOVX @ DPTR, A
(DPTR)
(A)
2
PPU,HISAR
XCH A, Rn
(A)
(Rn)
XCH A, Rx
XCH A, @Ri
(A)
(A)
(Rx)
(Ri)
2
1
PPU,HISAR
PPU,HISAR
Arithmetic Instructions
These instructions perform several basic operations. After execution, the result is stored in the first operand. 8 bit addition, subtraction, multiplication, increment-decrement instructions can be performed.
PPU,HISAR
Arithmetic Instructions
MNEMONICS
DESCRIPTION
BYTE
ADD A, Rn
ADD A, Rx AAD A, @ Ri
A = A + Rn
A = A + Rx A = A+ Ri
1
2 1
PPU,HISAR
Arithmetic Instructions
ADD A, # X
A = A + Byte
ADDC A, Rn
ADDC A , Rx
A = A + Rn + C
A = A + Rx + C
1
2
PPU,HISAR
Arithmetic Instructions
ADDC A, @ Ri
A = A + Ri + C
ADDC A, # X
SUBB A, Rn
A = A + Byte + C
A = A Rn 1
2
1
PPU,HISAR
Arithmetic Instructions
A = A Rx 1 A = A Ri 1 A = A Byte 1
2 1 2
PPU,HISAR
Arithmetic Instructions
A=A+1 Rn = Rn + 1 Rx = Rx + 1
1 1 2
PPU,HISAR
Arithmetic Instructions
INC @ Ri
Ri = Ri + 1
DEC A
DEC Rn
A=A1
Rn = Rn 1
1
1
PPU,HISAR
Arithmetic Instructions
DEC Rx
Rx = Rx 1
DEC @ Ri
INC DPTR
Ri = Ri 1
DPTR = DPTR + 1
1
1
PPU,HISAR
Arithmetic Instructions
MUL AB
B:A = A * B
DIV AB
A = [A/B]
1
1
PPU,HISAR
Logical Instructions
These instructions perform logical operations between two register contents on bit by bit basis.
Logical Instructions
MNEMONIC
DESCRIPTION
BYTE
ANL A, Rn
ANL A, Rx ANL A,@ Ri
(A)
(A) (A)
(A) ^ (Rn)
(A) ^ (Rx) (A) ^ (Ri)
1
2 1
PPU,HISAR
Logical Instructions
ANL A, # X
ANL Rx, A
ANL Rx,# X
(Rx)
(A) ^ (Rx)
2
3
PPU,HISAR
Logical Instructions
ORL A, Rn
(A)
(A) + (Rn)
ORL A, Rx
ORL A, @ Ri
(A)
(A)
(A) + (Rx)
(A) + (Ri)
2
2
PPU,HISAR
Logical Instructions
ORL Rx, A
ORL Rx,# X
2
1
XORL A, Rn Logical exclusive OR operation between the contents of accumulator and R register.
PPU,HISAR
Logical Instructions
XORL A, Rx Logical exclusive OR 2 operation between the contents of the accumulator and directly addressed register Rx. XORL A,@ Ri Logical exclusive OR 1 operation between the contents of the accumulator and directly addressed register.
PPU,HISAR
Logical Instructions
XORL A, # X Logical exclusive OR 2 operation between the contents of accumulator and the given 8 bit data. XORL Rx, A Logical exclusive OR 2 operation between the contents of the accumulator and directly addressed register Rx.
PPU,HISAR
Logical Instructions
XORL Rx, # X Logical exclusive OR 3 operation between the contents of the directly addressed register Rx and the given 8 bit data. CLR A (A) 0 1 CPL A (A) (/A)
PPU,HISAR
Logical Instructions
SWAP A
(A3-0)
(A7-4)
RL A
RLC
1
1
Logical Instructions
RR A
RRC A
PPU,HISAR
PPU,HISAR
MNEMONIC
DESCRIPTION
BYTE
CLR C
CLR bit SETB C
(C=0)
Set directly
(1 = 0, 0 = 1)
Complement directly
PPU,HISAR
ANL C, bit Logical AND operation between Carry bit and directly addressed bit. ANL C,/bit Logical AND operation between Carry bit and inverted directly addressed bit.
PPU,HISAR
ORL C, bit Logical OR operation between Carry bit and directly addressed bit. ORL C,/bit Logical OR operation between Carry bit and inverted directly addressed bit.
PPU,HISAR
PPU,HISAR
In this group, instructions are related to the flow of the program, these are used to control the operation like, JUMP and CALL instructions. Some instructions are used to introduce delay in the program, to the halt program.
PPU,HISAR
MNEMONIC
DESCRIPTION
BYTE
ACALL adr11
LCALL adr16
PPU,HISAR
RET
PPU,HISAR
RET1
AJMP addr11
(PC) (PC10-0)
(PC)
addr15-0
short jump from 2 (from -128 to +127 locations in relation to first next instruction)
PPU,HISAR
JC rel
(PC) (PC) + 2 IF ( C ) = 1 THEN (PC) (PC) + rel (PC) (PC) + 2 IF ( C) = 0 THEN (PC) (PC) + rel
PPU,HISAR
JNC rel
JB bit, rel
Jump if addressed bit is set. Short jump. Jump if addressed bit is set and clear it. Short jump.
PPU,HISAR
(A) + (DPTR)
1 2
PPU,HISAR
JNZ rel
CJNE A, Rx, rel Compare the contents 3 of acc. And directly addressed register Rx. Jump if they are different. Short jump.
PPU,HISAR
(PC) (PC) + 3 3 IF ( A) < > data THEN (PC) (PC) + relative offset IF (A) < data THEN ( C ) 1 ELSE ( C ) 0
PPU,HISAR
CJNE @ RI, # x, rel (PC) (PC) + 3 3 IF (Rn) <> data THEN (PC) (PC) + relative offset IF (Rn) < data THEN ( C ) 1 ELSE ( C ) 0
PPU,HISAR
CJNE @ Ri, # X, rel (PC) (PC) + 3 3 IF ((Ri)) <> data THEN (PC) (PC) + relative offset IF ((Ri)) < data THEN ( C ) 1 ELSE ( C ) 0
PPU,HISAR
DJNZ Rn , rel
(PC) (PC) + 2 2 (Rn) (Rn) - 1 IF (Rn) > 0 or (Rn) < 0 THEN (PC) (PC) + rel
PPU,HISAR
NOP
No operation
Summary
Instruction set. Addressing modes. Data transfer instruction. Arithmetic instruction. Logical instruction. Logical operation on bits.
PPU,HISAR