Advertisement
Guest User

Untitled

a guest
Dec 11th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. org  100h
  2.  
  3. jmp main
  4.    
  5.     toSwap1     db 'a'
  6.     toSwap2     db 'b'
  7.     result      dw ?
  8.     numToNeg    dw -9
  9.     string      db  'm', 'a', 'g', 's', 'h', 'i', 'm', 'i', 'm', 'v', 'e', 'n', 'e', 'h', 'e', 'n', 'i', 'm' ,0Dh,0Ah,'$'
  10.     array       db "0000", 0Dh,0Ah, 24h ; line feed   return   and  stop symbol 24h=$ (ASCII).  
  11.     num1        dw 0xAC45
  12.  
  13.  
  14. main:  
  15.     push numToNeg
  16.     call to_neg
  17.     PRINTN "func1 - should print neg of:-9"
  18.     call print_num
  19.     PRINTN
  20.     add sp,2
  21.    
  22.     push offset toSwap1
  23.     push offset toSwap2  
  24.              
  25.     PRINTN "func 2 - should swap:"
  26.     PRINTN "values before:"
  27.     PRINTN "toSwap1: a"
  28.     PRINTN "toSwap2: b"
  29.     PRINTN
  30.     PRINTN "values after:"
  31.     call swap
  32.    
  33.     PRINTN
  34.     push num1
  35.     push offset array
  36.     call save_hex
  37.    
  38.    ; jmp end
  39.                
  40.                
  41. to_neg proc
  42.     push bp
  43.     mov bp,sp
  44.     mov ax,[bp+4]
  45.     NOT ax
  46.     inc ax
  47.     mov sp,bp
  48.     pop bp
  49.     ret
  50. to_neg endp
  51.  
  52.  
  53. swap proc
  54.     push bp
  55.     mov bp,sp
  56.     mov ax,[bp+4]
  57.     mov cx,[bp+6]
  58.     mov [bp+6],ax
  59.     mov [bp+4],cx
  60.    
  61.     mov bx,[bp+6]
  62.     mov ax,[bx]
  63.     PRINT "tSwap1: "
  64.     call print_al_chr
  65.    
  66.     mov bx,[bp+4]
  67.     mov ax,[bx]
  68.     PRINT "toSwap2: "
  69.     call print_al_chr
  70.    
  71.     pop bp
  72.     ret 2
  73. swap endp        
  74.        
  75.        
  76. save_hex proc
  77.     push bp
  78.     mov bp,sp
  79.     sub sp,8
  80.     mov dx,0
  81.     mov bx,16
  82.     mov ax,[bp+6]
  83.     div bx
  84.     mov [bp-2],dx
  85.     div bx
  86.     mov [bp-4],dx
  87.     div bx
  88.     mov [bp-6],dx
  89.     div bx
  90.     mov [bp-8],dx
  91.    
  92.     cmp [bp-2,9
  93.     ja func1
  94.    
  95.     add [bp-2],'0'
  96.     jmp continue1
  97.    
  98.     func1:
  99.         add [bp-2],'A'
  100.         sub [bp-2],10
  101.        
  102.     continue1:
  103.         cmp [bp-4],9
  104.         ja func2
  105.        
  106.         add [bp-4],'0'
  107.         jmp continue2
  108.        
  109.         func2:
  110.             add [bp-4],'A'
  111.             sub [bp-4],10
  112.        
  113.         continue2:
  114.             cmp [bp-6],9
  115.             ja func3
  116.            
  117.             add [bp-6],'0'
  118.             jmp continue3
  119.            
  120.             func3:
  121.                 add [bp-6],'A'
  122.                 sub [bp-6],10
  123.                
  124.             continue3:
  125.                 cmp [bp-8],9
  126.                 ja func4
  127.                
  128.                 add [bp-8],'0'
  129.                 jmp continue4
  130.                
  131.                 func4:
  132.                     add [bp-8],'A'
  133.                     sub [bp-8],10
  134.                    
  135.                 continue4:
  136.                     mov bx,[bp+4]
  137.                     mov dx,[bp-8]
  138.                     mov [bx],dl
  139.                     mov dx,[bp-6]
  140.                     mov [bx+1],dl
  141.                     mov dx,[bp-4]
  142.                     mov [bx+2],dl
  143.                     mov dx,[bp-2]
  144.                     mov [bx+3],dl
  145.                     mov ax,bx
  146.                    
  147.                     PRINTN "hex string: "
  148.                     call print_ax_str
  149.                    
  150.     pop bp
  151.     retn 6
  152.    
  153. save_hex endp
  154.        
  155. include magshimim.inc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement