Advertisement
intsashka

04-01-v

May 25th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. %include "io.inc"
  2.  
  3. ;Получаем доступ к библиотечным функциям
  4. CEXTERN scanf
  5. CEXTERN printf
  6.  
  7. section .bss
  8.     num resd 1 ;Переменная для считывания числа
  9.    
  10. section .rodata
  11.     f1 db "%u", 0 ;Строка для ввода числа
  12.     f2 db "0x%08X", `\n`, 0 ;Строка для вывода числа
  13. section .text
  14. global CMAIN
  15. CMAIN:
  16.     ;Задаем начало кадра стека
  17.     push ebp
  18.     mov ebp, esp
  19.     ;Выравниваем стек по 16 байт
  20.     and esp, -16
  21.     ;Делаем отступ в стеке, для аргументов функции
  22.     sub esp, 16
  23.    
  24.     .for:
  25.         ;Считываем число
  26.         mov dword[esp+4], num
  27.         mov dword[esp], f1
  28.         call scanf
  29.        
  30.         ;Если числа закончились, то идем в метку .endFor
  31.         cmp eax, 1
  32.         jnz .endFor
  33.        
  34.         ;Выводим число
  35.         mov eax, dword[num]
  36.         mov dword[esp+4], eax
  37.         mov dword[esp], f2
  38.         call printf
  39.        
  40.         ;Идем в метку .for
  41.         jmp .for
  42.     .endFor:
  43.    
  44.     ;Удаляем кадр стека
  45.     leave
  46.     xor eax, eax
  47.     ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement