Advertisement
filashkov

Untitled

Mar 9th, 2020
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. %include "io.inc"
  2.  
  3. section .data
  4.     n dd 31
  5.    
  6. section .bss
  7.     a resd 600
  8.     number resb 32
  9.  
  10. section .text
  11. global CMAIN
  12. CMAIN:
  13.     mov edx, 0
  14.     mov [a], dword 1
  15.     mov esi, 1          ; esi = current_index
  16.    
  17.     mov eax, 0          ; eax = i
  18.    
  19. .for_i_eax:
  20.     cmp eax, dword [n]
  21.         jz .stop_for_i_eax
  22.            
  23.             mov [a + 4 * esi], dword 1          ; a.append(1)
  24.             inc esi
  25.            
  26.             mov ebx, 0                          ; ebx = j
  27.            
  28.             .for_j_ebx:
  29.                 cmp ebx, eax
  30.                     jz .stop_for_j_ebx
  31.                        
  32.                         mov edi, eax
  33.                        
  34.                         inc eax
  35.                         imul edi
  36.                        
  37.                         mov ecx, 2
  38.                         div ecx
  39.                         add eax, ebx
  40.                        
  41.                         mov ecx, [a + 4 * eax]
  42.                         add ecx, [a + 4 * eax + 4]
  43.                        
  44.                         mov [a + 4 * esi], ecx
  45.                         inc esi
  46.                        
  47.                         mov eax, edi
  48.                        
  49.                     inc ebx
  50.                     jmp .for_j_ebx  
  51.                    
  52.             .stop_for_j_ebx:
  53.            
  54.             mov [a + 4 * esi], dword 1          ; a.append(1)
  55.             inc esi
  56.            
  57.         inc eax
  58.         jmp .for_i_eax
  59.                
  60. .stop_for_i_eax:    
  61.    
  62.     mov eax, 0
  63.    
  64. .print_for_eax:
  65.     cmp eax, dword 100
  66.         jz .stop_print_for_eax
  67.            
  68.             ;PRINT_UDEC 4, [a + 4 * eax]
  69.             ;PRINT_CHAR ' '
  70.            
  71.         inc eax
  72.         jmp .print_for_eax
  73.        
  74. .stop_print_for_eax:
  75.    
  76.     ;PRINT_STRING "Shalom!"
  77.     GET_UDEC 4, eax
  78.     ;PRINT_HEX 4, eax
  79.     ;NEWLINE
  80.    
  81.     mov edi, eax
  82.    
  83.     mov esi, 0
  84.     mov edx, 0
  85.    
  86.     mov ecx, 0
  87.    
  88. .for_number_ecx:
  89.     cmp ecx, dword 32
  90.         jz .stop_for_number_ecx
  91.            
  92.             mov edx, 0
  93.             rol eax, 1
  94.             mov edi, eax
  95.            
  96.             mov ebx, 2
  97.             div ebx
  98.            
  99.             mov [number + esi], dl
  100.            
  101.             mov eax, edi
  102.             PRINT_UDEC 1, [number + esi]
  103.             inc esi
  104.            
  105.         inc ecx
  106.         jmp .for_number_ecx
  107.  
  108. .stop_for_number_ecx:
  109.    
  110.     mov edx, 0
  111.     mov esi, 0
  112.     mov edi, 0                                    ; edi = answer
  113.    
  114.     xor eax, eax
  115.     ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement