View
112
Download
3
Category
Tags:
Preview:
Citation preview
Introduction to 8085 Assembly Introduction to 8085 Assembly Language ProgrammingLanguage Programming
7-2
Assembly ProcessConvert assembly language file (.asm)into an executable file (.obj) for the LC-3 simulator.
First Pass: *scan program file
*find all labels and calculate the corresponding addresses; this is called the symbol table
Second Pass: *convert instructions to machine language,
using information from symbol table
Instruction Classification
• Instruction: is a binary pattern designed inside µp to perform a specific function.
• Instruction Set: is the entire group of instructions• 8085 is upward compatible
8085 inst Classification
• The instruction set is classified into the following five functional categories:
1. Data transfer (copy) operations2. Arithmetic operations3. Logical operations4. Branching operations5. Machine control operations
Data transfer (copy) operation
• Copying data from source to destination without modifying the contents of the source
• The data is transferred :1. Between registers2. Specific data byte to reg. or mem loc3. Between mem loc and registers4. Between an I/O device and accumulator
Arithmetic operations
• Perform arithmetic operations such as:– Addition – adding any 8-bit numbers, mem
loc, or reg. content can be added to the contents of the accumulatoraccumulator
– Subtraction - Subtracting any 8-bit numbers, mem loc, or reg. content can be subtracted from the contents of the accumulator (using 2’s complement)
– Increment / Decrement
Logical operations
• AND, OR, Exclusive OR:- ANDing, ORing, or XORing any 8-bit numbers, mem loc, or reg. content can be ANDed, ORed, or XORed with the contents of the accumulator
• Rotate: shifting the bits in the accumulator• Compare: (=, <, >, with the contents of acc.)• Complement: complementing the cont. of acc.
Branching Operations
• (conditional and noncondithional(• Jump: conditional jump, decision making,
Z, CY flags.• Call, return, and restart
Machine control operations
Halt, Interrupt, or do nothing
Data format
• The instruction consists of the following tow parts:
– Operation code (opcode)– Operand
Instruction Word Size
• The 8085 instructions are classified as follows:– One – word or 1 – byte instruction– Tow – word or 2 – byte instruction– Three – word or 3 – word instruction( Word = 1 byte in 8085)
One – byte instruction
• Includes the opcode and operand in the same byte, such as
TaskopcodeoperandBinary code
Hex code
Copy the contents of acc to reg. CMOVC, A0100 11114FH
Add the cont. of reg. B to the Acc.ADDB1000 000080H
Complement the contents of the acc.
CMA----0010 11112FH
Tow Byte Instructions
• The first byte specifies the opcode and the second specifies the operand
TaskopcodeoperandBinary codeHex code
Load an 8-bit data byte in the acc.
MVIA, DATA 0011 1110DATA
3EHDATA
Three byte instruction
• The first byte specifies the opcode and the next two bytes specify 16 bit address
TaskopcodeoperandBinary codeHex code
Transfer the prog sequ. To the mem loc 2085H
JMP2085H1100 00111000 01010010 0000
C3H85H20H
Data Format
• ASCII Code• BCD Code• Signed Integer• Unsigned Integers
Writing, Assembling and Execution of Assembly programs
• Add two hex. Numbers– PROBLEM STATEMENT
• Write instruction to load 2 hex no. 32H and 48H in reg. A and B respectively, Add the numbers and display the sum at the led output port1
– PROBLEM ANALYSIS• Divide the problem into small steps as follows
– Load the numbers in the registers– Add the numbers– Display the sum at the output port PORT1
• FLOW CHART
End
Start
Load Hexadecimal Numbers
Add Numbers
Display Sum
MVI A,32H ; Load the Register A with 32H
MVI B,48H ; Load the Register B with 48H
ADD B ; Add the 2 bytes and save res in A
OUT 01H ; Display the acc. Contents at port 01H
HALT ; End
Mnemonics Hex Code
MVI A,32H 3E32
MVI B,48H 0648
ADD B 80OUT 01H D3
01HALT 67
CONVERTING FROM ASSEMBLY LANGUAGE TO HEX CODE
STORING IN MEMORY AND CONVERTING FROM HEX STORING IN MEMORY AND CONVERTING FROM HEX CODE TO BINARY CODECODE TO BINARY CODE
Assume that R/W memory range from 2000H to 20FFH and the system has LED output port with the address 01H now to enter the program:
1. Reset the system2. Enter the first memory address using Hex key where
the program should be stored say 2000H3. Enter each machine code by pushing Hex Key, for
example to enter the first 3EH, press 3, then E, then STORE keys.
4. Repeat step 3 untill the last machine code 5. Reset the system.
• How hex code converted into binary ??
Mnemonics Hex Codememory contents Mem AddMVI A,32H 3E 0 0 1 1 1 1 1 0 2000
32 0 0 1 1 0 0 1 0 2001MVI B,48H 06 0 0 0 0 0 1 1 0 2002
48 0 1 0 0 1 0 0 0 2003ADD B 80 1 0 0 0 0 0 0 0 2004OUT 01H D3 1 1 0 1 0 0 1 1 2005
01 0 0 0 0 0 0 0 1 2006HLT 76 0 1 1 1 1 1 1 0 2007
8085 Mnemonics
Hex Code
Binary Code
Flow Chart
ManualLookup
Monitor Program
To memory for Storage
Recommended