How Do I Correct Errors in My TASM Code for Calculating Averages?

  • Thread starter Thread starter nuubik
  • Start date Start date
AI Thread Summary
The discussion focuses on correcting errors in TASM code designed to find negative elements in an array and calculate their average. The original code contains a redundant instruction that decrements the CX register, which is unnecessary since the loop already handles this. Participants suggest using a debugger, specifically tdebug.exe, to step through the code and monitor register values and memory. This tool is recommended as essential for debugging assembly code effectively. Overall, the conversation emphasizes the importance of debugging techniques in resolving coding errors.
nuubik
Messages
1
Reaction score
0

Homework Statement


I had to write program which finds all negative elements in columns and calculates their average values and i had to do this with index addressing method. My code below:
Code:
.model tiny
.code
.startup
           Org 100h
           Jmp Short Start
Vector     Dw  2, -7, -1, 16, -15
N          Equ 5

Start:

           Xor Bx, Bx
           Xor Dx, Dx
           Xor Si, Si
           Mov Cx, N
           Dec Cx
S:
           Mov Ax, Vector[Bx]   
           Add Bx, 2
           Cmp Ax, 0
           Jge _next
           Inc Si
           Add Dx, Ax
           
_next:     
           Dec Cx
           Loop S

AVG:
           Mov Ax, Dx
           Cwd
           Idiv Si

.exit 0
end
Could someone help me fixing my errors? I would be very thankful.
 
Physics news on Phys.org
Note that loop decrements cx. You don't need the dec cx instruction. Is there a debugger you can use to step through the code one instruction at a time so you can monitor the registers (these also let you view chunks of memory)?
 
The name of the debugger is tdebug.exe that comes with Turbo. It's pretty easy to use. If you're writing assembly code, it's pretty much essential to use a debugger.
 
Back
Top