Advertisement
nguyenvanquan7826

Nhi phan

Oct 8th, 2013
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model small
  2. .stack 100
  3. .data              
  4.     input db 'Nhap so he 10: $'
  5.     output db 'So he 2: $'
  6.     CLRF db 13, 10, '$'
  7. .code
  8.     main proc      
  9.         mov ax, @data
  10.         mov ds, ax    
  11.        
  12.         mov ah, 9
  13.         lea dx, input
  14.         int 21h
  15.                              
  16.         call inputDec                        
  17.         push ax         ; luu Ax lai  
  18.        
  19.         mov ah, 9       ; xuong dong
  20.         lea dx, CLRF
  21.         int 21h  
  22.        
  23.         mov ah, 9
  24.         lea dx, output
  25.         int 21h
  26.                        
  27.         pop ax          ; lay Ax ra
  28.         call outputBin  
  29.        
  30.         mov ah, 4ch
  31.         int 21h
  32.        
  33.     main endp
  34.    
  35.     inputDec proc
  36.         ; Vao: nhap vao so
  37.         ; Ra: So luu trong Ax
  38.         push bx
  39.         push cx
  40.         push dx
  41.        
  42.         batDau:
  43.             mov ah, 2
  44.             xor bx, bx
  45.             xor cx, cx
  46.             mov ah, 1
  47.             int 21h
  48.             cmp al, '-'
  49.             je dauTru
  50.             cmp al, '+'
  51.             je dauCong
  52.             jmp tiepTuc
  53.            
  54.             dauTru:
  55.                 mov cx, 1
  56.            
  57.             dauCong:
  58.                 int 21h
  59.            
  60.             tiepTuc:
  61.                 cmp al, '0'
  62.                 jnge khongPhaiSo    ; khong lop hon hoac bang
  63.                 cmp al, '9'
  64.                 jnle khongPhaiSo    ; Khong nho hon hoac bang
  65.                 and ax, 000fh       ; doi thanh chu so
  66.                 push ax             ; cat vao ngan xep
  67.                 mov ax, 10
  68.                
  69.                 mul bx              ; ax = tong*10
  70.                 mov bx, ax          
  71.                 pop ax
  72.                 add bx, ax          ; tong = tong*10 + so
  73.                 mov ah, 1
  74.                 int 21h
  75.                 cmp al, 13          ; da enter chua?
  76.                 jne tiepTuc         ; nhap tiep
  77.                
  78.                 mov ax, bx          ; chuyen KQ ra ax
  79.                 or cx, cx           ; co phai so am khong
  80.                 je ra
  81.                 neg ax              ; neu la so am thi doi ax ra so am
  82.                
  83.             ra:
  84.                 pop dx
  85.                 pop cx
  86.                 pop bx  
  87.                
  88.                 ret
  89.                
  90.             khongPhaiSo:
  91.                 mov ah, 2
  92.                 mov dl, 0dh
  93.                 int 21h
  94.                 mov dl, 0ah
  95.                 int 21
  96.                 jmp batDau
  97.                
  98.                
  99.     inputDec endp
  100.    
  101.     outputBin proc
  102.         push bx
  103.         push cx
  104.         push dx
  105.        
  106.         cmp ax, 0   ;   neu ax > 0 tuc la khong phai so am ta doi ra day
  107.         jge doiRaDay
  108.         push ax
  109.         mov dl, '-'
  110.         mov ah, 2
  111.         int 21h
  112.         pop ax
  113.         neg ax  ; ax = -ax
  114.        
  115.         doiRaDay:
  116.             xor cx, cx  ; gan cx = 0
  117.             mov bx, 2  ; so chia la 10
  118.             chia:
  119.                 xor dx, dx  ; gan dx = 0
  120.                 div bx      ; ax = ax / bx; dx = ax % bx
  121.                 push dx
  122.                 inc cx
  123.                 cmp ax, 0   ; kiem tra xem thuong bang khong chua?
  124.                 jne chia    ; neu khong bang thi lai chia
  125.                 mov ah, 2
  126.             hien:
  127.                 pop dx
  128.                 or dl, 30h
  129.                 int 21h
  130.                 loop hien
  131.                
  132.                 pop dx
  133.                 pop cx
  134.                 pop bx
  135.                 ;pop ax
  136.         ret
  137.        
  138.     outputBin endp
  139.    
  140. end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement