+ All Categories
Home > Documents > Objectives

Objectives

Date post: 15-Jan-2016
Category:
Upload: race
View: 32 times
Download: 0 times
Share this document with a friend
Description:
Chapter 3 - 8086 family assembly language programming - introduction from Microprocessors and Interfacing by Douglas Hall. Objectives. At the end of this chapter you will learn: Write a task list, flow chart or pseudo code for simple programming problem. - PowerPoint PPT Presentation
Popular Tags:
29
Chapter 3 - 8086 family assembly language programming - introduction from Microprocessors and Interfacing by Douglas Hall
Transcript
Page 1: Objectives

Chapter 3 - 8086 family assembly language programming - introduction

from Microprocessors and Interfacing by Douglas Hall

Page 2: Objectives

Objectives

• At the end of this chapter you will learn:

1. Write a task list, flow chart or pseudo code for simple programming

problem.

2. Write code, assemble and run a very simple assembly language program.

3. Describe the use of program development tools such as editors,

assemblers, linkers, locators, debuggers and emulators.

4. Properly document assembly language programs

Page 3: Objectives

Outline

• Program Development Steps• Representing program operations

• Finding the right instructions

• Writing a program

• Constructing the machine codes for 8086 instructions• Instruction templates

• MOD and R/M Bit patterns in 8086

• Tips for hand coding

• Writing programs for the use with assemblers• Program format

• Assembler Directives

• Types of numbers used in data statements

• Assembly Language Program development Tools

Page 4: Objectives

Program Development Steps

• The problem that you want to solve

• Just ask yourself question that “What do I really want this program to do?”

Page 5: Objectives

Representing program operations

• Formula or sequence of operations used to solve a programming problem is called as the algorithm.

• There are two ways of representing algorithms:• Flowchart

• Structured programming and pseudo code

Page 6: Objectives

Flowchart

• It uses graphical shapes to represent different types of programming operations.

• Flow chart symbols

Page 7: Objectives

Structured programming and pseudo code• Programs should be understandable to other programmers

• Two approaches top-down and bottom up approach

• Top-down: divide the program in to major modules and divide theses major modules in to sub modules and so on.

• Bottom-up: each programmer writes the low level module code and hopes that all pieces will eventually fit together.

• Use set of three to seven standard structures.

• Main structures are only three viz. IF-THEN-ELSE, SEQUENCE & WHILE-DO.

• The others are IF-THEN, CASE & REPEAT-UNTIL.

Page 8: Objectives

Finding the right instructions

• Instructions in 8086 are mainly divided into following categories• Data Transfer Instructions

• Arithmetic Instruction

• Bit manipulation Instruction

• String Instruction

• Program execution transfer Instruction

• Processor control Instruction

Page 9: Objectives

Writing a program

• You need to do the following to write the program effectively:• INITIALIZATION INSTRUCTIONS: used to initialize various parts of the program

like segment registers, flags and programmable port devices.

• STANDARD PROGRAM FORMAT: it’s a tabular format containing ADDRESS, DATA OR CODE, LABELS, MNEM, OPERAND(S) and COMMENTS as the columns.

• DOCUMENTATION: you should document the program. E.g. each page of the document contains page number and name of the program, heading block containing the abstract about the program, comments should be added wherever necessary.

Page 10: Objectives

Constructing the machine codes for 8086 instructions• Each instruction in 8086 is associated with the binary code.

• You need to locate the codes appropriately.

• Most of the time this work will be done by assembler

• The things needed to keep in mind is:• Instruction templates and coding formats

• MOD and R/M Bit patterns for particular instruction

Page 11: Objectives

Instruction template

• The Intel literature shows two different formats for coding 8086 instructions.

• Instruction templates helps you to code the instruction properly.

Coding Template for 8086 IN Instruction

Page 12: Objectives

MOD and R/M Bit patterns in 8086 (contd.)

Page 13: Objectives

MOD and R/M Bit patterns in 8086 - Use• If the other operand in the instruction is also one of the eight register

then put in 11 for MOD bits in the instruction code.

• If the other operand is memory location, there are 24 ways of specifying how the execution unit should compute the effective address of the operand in the main memory.

• If the effective address specified in the instruction contains displacement less than 256 along with the reference to the contents of the register then put in 01 as the MOD bits.

• If the expression for the effective address contains a displacement which is too large to fit in 8 bits then out in 10 in MOD bits.

Page 14: Objectives

MOV instruction coding format(contd.)• MOV SP, BX: this instruction will copy a word from BX register to SP

register.

Page 15: Objectives

MOV instruction coding format(contd.)• MOV 43H [SI], DH: copy a byte from DH register to memory location.

Page 16: Objectives

MOV instruction coding format

• MOV CX, [437AH]: copy the contents of the two memory locations to the register CX.

Page 17: Objectives

Tips for Hand Coding 8086 Programs

• Check your algorithm very carefully to make sure that it really does what it supposed to do.

• Initially write down assembly language statements and comments for your program.

• Recheck each statement to make sure that you have right instructions to implement your algorithm.

• Finally work out the binary code needed by each instruction and execute you program.

Page 18: Objectives

Writing programs for use with and assembler• Allows you to refer the data items by names rather than their offsets.

• How to write the programs so that it can be used by the assemblers.

Page 19: Objectives

Program Format

• There are assembler level directives available to the programmer so that he can write programs which are compatible with the assembler.

Sample formatted program

Page 20: Objectives

Assembler Directives(contd.)

• There are different directives available for assembler each with their unique purpose.

• SEGMENT and ENDS Directives

• Naming data and Addresses – EQU, DB, DW and DD Directives

• The ASSUME Directive

• The END Directive

Page 21: Objectives

Assembler Directives(contd.)

• SEGMENT and ENDS Directive:• The SEGMENT and ENDS directives are used to identify a group of data items

or group of instructions that you want to be put together in a particular segment.

• A logical segment is not usually given starting address when it is declared.

• EQU Directive: used to assign names to constants.

• DB, DW and DD Directives: used to assign names to variables.

Page 22: Objectives

Assembler Directives(contd.)

• The ASSUME Directive• 4 physical segments: code, data, stack and extra segment

• tells which logical segment to use for each of the physical segment at a given time.

• The END Directive• Tells the assembler to stop reading

• instruction or statements that are written after END will be ignored.

Page 23: Objectives

Assembly Language Program Development Tools• There are several tools available to support the programmer of

assembly language for better experience of programming. They are discussed in brief here:

• Editor

• Assembler

• Linker

• Locators

• Debuggers

• Emulators

Page 24: Objectives

Editor

• It is the program which allows you to create a file containing the assembly language statements for your program.

• Examples are PC Write, Word stars and the editors that comes with assemblers.

• Creates Source file to be processed by the assembler

Page 25: Objectives

Assembler

• It is the program which is used to transfer the assembly language mnemonics to corresponding binary codes. It works in passes.

• In the first pass, it determines the displacement of the named data items, the offset of labels etc. and puts this information to in a symbol table.

• In the second pass, it produces the binary codes for each instructions and inserts the offsets etc. that it calculated in the first pass.

• It generates two files namely object file (.OBJ) and assembler list file (.LST).

Page 26: Objectives

Linker

• It is a program used to join several object files into large object files.

• While writing large programs it is good to divide them into modules so that each modules can be written, tested, debugged independently and then use linker to combine the modules to form the actual program.

• It produces two files link file which contains the binary codes of all the combined modules and a link map file which contains the address information about the linked files.

Page 27: Objectives

Locators

• A locator is the program used to assign the specific addresses of where the segments of object code are to be loaded in to main memory.

• Examples include EXE2BIN which comes with the IBM PC DOS.

• Converts .exe to .bin files which has physical addresses

Page 28: Objectives

Debugger

• A debugger is the program which allows you to load your object code program in to system memory.

• It allows you to look at the contents of the registers and memory locations after your program runs.

• It also allows you to set breakpoints at any points in the program.

• It simply allows you to find the source of the problem into the program.

• There are lots of debuggers available like Borland Turbo Debugger, Microsoft’s Code view debugger etc.

Page 29: Objectives

Emulators

• One way to run your program

• It is mixture of hardware and software.

• Generally used to test the hardware and software of an external system such as microprocessor based instruments.

Applied Microsystems ES 1800 16-bit emulator


Recommended