8086 program to Add two 8 bit numbers



ØØ       Explanation :
·            Consider that a byte of data is present in the AL register and second byte of data is present in the BL register.
·            We have to add the byte in AL with the byte in BL.
·            Using ADD instruction add the contents of 2 registers.
·            Result will be stored in the AL register.

·            Display the result using display routine.
For example :
AL = 09 H

09 H

BL = 02 H
+
02 H



0B H = (11)10
ØØ       Algorithm :
Step  1     :    Initialise the data segment.
Step 2      :    Get the first number in AL register.
Step 3      :    Get the second number in BL register.
Step 4      :    Add the two numbers.
Step 5      :    Display the result.
Step 6      :    Stop
ØØ       Flowchart : Refer flowchart 8.

ØØ       Program :
.model small                   
.data                                                                                                    
a db 09H
b db 02H
.code
       mov     ax, @data      ; Initialize data section
       mov     ds, ax
       mov     al, a              ; Load number1 in al
       mov     bl, b             ; Load number2 in bl
       add      al, bl             ; add numbers and result in al
       mov     ch, 02h         ; Count of digits to be displayed
       mov     cl, 04h ; Count to roll by 4 bits
       mov     bh, al            ; Result in reg bh
l2:    rol       bh, cl            ; roll bl so that msb comes to lsb
       mov     dl, bh           ; load dl with data to be displayed
       and      dl, 0fH ; get only lsb
       cmp     dl, 09           ; check if digit is 0-9 or letter A-F
       jbe       l4
       add      dl, 07           ; if letter add 37H else only add 30H
l4:    add      dl, 30H
       mov     ah, 02           ; Function 2 under INT 21H (Display character)
       int       21H
       dec      ch                ; Decrement Count
       jnz       l2
       mov     ah, 4CH        ; Terminate Program
       int       21H
       end
ØØ       Result :
C:\>tasm 8bit-add.asm
Assembling file              :        8bit-add.asm
Passes                          :        1
Remaining memory        :        438k
C:\>tlink 8bit-add.obj
C:\>8bit-add
0B     
C:\>