Advertisement
Nur_Mohammed_Mehedy

Write an assembly program to take a single-digit number as input from user and display the number of

Aug 26th, 2021
2,493
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  .MODEL SMALL
  2.  .STACK 100H
  3.  
  4.  .DATA
  5.    PROMPT_1  DB  'Enter a single-digit number: $\'
  6.    PROMPT_2  DB  0DH,0AH,'Number of zeros: $\'
  7.  
  8.  .CODE
  9.    MAIN PROC
  10.      MOV AX, @DATA                  
  11.      MOV DS, AX
  12.  
  13.      LEA DX, PROMPT_1                
  14.      MOV AH, 9
  15.      INT 21H
  16.  
  17.      XOR BX, BX                  
  18.      MOV CX, 16                  
  19.      MOV AH, 1                    
  20.  
  21.      @INPUT:                      
  22.        INT 21H                    
  23.        CMP AL, 0DH                
  24.        JE @END                    
  25.        AND AL, 0FH                
  26.        SHL BX, 1                  
  27.        OR BL, AL                  
  28.      LOOP @INPUT                  
  29.  
  30.      @END:                        
  31.  
  32.      MOV CX, 16                  
  33.      XOR AX, AX                  
  34.  
  35.      @LOOP:
  36.        ROL BX, 1                  
  37.        JNC @NEXT                  
  38.        INC AX                    
  39.  
  40.      @NEXT:                      
  41.      LOOP @LOOP                  
  42.      
  43.      MOV BX, 8
  44.      SUB BX, AX
  45.      MOV AX, BX
  46.      MOV CX, AX                  
  47.      
  48.      LEA DX, PROMPT_2            
  49.      MOV AH, 9
  50.      INT 21H
  51.  
  52.      MOV AH, 2                    
  53.      CMP CL, 10                  
  54.  
  55.      JAE @TWO_DIGIT              
  56.  
  57.      OR  CL, 30H                  
  58.      MOV DL, CL                                  
  59.  
  60.      JMP @DISPLAY                
  61.  
  62.      @TWO_DIGIT:                  
  63.        MOV DL, 31H                
  64.        INT 21H
  65.  
  66.        SUB CL, 10                
  67.        OR  CL, 30H                
  68.        MOV DL, CL                
  69.  
  70.      @DISPLAY:                    
  71.        INT 21H                    ; display the value
  72.  
  73.      MOV AH, 4CH                  
  74.      INT 21H
  75.    MAIN ENDP
  76.  END MAIN
Advertisement
RAW Paste Data Copied
Advertisement