Advertisement
Guest User

Untitled

a guest
Nov 15th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. format MZ
  2. entry  main:start
  3. stack 100h
  4. include 'dos_macros.inc'
  5.  
  6. segment main
  7.  
  8. start:
  9.     mov ax,dane  
  10.     mov ds,ax      
  11.     mov bx, 1
  12.              
  13.    call read
  14.    call conjureOct    
  15.    
  16.    ;call again
  17.  
  18.    mov ah, 4Ch
  19.    int 21h  
  20.    
  21. again:
  22.     mov ah, 1
  23.     int 21h  
  24.     cmp al, 8
  25.     jne lvv
  26.     clrscr
  27.     call start
  28.    
  29.     lvv:
  30.     ret
  31.    
  32. read:
  33.     mov ah, 1
  34.     int 21h
  35.                    
  36.     cmp al, 'q'
  37.     je  endq
  38.     call reduceASCII
  39.     call read    
  40.        
  41.     endq:
  42.     ret
  43.        
  44. reduceASCII:  
  45.     mov ah, 0
  46.     sub al, 30h
  47.    
  48.     mov bx, ax
  49.     mov ax, [number]
  50.     mul [ten]
  51.     mov [number], ax
  52.     mov ax, bx
  53.    
  54.     add [number], ax
  55.      
  56.  
  57.     ret    
  58.    
  59. conjureOct:      
  60.        ustaw_kursor 1,0  
  61.        mov bx, [number]
  62.        rol bx, 1  
  63.        and bx, 1  
  64.        
  65.        cmp bx, 0
  66.        je skipp
  67.        
  68.        add bx, 30h
  69.        wysw_znak bl
  70.        
  71.        skipp:
  72.  
  73.        mov cx, 5
  74.        strt:
  75.        mov bx, [number]
  76.        ror bx, 12
  77.        and bx, [sevenMul]      
  78.        
  79.       ; cmp bx, 0 removes zeros in between octal representation
  80.       ; je leavep  
  81.        
  82.        add bx, 30h
  83.        wysw_znak bl    
  84.                        
  85.        ;leavep:                
  86.        rol [number], 3
  87.  
  88.        loop strt
  89.        ret
  90.        
  91. segment dane
  92.       ten dw 10
  93.       sevenMul dw 7
  94.       number dw 0
  95.       highBit dw 7000h
  96.       numShifts db 12
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement