Advertisement
Guest User

Untitled

a guest
Apr 5th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model tiny
  2. org 100h
  3.         ;;;;TODO FUNCTION FOR OUTPUT STRING
  4. .data
  5.     input_msg   db   "Please input a digit (-2^16 - 2^16-1)!", 0Dh,0Ah, 24h
  6.     digit_buff  db   5, ?, 6 dup(24h)  
  7.     array_len  equ   1  
  8.     digits_array dw array_len dup(0)
  9.    
  10. .code
  11. start:  
  12.     mov cx, array_len
  13.     xor di, di      
  14. array_input:                      
  15.     lea     dx, input_msg  
  16.     mov     ah, 09h  
  17.     int     21h
  18.              
  19.     lea     dx, digit_buff  
  20.     mov     ah, 0Ah
  21.     int     21h
  22.     mul digits_array[di], 10  
  23.     jo overflow_error
  24.        
  25.     add dx, 2
  26.     mov si, dx
  27.  
  28.     mov ax, [si]
  29.     cmp ax, '0'
  30.     ja error_input
  31.     cmp ax, '9'
  32.     jb error_input
  33.        
  34.     sub ax, '0'
  35.     mov digits_array[di], ax
  36.     jo overflow_error
  37.     inc di        
  38.    
  39.     jmp end_array_input
  40.        
  41. error_input:
  42.     lea     dx, error_msg  
  43.     mov     ah, 09h  
  44.     int     21h
  45.     jmp array_input    
  46.    
  47. error_overflow:
  48.     lea     dx, overflow_msg  
  49.     mov     ah, 09h  
  50.     int     21h
  51.     jmp array_input  
  52.        
  53. end_array_input:    
  54.     loop array_input
  55.    
  56.    
  57.  
  58. exit:      
  59.     ret ; return to operating system.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement