LaboratoryNo2 Debug
LaboratoryNo2 Debug
1. Objective(s):
1. Perform the arithmetic operations based on the given number system using Debug.
2. Demonstrate the knowledge in data manipulation using Debug.
3. Discussion
Debug is software that is used as tool for testing executable programs. A feature of DEBUG is that it
displays all program code and data in hexadecimal format and any data you enter into memory must also
be in hex form. It is found in any PC with the MS_DOS which make it available to any user who has access
to a machine with these characteristics.
Debug provides a set of commands that lets you perform a number of useful operations. It is possible to
visualize the values of the internal registers of the CPU using the DEBUG program.
DEBUG Commands
G (Go)
Runs the program as a whole in memory and displays the output
Ex. –G
T (Trace)
Runs the program in single step mode. It also displays the new values of the registers and
the next instructions to be executed.
Ex. –T
The following commands are the operation used to program in assembly language.
it is used to get the sum of two registers or a register and a data and store the result to the left
most register.
Format: add <destination>, <source>
add <register>, <register> add
<register>, <data>
Format: dec<register>
Desktop Computer
DOSbox application with Debug file
5. Procedure:
To begin working with DEBUG, type the following prompt in your computer.
C:\> debug
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 key]
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:
-rbx
BX 0000
This instruction will only display the content of the BX register and the DEBUG indicator change from “-“ to
“:”. When the prompt is like this, it is possible to change the value of the register which was seen by typing
the new value and [enter], or the old value can be left by pressing [enter] without typing any other value.
Creating Basic Assemble Program in DebugTo assemble a program on the DEBUG, the
“a” (assemble) command is used; when this command is used, the address where you want the
assembling to begin can be given as a parameter, if the parameter is omitted the assembling will be
initiated at the locality specified by CS:IP, usually 0100H which is the locality where programs
with .COM extension must be initiated.
Example: Values of registers to be entered in DEBUG program are as follows:
Type the command “t” (trace) to execute each instruction of the program.
3. What is the purpose of NOP in your program in DEBUG? Try not to include the NOP in your code,
what happened?
Assemble Program using Debug
Creating program on DEBUG, proceed debug type “-a 100” each input line starts with a segment-offset
address, and if you want to see the output type “- g”.
1. mov ax, 1234H
mov bh, 30
mov bl, 12H
mov ax, bx
mov cl, 15
4. mov ax,1234H
add al, ah
mov bx, 0034H
AX = BX= CX= DX=
SS = IP= ES= SI=
QUESTIONS:
3. What is the purpose of NOP in your program in DEBUG? Try to not include the NOP in your
code, what happened?
6. Supplemental Activities:
A. Using DEBUG, determine the contents of AX, BX, CX, and DX after executing every sequence
of assembly language instruction. Write your answer on the space provided.
Table 1:
Register Code AX BX CX DX
MOV AX, 0420H
MOV BX, 1220H
MOV CX, 0002H
MUL CX
SUB AX, BX
ADD AL, BL
ADD CL, AH
Table 2: