Advertisement
nateshoffner

Untitled

Sep 13th, 2013
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. section .data
  2.  
  3. i:      db 0
  4.  
  5. k:      dd 0
  6.  
  7. newline:    db 0xa
  8.  
  9. section .text
  10.  
  11. global _start
  12. _start:
  13.     call main
  14.     mov al, 1
  15.     mov bl, 0
  16.     int 0x80
  17.  
  18. main:
  19.     mov BYTE [i], 1
  20.     mov bl, 1
  21. cloop:
  22.     mov BYTE [k], 0
  23.    
  24.     mov al, [i]
  25.     mov dl, 0
  26.     mov ecx, 3
  27.     idiv ecx
  28.    
  29.     cmp dl, 0
  30.     jne nf
  31.    
  32.     or BYTE [k], 1
  33.    
  34.     push DWORD 0x74747562
  35.     mov al, 4
  36.     mov ecx, esp
  37.     mov dl, 4
  38.     int 0x80
  39.     add esp, 4
  40.    
  41. nf:
  42.    
  43.     mov al, [i]
  44.     mov dl, 0
  45.     mov ecx, 5
  46.     idiv ecx
  47.    
  48.     cmp edx, 0
  49.     jne nb
  50.    
  51.     or BYTE [k], 1
  52.    
  53.     push DWORD 0x656b6163
  54.     mov al, 4
  55.     mov ecx, esp
  56.     mov dl, 4
  57.     int 0x80
  58.     add esp, 4
  59.    
  60. nb:
  61.    
  62.     cmp BYTE [k], 0
  63.     jne nn
  64.    
  65.     call pn
  66.    
  67. nn:
  68.    
  69.     mov al, 4
  70.     mov bl, 1
  71.     mov ecx, newline
  72.     mov dl, 1
  73.     int 0x80
  74.    
  75.     inc BYTE [i]
  76.     cmp BYTE [i], 100
  77.     jle cloop
  78.    
  79.     ret
  80.  
  81. ;
  82. pn:
  83.     push DWORD [i]
  84.     push BYTE 0
  85.    
  86.     ;   at = [esp + 4]
  87.     ;   block = [esp]
  88.    
  89.     mov bl, 4
  90.    
  91. nloop:
  92.     mov eax, [esp + 4]
  93.     mov dl, 0
  94.     mov ecx, 10
  95.     idiv ecx
  96.    
  97.     mov [esp + 4], al
  98.    
  99.     add dl, 0x30
  100.    
  101.     dec bl
  102.     mov [esp + ebx], dl
  103.    
  104.     cmp al, 0
  105.     jne nloop
  106.     ;
  107.    
  108.     lea ecx, [esp + ebx]
  109.     mov dl, 4
  110.     sub dl, bl
  111.    
  112.     mov al, 4
  113.     mov bl, 1
  114.     int 0x80
  115.    
  116.     add esp, 8
  117.     ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement