Microprocessors 1. The 8051 Instruction Set. Microprocessors 1 1. Msc. Ivan A. Escobar Broitman

Similar documents
Microcontroller Intel [Instruction Set]

Programming of 8085 microprocessor and 8051 micro controller Study material

SN8F5000 Family Instruction Set

Digital Blocks Semiconductor IP

Q. Classify the instruction set of 8051 and list out the instructions in each type.

Digital Blocks Semiconductor IP

Digital Blocks Semiconductor IP

8051 Overview and Instruction Set

Instruction Set Of 8051

8051 Microcontroller

Architecture & Instruction set of 8085 Microprocessor and 8051 Micro Controller


DR bit RISC Microcontroller. Instructions set details ver 3.10

Microcontroller. Instruction set of 8051

UNIT 2 THE 8051 INSTRUCTION SET AND PROGRAMMING

Dodatak. Skup instrukcija

INSTRUCCIONES ARITMETICAS ERROR! MARCADOR NO DEFINIDO.

Memory organization Programming model - Program status word - register banks - Addressing modes - instruction set Programming examples.

Dragonchip. Instruction Set Manual

Module Contents of the Module Hours COs

UNIT THE 8051 INSTRUCTION SET AND PROGRAMMING

8051 Microcontrollers

TUTORIAL Assembly Language programming (2)

MASSEY UNIVERSITY PALMERSTON NORTH CAMPUS

Programming Book Microcontroller Kit. Rev 3.0 January, Wichit Sirichote

Assembly Language programming (2)

Highlights. FP51 (FPGA based 1T 8051 core)

Control Transfer Instructions Jump, Loop, and Call. ECE473/573 Microprocessor System Design, Dr. Shiue

ET355 Microprocessors Thursday 6:00 pm 10:20 pm

8051 Core Specification

C51 Family. Architectural Overview of the C51 Family. Summary

NAME as31 - An Intel 8031/8051 assembler. SYNOPSIS as31 [-h] [-l] [-s] [-v] [-Aarg] [-Ffmt] [-Ofile] infile.asm

Embedded Controller Programming

MCS -51 Programmer s Guide and Instruction Set

80C51 family programmer s guide and instruction set. 80C51 Family. PROGRAMMER S GUIDE AND INSTRUCTION SET Memory Organization. Philips Semiconductors

8051 Microcontroller Assembly Programming

8051 Programming: Arithmetic and Logic

Y51 Microcontroller. Technical Manual

Chapter Family Microcontrollers Instruction Set

TUTORIAL. Donal Heffernan University of Limerick May Tutorial D.Heffernan 2000,

ELEG3923 Microprocessor Ch.6 Arithmetic and Logics

Principle and Interface Techniques of Microcontroller

Assembly Language programming (3)

Application Brief D-005

C51 Family. C51 Family Programmer s Guide and Instruction Set. Summary

What Registers are available? Programming in Assembler. Assembler Programming - like early Basic. Assembler Data Movement Instructions

8051 Instruction Set

CHAPTER 6 ARITHMETIC, LOGIC INSTRUCTIONS, AND PROGRAMS

Arithmetic and Logic

AL8051S 8-BIT MICROCONTROLLER Application Notes

Introduction to uc & Embedded Systems

ENE 334 Microprocessors

EEE3410 Microcontroller Applications Department of Electrical Engineering Lecture 4 The 8051 Architecture

~: Simple Programs in 8051 assembly language :~

UNIT-III ASSEMBLY LANGUAGE PROGRAMMING. The CPU can access data in various ways, which are called addressing modes

MICROPROCESSOR LABORATORY MANUAL

UNIT MICROCONTROLLER AND ITS PROGRAMMING

Assembly Language Programming of 8085

ELEG3924 Microprocessor

8051 Programming using Assembly

Principle and Interface Techniques of Microcontroller

Assembly Language Programming of 8085

ELEG3923 Microprocessor Ch.3 Jump, Loop, and Call

Lecture Instruction Set

8051 Microcontroller Logical Operations. Prepared by : A. B. Modi Target Audience : 5 th Semester Students

Legacy documentation refer to the Altium Wiki for current information. TSK52x MCU

Section Microcontroller Instruction Set

ET355 Microprocessors Friday 6:00 pm 10:20 pm

Chapter 9. Programming Framework

8051 Single Board Monitor Programming. Minmon - Yeralan & Ahluwalia. PaulMon1 & PaulMon2 - Paul Stoffregen

Legacy documentation refer to the Altium Wiki for current information. TSK51x MCU

Lecture 5. EEE3410 Microcontroller Applications Department of Electrical Engineering Assembly Language Programming (1)


Application Brief D-002

MICROPROCESSOR & MICROCONTROLLER

UNIT MICROCONTROLLER

ET2640 Microprocessors

MASSEY UNIVERSITY PALMERSTON NORTH CAMPUS

CS 320. Computer Architecture Core Architecture

International Journal of Digital Application & Contemporary research Website: (Volume 1, Issue 2, September 2012)

CHAPTER 3 JUMP, LOOP, AND CALL INSTRUCTIONS

Microcontroller and Applications

Introduction To MCS-51

University of Toronto at Scarborough CSC CSSF - Microprocessor Systems

Question Bank Microprocessor and Microcontroller

Figure Programming model

1. Write A Program to move a block of data within the internal RAM

(2) Explain the addressing mode of OR What do you mean by addressing mode? Explain diff. addressing mode for 8085 with examples.

MODULE-1. Short Answer Questions

CW6631B Bluetooth Audio Player Microcontroller User Manual

Lab-Report Microprocessors

TYPES OF INTERRUPTS: -


8085 INSTRUCTION SET INSTRUCTION DETAILS

VRS540-4kB Flash, 128B RAM, 25~40MHz, 8-Bit MCU

MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI

VRS550-8kB Flash, 256B RAM, 25~40MHz, 8-Bit MCU VRS560-16kB Flash, 256B RAM, 40MHz, 8-Bit MCU

VRS570 32K Flash, 1kB RAM, 25~40MHz, 8-Bit MCU VRS580 64K Flash, 1kB RAM, 25~40MHz, 8-Bit MCU

JUMP, LOOP AND CALL INSTRUCTIONS

Chapter 3. Bit Addressable Area. By DeccanRobots

Transcription:

Microprocessors 1 The 8051 Instruction Set Microprocessors 1 1

Instruction Groups The 8051 has 255 instructions Every 8-bit opcode from 00 to FF is used except for A5. The instructions are grouped into 5 groups Arithmetic Logic Data Transfer Boolean Branching Microprocessors 1 2

Arithmetic Instructions ADD 8-bit addition between the accumulator (A) and a second operand. The result is always in the accumulator. The CY flag is set/reset appropriately. ADDC 8-bit addition between the accumulator, a second operand and the previous value of the CY flag. Useful for 16-bit addition in two steps. The CY flag is set/reset appropriately. Microprocessors 1 3

Add 1E44H to 56CAH Example 16-bit Addition CLR C ; Clear the CY flag MOV A, 44H ; The lower 8-bits of the 1 st number ADD A, CAH ; The lower 8-bits of the 2 nd number MOV R1, A ; The result 0EH will be in R1. CY = 1. MOV A, 1EH ; The upper 8-bits of the 1 st number ADDC A, 56H ; The upper 8-bits of the 2 nd number MOV R2, A ; The result of the addition is 75H The overall result: 750EH will be in R2:R1. CY = 0. Microprocessors 1 4

Arithmetic Instructions DA Decimal adjust the accumulator. Format the accumulator into a proper 2 digit packed BCD number. Operates only on the accumulator. Works only after the ADD instruction. SUBB Subtract with Borrow. Subtract an operand and the previous value of the borrow (carry) flag from the accumulator. A A - <operand> - CY. The result is always saved in the accumulator. The CY flag is set/reset appropriately. Microprocessors 1 5

Add 34 to 49 BCD Example BCD addition CLR C ; Clear the CY flag MOV A, #34H ; Place 1 st number in A ADD A, #49H ; Add the 2 nd number. ; A = 7DH DA A ; A = 83H Microprocessors 1 6

Arithmetic Instructions INC Increment the operand by one. The operand can be a register, a direct address, an indirect address, the data pointer. DEC Decrement the operand by one. The operand can be a register, a direct address, an indirect address. MUL AB / DIV AB Multiply A by B and place result in A:B. Divide A by B and place result in A:B. Microprocessors 1 7

Logical Operations ANL / ORL Work on byte sized operands or the CY flag. ANL A, Rn ANL A, direct ANL A, @Ri ANL A, #data ANL direct, A ANL direct, #data ANL C, bit ANL C, /bit Microprocessors 1 8

XRL Works on bytes only. Logical Operations CPL / CLR Complement / Clear. Work on the accumulator or a bit. CLR P1.2 Microprocessors 1 9

Logical Operations RL / RLC / RR / RRC Rotate the accumulator. RL and RR without the carry RLC and RRC rotate through the carry. SWAP A Swap the upper and lower nibbles of the accumulator. No compare instruction. Built into conditional branching instructions. Microprocessors 1 10

Data Transfer Instructions MOV 8-bit data transfer for internal RAM and the SFR. MOV A, Rn MOV A, direct MOV A, @Ri MOV A, #data MOV Rn, A MOV Rn, direct MOV Rn, #data MOV direct, A MOV direct, Rn MOV direct, direct MOV direct, @Ri MOV direct, #data MOV @Ri, A MOV @Ri, direct MOV @Ri, #data Microprocessors 1 11

Data Transfer Operations MOV 1-bit data transfer involving the CY flag MOV C, bit MOV bit, C MOV 16-bit data transfer involving the DPTR MOV DPTR, #data Microprocessors 1 12

Data Transfer Instructions MOVC Move Code Byte Load the accumulator with a byte from program memory. Must use indexed addressing MOVC MOVC A, @A+DPTR A, @A+PC Microprocessors 1 13

Data Transfer Instructions MOVX Data transfer between the accumulator and a byte from external data memory. MOVX MOVX MOVX MOVX A, @Ri A, @DPTR @Ri, A @DPTR, A Microprocessors 1 14

Data Transfer Instructions PUSH / POP Push and Pop a data byte onto the stack. The data byte is identified by a direct address from the internal RAM locations. PUSH POP DPL 40H Microprocessors 1 15

Data Transfer Instructions XCH Exchange accumulator and a byte variable XCH A, Rn XCH A, direct XCH A, @Ri XCHD Exchange lower digit of accumulator with the lower digit of the memory location specified. XCHD A, @Ri The lower 4-bits of the accumulator are exchanged with the lower 4-bits of the internal memory location identified indirectly by the index register. The upper 4-bits of each are not modified. Microprocessors 1 16

Boolean Operations This group of instructions is associated with the single-bit operations of the 8051. This group allows manipulating the individual bits of bit addressable registers and memory locations as well as the CY flag. The P, OV, and AC flags cannot be directly altered. This group includes: Set, clear, and, or complement, move. Conditional jumps. Microprocessors 1 17

CLR Clear a bit or the CY flag. CLR P1.1 CLR C Boolean Operations SETB Set a bit or the CY flag. SETB A.2 SETB C CPL Complement a bit or the CY flag. CPL 40H ; Complement bit 40 of the bit addressable memory Microprocessors 1 18

Boolean Operations ORL / ANL OR / AND a bit with the CY flag. ORL C, 20H ANL C, /34H ; OR bit 20 of bit addressable memory with the CY flag ; AND complement of bit 34 of bit addressable memory with the CY flag. MOV Data transfer between a bit and the CY flag. MOV C, 3FH ; Copy the CY flag to bit 3F of the bit addressable memory. MOV P1.2, C ; Copy the CY flag to bit 2 of P1. Microprocessors 1 19

Boolean Operations JC / JNC Jump to a relative address if CY is set / cleared. JB / JNB Jump to a relative address if a bit is set / cleared. JB ACC.2, <label> JBC Jump to a relative address if a bit is set and clear the bit. Microprocessors 1 20

Branching Instructions The 8051 provides four different types of unconditional jump instructions: Short Jump SJMP Uses an 8-bit signed offset relative to the 1 st byte of the next instruction. Long Jump LJMP Uses a 16-bit address. 3 byte instruction capable of referencing any location in the entire 64K of program memory. Microprocessors 1 21

Branching Instructions Absolute Jump AJMP Uses an 11-bit address. 2 byte instruction The upper 3-bits of the address combine with the 5-bit opcode to form the 1 st byte and the lower 8-bits of the address form the 2 nd byte. The 11-bit address is substituted for the lower 11-bits of the PC to calculate the 16-bit address of the target. The location referenced must be within the 2K Byte memory page containing the AJMP instruction. Indirect Jump JMP JMP @A + DPTR Microprocessors 1 22

Branching Instructions The 8051 provides 2 forms for the CALL instruction: Absolute Call ACALL Uses an 11-bit address similar to AJMP The subroutine must be within the same 2K page. Long Call LCALL Uses a 16-bit address similar to LJMP The subroutine can be anywhere. Both forms push the 16-bit address of the next instruction on the stack and update the stack pointer. Microprocessors 1 23

Branching Instructions The 8051 provides 2 forms for the return instruction: Return from subroutine RET Pop the return address from the stack and continue execution there. Return from ISV RETI Pop the return address from the stack. Restore the interrupt logic to accept additional interrupts at the same priority level as the one just processed. Continue execution at the address retrieved from the stack. The PSW is not automatically restored. Microprocessors 1 24

Branching Instructions The 8051 supports 5 different conditional jump instructions. ALL conditional jump instructions use an 8-bit signed offset. Jump on Zero JZ / JNZ Jump if the A == 0 / A!= 0 The check is done at the time of the instruction execution. Jump on Carry JC / JNC Jump if the C flag is set / cleared. Microprocessors 1 25

Branching Instructions Jump on Bit JB / JNB Jump if the specified bit is set / cleared. Any addressable bit can be specified. Jump if the Bit is set then Clear the bit JBC Jump if the specified bit is set. Then clear the bit. Microprocessors 1 26

Branching Instructions Compare and Jump if Not Equal CJNE Compare the magnitude of the two operands and jump if they are not equal. The values are considered to be unsigned. The Carry flag is set / cleared appropriately. CJNE CJNE CJNE CJNE A, direct, rel A, #data, rel Rn, #data, rel @Ri, #data, rel Microprocessors 1 27

Branching Instructions Decrement and Jump if Not Zero DJNZ Decrement the first operand by 1 and jump to the location identified by the second operand if the resulting value is not zero. DJNZ DJNZ Rn, rel direct, rel No Operation NOP Microprocessors 1 28