bettybarnes 7 Posting Whiz in Training

hi it's been a while since im studying assembly language..
I'm a bit confused about this language(coz i'm used to high-level language >.<)


can someone explain each line of code to me?
here it is:

.MODEL SMALL
.stack 100h
.DATA
        NUM_1  DB ?
        NUM_2  DB ?
        NUM_3  DB ?
        V1     DB ?
        V2     DB  ?
        NL     DB  '  ', 0DH,0AH,'$'
        

.CODE                   
       MAIN PROC
                MOV AX,@DATA
                MOV DX,AX
                MOV CX,10
                MOV CH,0
				
                MOV NUM_1,0
                MOV NUM_2,1

                MOV DL,NUM_1
                
                OR  DL,30H
                MOV AH,02H
                INT  21H

                MOV DL,NUM_2
                OR DL,30H
                
                MOV AH,02H
                INT 21H
                
               L1:
                        
                        MOV AL,NUM_1
                        ADD AL,NUM_2
                        MOV AH,0
                        MOV BL,AL
                        MOV DL,10
                        DIV DL
                        ADD AX,3030H

                        MOV V1,AL
                        MOV V2,AH

                        MOV DL,V1
                        MOV AH,02H
                        INT 21H
                        
                        MOV DL,V2
                        MOV AH,02H
                        INT 21H

                SHIFT:
                        MOV AL,NUM_2
                        MOV NUM_1,AL
                        MOV NUM_2,BL
                        LOOP L1

                MOV AX,4C00H
                INT 21H

        MAIN ENDP
       END MAIN

and i just want to know how to limit it to 8?
this is a fibonacci series program and it goes up to 89.
and also i want to exclude each zeroes before the number and want to have space for each.