Writing a program 

How to write an assembly language program:

These are the steps that should be followed for writing an assembly language program:

  • First, define the problem
  • Write the algorithm
  • Translate into assembly mnemonics
  • Test and Debug the program in case of errors

  • The translation phase consists of the following steps:
  • Define type of data the program will deal with
  • Write appropriate instructions to implement the algorithm
  • Problem:

    In this example you are asked to write a program that calculates the average of two numbers.

    Write the algorithm:

    • add maximum temp and minimum temp to get the sum
    • divide sum by 2 to get average

    Translate into Assembly:

  • what is our data?
  • what are our initialization steps?
  • Here is the listing of the program as it should be given to the computer. It should of course first be assembled and linked.

    Program that calculates the average of 2 numbers
    .model small
    
    .data
    	max_temp DB 92h       
    	min_temp DB 52h
    	avg_temp DB ?
    .code
    .startup
    
    	mov ax,@data          
    	mov ds,ax
    	mov al, max_temp      
    	add al, min_temp      
    	mov ah, 00h           
    	adc ah, 00h           
    	mov bl, 02h          
    	div bl               
    	mov avg_temp, al     
    .exit
    end                           
     


    Debugging Tips:

    As a general rule, no program is supposed to work as one would expect when it is run for the first time. Therefore, a debugging phase, in which you have to find and correct errors is necessary.
    Here are some tips to help you go through the debugging phase.

    Be sure to work out an algorithm first…not as you go along
    write and test sections of a larger program, rather than waiting until you think you’re done to do any testing
    make sure you coded according to a correct algorithm
    add a set of eyes or watches
    use a debugger such as the codeview that you use in the lab.
    single step through code
    strategically place breakpoints