Advertisement
Guest User

dec to octal

a guest
Oct 15th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model small
  2. .stack 100h
  3. .data
  4.   msg1 db 0dh,0ah,'Do U want to convert or exit? Enter Y or N: $'
  5.   msg2 db 0dh,0ah,'How many digits your number has? $'
  6.   msg3 db 0dh,0ah,'Result in Octal: $'
  7.   msg4 db 0dh,0ah,'Invalid $'
  8.   msg5 db 0dh,0ah,'Enter the decimal number: $'
  9.   msg6 db 0dh,0ah,'Enter the 1st Digit: $'
  10.   msg7 db 0dh,0ah,'Enter the 2nd Digit: $'
  11.  
  12. .code
  13. main proc
  14.    
  15.     mov ax,@data
  16.     mov ds,ax
  17.    
  18.     option:
  19.    
  20.         mov ah,9
  21.         lea dx, msg1
  22.         int 21h
  23.    
  24.         mov ah,1
  25.         int 21h;Enter y or n
  26.    
  27.         cmp al,'y'
  28.         je y
  29.         cmp al,'Y'
  30.         je y
  31.         jmp n
  32.    
  33.         y:
  34.             mov ah,9
  35.             lea dx,msg2
  36.             int 21h
  37.        
  38.             mov ah,1
  39.             int 21h
  40.            
  41.             cmp al,'1'
  42.             je one
  43.             cmp al,'2'
  44.             je two
  45.             jmp invalid
  46.              
  47.             one:
  48.                mov ah,9
  49.                lea dx,msg5
  50.                int 21h
  51.                
  52.                mov ah,1
  53.                int 21h
  54.                mov bh,al
  55.                cmp bh, 30h
  56.                jl n
  57.                cmp bh,'7'
  58.                jg one_2
  59.                mov ah,9
  60.                lea dx,msg5
  61.                int 21h
  62.                mov ah,2
  63.                mov dl, bh
  64.                int 21h
  65.                jmp option
  66.                
  67.                one_2:
  68.                     cmp bh,38h
  69.                     je cont
  70.                     cmp bh, 39h
  71.                     je cont
  72.                    
  73.                     cont:
  74.                         mov ah,9
  75.                         lea dx, msg3
  76.                         int
  77.                         mov ah,2
  78.                         mov dl,'1'
  79.                         int 21h
  80.                         sub bh,8
  81.                         mov dl,bh
  82.                         int 21h
  83.                         jmp option
  84.    
  85.             two:
  86.                
  87.                 mov ah,9
  88.                 lea dx,msg6
  89.                 int 21h
  90.                
  91.                 mov ah,1
  92.                 int 21h
  93.                 mov bh,al;for 1st digit
  94.                
  95.                 mov ah,9
  96.                 lea dx,msg7
  97.                 int 21h
  98.                
  99.                 mov ah,1
  100.                 int 21h
  101.                 mov ch,al;for 2nd digit
  102.                
  103.                 cmp bh,'1'
  104.                 je t1
  105.                 cmp bh,'2'
  106.                 je t2
  107.                 jmp invalid
  108.                
  109.                
  110.             t1:
  111.            
  112.                 cmp ch,'0'
  113.                 jge c1
  114.                 jmp c2
  115.                
  116.                 c1:
  117.                 cmp ch,'5'
  118.                 jle l1
  119.                 jmp c2
  120.                     l1:
  121.                         add ch,2
  122.                         mov ah,9
  123.                         lea dx,msg3
  124.                         int 21h
  125.                         mov ah,2
  126.                         mov dl,'1'
  127.                         int 21h
  128.                         mov dl,ch
  129.                         int 21h
  130.                         jmp option
  131.              
  132.                 c2:
  133.                         sub ch,6
  134.                         mov ah,9
  135.                         lea dx,msg3
  136.                         int 21h
  137.                         mov ah,2
  138.                         mov dl,'2'
  139.                         int 21h
  140.                         mov dl,ch
  141.                         int 21h
  142.                         jmp option
  143.                
  144.                
  145.             t2:
  146.               cmp ch,'0'
  147.               jg invalid
  148.               mov ah,9
  149.               lea dx,msg3
  150.               int 21h
  151.               mov ah,2
  152.               mov dl,'2'
  153.               int 21h
  154.               mov dl,'4'
  155.               int 21h
  156.               jmp option
  157.              
  158.          
  159.     invalid:
  160.            mov ah,9
  161.            lea dx,msg4
  162.            int 21h
  163.            jmp option
  164.            
  165.    
  166.    
  167.     n:
  168.    
  169.        mov ah,4ch
  170.        int 21h
  171.    
  172.    
  173.    
  174.     main endp
  175. end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement