Nothing Special   »   [go: up one dir, main page]

Objective: Theory:: Microprocessor & Microcontroller (CE-308)

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Microprocessor & Microcontroller (CE-308)

LAB#2
Objective:
Display different command using debug utility.

Theory:
DEBUG PROGRAM:

To create a program in assembler two options, exist, the first one is to use the assembler program
such as TASM or Turbo Assembler from Borland, and the second one is to use the debugger - on
this first section we will use this last one since it is found in any PC with the MS-DOS, which
makes it available to any user who has access to a machine with these characteristics.
Debug can only create files with a .COM extension, and because of the characteristics of these
kinds of programs they cannot be larger than 64 kb, and they also must start with displacement,
offset, or 0100H memory direction inside the specific segment.

Debug provides a set of commands that lets you perform a number of useful operations:
A Assemble symbolic instructions into machine code
D Display the contents of an area of memory
E Enter data into memory, beginning at a specific location
G Run the executable program in memory
N Name a program
P Proceed, or execute a set of related instructions
Q Quit the debug program
R Display the contents of one or more registers
T Trace the contents of one instruction
U Unassembled machine code into symbolic code
W Write a program onto disk
 It is possible to visualize the values of the internal registers of the CPU using the Debug
program. To begin working with Debug, type the following prompt in your computer:

C:/>Debug [Enter]
 On the next line a dash will appear, this is the indicator of Debug, at this moment the
instructions of Debug can be introduced using the following command:

-r[Enter]
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0100 NV EI PL NZ NA PO NC
0D62:0100 2E CS:
0D62:0101 803ED3DF00 CMP BYTE PTR [DFD3],00 CS:DFD3=03
 All the contents of the internal registers of the CPU are displayed; an alternative of
viewing them is to use the "r" command using as a parameter the name of the register
whose value wants to be seen.
 For example:

9
Microprocessor & Microcontroller (CE-308)

-rbx
BX 0000
:

ASSEMBLER STRUCTURE
In assembly language code lines have two parts, the first one is the name of the instruction which
is to be executed, and the second one are the parameters of the command. For example:
add ah,bh
Here "add" is the command to be executed; in this case an addition, and "ah" as well as "bh" are
the parameters.For example:
mov al, 25
In the above example, we are using the instruction mov, it means move the value 25 to al
register.The name of the instructions in this language is made of two, three or four letters. These
instructions are also called mnemonic names or operation codes, since they represent a function
the processor will perform.

DIRECT ADDRESSING
Sometimes instructions are used as follows:
add al,[170]
The brackets in the second parameter indicate to us that we are going to work with the content of
the memory cell number 170 and not with the 170 value, this is known as direct addressing.

Creating basic assembler program:

a 100[enter]
mov ax,0002[enter]
mov bx,0004[enter]
add ax,bx[enter]
nop[enter][enter]
C:\>debug
-a 100
0D62:0100 mov ax,0002
0D62:0103 mov bx,0004
0D62:0106 add ax,bx
0D62:0108 nop
0D62:0109
 Type the command "t" (trace), to execute each instruction of this program, example

-t
AX=0002 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0103 NV EI PL NZ NA PO NC
0D62:0103 BB0400 MOV BX,0004
 You see that the value 2 move to AX register. Type the command "t" (trace), again, and
you see the second instruction is executed.

10
Microprocessor & Microcontroller (CE-308)

-t
AX=0002 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0106 NV EI PL NZ NA PO NC
0D62:0106 01D8 ADD AX,BX
 Type the command "t" (trace) to see the instruction add is executed, you will see the
follow lines:

-t
AX=0006 BX=0004 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0D62 ES=0D62 SS=0D62 CS=0D62 IP=0108 NV EI PL NZ NA PE NC
0D62:0108 90 NOP

LAB TASKS:

11
Microprocessor & Microcontroller (CE-308)

1) Display the contents of the defined memory locations 120, 133, 122 using D command.
2) Edit the contents of the above memory locations 120,133,122 by 02,04,03 respectively using
E command .
3) Then again display the contents of the memory locations which we edit in the Task# 2.
4) Add the contents of the above defined memory location using mov instruction.
5) Subtract the content of 120 location by 133 and then store the result in the120 location and
add the new 120 location contents with the content of 122 location.
6) Perform the following debug activities

ACT 1.1 : Use debug command U100 to un-assemble the instructions in ACT 1.1. What is the machine code
corresponding to each assembly code instruction.
Assembly Code Machine Code
mov ax,2864h
add ax,3749h
mov bx,ax
sub bx,2805
Nop
ACT 1.2 : How many bytes does it need to represent each instruction in binary.
Assembly Code No. Of Byte
mov ax,2864h
add ax,3749h
mov bx,ax
sub bx,2805
Nop
ACT 1.3 : What are the contents of CS , IP , AX & BX ?. Use debug command R to display these
information.
Register Content
CS
IP
AX
BX
ACT 1.4 : Predict the contents of the following registers after execution of each instruction CS , IP , AX ,
BX
Register Mov ax,2864 Add ax,3794 Mov bx,ax
CS
IP
AX
BX

12

You might also like