Advertisement
first_one_dot_com

Untitled

Feb 12th, 2020
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. section .data
  2.  
  3. segment .bss
  4.  
  5.     base resb 16
  6.     degree resb 16
  7.     pow resb 64
  8.     sum resb 64
  9.  
  10.  
  11.  
  12. section .text
  13.  
  14. global _start
  15.  
  16. _start:
  17.    
  18.     ; Ввод base (base of power)
  19.     mov eax, 3      ; Фанкшн
  20.     mov ebx, 0      ; Дескриптор ввода
  21.     mov ecx, base   ; 'Контейнер'
  22.     mov edx, 16      ; 'Объём контейнера'
  23.     int 80h         ; Прерывание, забыл его 'физический' смысл
  24.    
  25.  
  26.     mov ebx, base       ; адрес начала base
  27.     mov esi, eax        ; длина  в edx
  28.     dec esi             ; чтобы было без знака переноса
  29.     xor eax, eax      
  30.     mov edi, 10
  31.     xor ecx, ecx  
  32.    .digits1:
  33.         mov cl, [ebx]
  34.         sub cl, '0'
  35.         mul edi
  36.         add eax, ecx             ; edi * eax
  37.         dec esi
  38.     jnz .digits1
  39.  
  40.     push eax
  41.  
  42.     ; Ввод degree
  43.     mov eax, 3
  44.     mov ebx, 0
  45.     mov ecx, degree
  46.     mov edx, 16
  47.     int 0x80
  48.    
  49.  
  50.     mov ebx, degree       ; адрес начала degree
  51.     mov esi, eax        ; длина  в edx
  52.     dec esi             ; чтобы было без знака переноса
  53.     xor eax, eax      
  54.     mov edi, 10
  55.     xor ecx, ecx  
  56.    .digits2:
  57.         mov cl, [ebx]
  58.         sub cl, '0'
  59.         mul edi
  60.         add eax, ecx             ; edi * eax
  61.         dec esi
  62.     jnz .digits2
  63.  
  64.     push eax
  65.  
  66.  
  67.     ; Внешний цикл
  68.     pop eax             ; degree
  69.     dec eax             ; количество итераций внешнего цикла
  70.    
  71.     ; Внутренний цикл
  72.     pop ebx             ; base
  73.                         ; количество итераций внутреннего цикла
  74.     mov edx, ebx        ; save base for included loop
  75.            
  76.     mov edi, ebx        ; edi = base
  77.  
  78.     .loopa:
  79.         mov ebx, edx
  80.         xor ecx, ecx      
  81.            
  82.             .pupa:
  83.  
  84.              add ecx, edi          
  85.  
  86.  
  87.             dec ebx
  88.             jnz .pupa
  89.    
  90.     mov edi, ecx    
  91.    
  92.     dec eax
  93.     jnz .loopa
  94.    
  95.    
  96.    
  97.    
  98.    
  99.     ; End game    
  100.     mov     eax, 1
  101.     int     0x80
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement