.MODEL TINY

.DATA
    MSG DB "Hello, World!$"

.CODE

MAIN PROC
    
    MOV AH, 02H
    MOV DL, 10
    INT 21H
    MOV DL, 13
    INT 21H
    
    MOV AH, 09H
    LEA DX, MSG
    CALL DEMO

    MOV AH, 4CH
    INT 21H
MAIN ENDP

DEMO PROC
    INT 21H
    RET
DEMO ENDP

END MAIN
				
			
				
					.MODEL TINY 


.DATA

    STR DB 50 DUP(?)

.CODE
 

MAIN PROC
    MOV SI, 0 
    
    MOV AH, 01H
    
    TAKE_INPUT:
     
        INT 21H
        
        MOV STR[SI], AL
        INC SI
        
        CMP AL, 0DH
        JNE TAKE_INPUT
        
        DEC SI
        
        MOV AH, 02H
        
        MOV DL, 10
        INT 21H
        
        MOV DL, 13
        INT 21H
        
        MOV CX, SI
        MOV SI, 0
        
    
        
    PRINT_LOOP:
    
            MOV DL, STR[SI]
            
            AND DL, 223
            INT 21H
            INC SI
    
        LOOP PRINT_LOOP 
    
    

    
MAIN ENDP

END MAIN
				
			
				
					.MODEL TINY

.DATA

    NSTR DB 50 DUP(?)

.CODE

MAIN PROC
    
    MOV SI, 0
    
    MOV AH, 01H
    
    INPUT_TAKE: 
    
        INT 21H
        
        MOV NSTR[SI], AL
        
        INC SI
        
        CMP AL, 0DH
        JNE INPUT_TAKE
        
        
        DEC SI
        
        MOV AH, 02H
        
        MOV DL, 10
        INT 21H
        MOV DL, 13
        INT 21H
        
        MOV CX, SI
        MOV DI, 0
        
        PRINT: 
           
           MOV DL, NSTR[DI]
           OR DL, 00100000B
           INT 21H
           INC DI
           
           LOOP PRINT 
            

    MOV AH, 4CH
    INT 21H
    

ENDP MAIN

END MAIN
				
			
				
					.MODEL TINY

.DATA

    NSTR DB "***** ***** * *   *", 13, 10, "*   * *   * * *   *", 13, 10, "*   * *   * * *****", 13, 10, "*   * *   * *     *", 13, 10, "***** ***** *     *", "$"

.CODE

MAIN PROC
    

    
    MOV AH, 09H
    LEA DX, NSTR
    
    INT 21H
    
            

    MOV AH, 4CH
    INT 21H
    

ENDP MAIN

END MAIN
				
			
				
					.MODEL TINY

.DATA

    TEMP DB ?
   
.CODE

MAIN PROC
    
    MOV AH, 01H
    INT 21H
    SUB AL, '0'
    
    MOV BL, 2
    MUL BL
    
    SUB AL, 1
    
    MOV TEMP, AL
    
    MOV AH, 02H
    
    MOV DL, 10
    INT 21H
    MOV DL, 13
    INT 21H
    
    MOV BL, TEMP
    
    LOOP1:
        MOV CL, TEMP
        SUB CL, BL
        
        CMP CL, 1
        JL SKIP_SPACE
        
        SPACE_LOOP:
           MOV DL, ' '
           INT 21H
           LOOP SPACE_LOOP 

        
        SKIP_SPACE:
        MOV CL, BL  
    
        LOOP2:
        
            MOV DL, '0'
            ADD DL, CL
            INT 21H
            MOV DL, ' '
            INT 21H
            
            LOOP LOOP2
        
            MOV DL, 10
            INT 21H
            MOV DL, 13
            INT 21H    
    
        SUB BL, 2 
        CMP BL, 0
        JG LOOP1
        
       
     MOV BL, 1
     
     LOOP3: 
       ADD BL, 2
       
        MOV CL, TEMP
        SUB CL, BL
        
        CMP CL, 1
        JL SKIP_SPACE2
        
        SPACE_LOOP2:
           MOV DL, ' '
           INT 21H
           LOOP SPACE_LOOP2 

        
       SKIP_SPACE2:
       
       MOV CL, BL
       LOOP4:
         MOV DL, '0'
         ADD DL, CL
         INT 21H
         MOV DL, ' '
         INT 21H
       LOOP LOOP4
       
        MOV DL, 10
        INT 21H
        MOV DL, 13
        INT 21H
       
        CMP BL, TEMP
        JNE LOOP3 
        
       

    MOV AH, 4CH
    INT 21H
    

ENDP MAIN

END MAIN
				
			
				
					.MODEL TINY

.DATA

    DI1 DB ?
    DI2 DB ?
    DI3 DB ?
    DI4 DB ?
    
   
.CODE

MAIN PROC
    
    MOV AH, 01H
    
    INT 21H
    MOV BL, AL
    CALL CHECK 
    MOV DI1, BL
    
    INT 21H
    MOV BL, AL
    CALL CHECK 
    MOV DI2, BL
    
    INT 21H
    MOV BL, AL
    CALL CHECK 
    MOV DI3, BL
    
    INT 21H
    MOV BL, AL
    CALL CHECK 
    MOV DI4, BL
    
    MOV AH, 02H
    
    MOV DL, 10
    INT 21H
    MOV DL, 13
    INT 21H
    
    
    MOV BL, DI1
    CALL PRINT_BINARY
    MOV BL, DI2
    CALL PRINT_BINARY
    MOV BL, DI3
    CALL PRINT_BINARY
    MOV BL, DI4
    CALL PRINT_BINARY
    


    MOV AH, 4CH
    INT 21H
    

MAIN ENDP

CHECK PROC
   CMP BL, 48
   JL SKIP_NUMBER
   
   CMP BL, 57
   JG SKIP_NUMBER
   
   SUB BL, 48
   JMP END_CHECK
   
   
   SKIP_NUMBER:
   
   CMP BL, 65
   JL END_CHECK
   
   CMP BL, 70
   JG END_CHECK
   
   SUB BL, 55
   
     
   END_CHECK:
   RET
CHECK ENDP

PRINT_BINARY PROC
    
    MOV CL, 4
    
    ROL BL, 4
    
    PRINT_LOOP:
    
        ROL BL, 1
        JC PRINT_ONE
          
          MOV DL, '0'
          JMP PRINT_NUMBER
        
        
        PRINT_ONE:
          MOV DL, '1'
          
        PRINT_NUMBER:
        INT 21H  
    
    LOOP PRINT_LOOP
    
    MOV DL, ' '    
    INT 21H
    
    RET
    
PRINT_BINARY ENDP    

END MAIN
				
			
				
					.MODEL TINY

.DATA

    STR DB 50 DUP(?)
    PALIDROM DB "Palindrome$"
    NOTPALIDROM DB "Not a Palindrome$"
    
   
.CODE

MAIN PROC
    
    MOV AH, 01H
    MOV SI, 0
    MOV DI, 0
    
    INPUT_LOOP: 
        INT 21H
        MOV STR[SI], AL
        INC SI
    CMP AL, 13
    JNE INPUT_LOOP
    
    DEC SI
    DEC SI
    
    MOV AH, 02H
    
    MOV DL, 10
    INT 21H
    MOV DL, 13
    INT 21H
    
    MOV DI, 0
    
    PALIDROME_CHECK:
        MOV BH, STR[SI]
        MOV BL, STR[DI]  
    
        CMP BH, BL
        JNE NOT_PLIDROME
        
        DEC SI
        INC DI
        
        MOV BX, SI
        SUB BX, DI
        
    CMP BX, 0
    JG PALIDROME_CHECK
    
    LEA DX, PALIDROM 
    JMP EXIT     
    
    
    NOT_PLIDROME:
    LEA DX, NOTPALIDROM 
    
    
    EXIT:
    MOV AH, 09H
    INT 21H
    
    MOV AH, 4CH
    INT 21H
    

MAIN ENDP  

END MAIN
				
			
				
					.MODEL TINY

.DATA

.CODE

MAIN PROC
    
    MOV AH, 01H
    INT 21H
    
    SUB AL, '0'
    
    MOV CL, AL
    MOV DL, AL
    
    MOV AL, 1
    
    MOV BL, 1
    
    SUB CL, 1
    
    MOV DH, 3 
    
    LOOP1:
    
      MUL DH
      ADD BL, AL   
    
    LOOP LOOP1
    
    
    MOV AL, 2
    
    MUL DL
    
    MOV DL, AL
    
    MOV AL, BL
    
    DIV DL
    
    MOV BL, AL ; QUOTIENT
    
    MOV BH, AH ; REMIDER

    
    MOV AH, 4CH
    INT 21H
    

MAIN ENDP  

END MAIN