Guest User

Untitled

a guest
Oct 7th, 2020
50
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. format PE64 console ;специальный формат исполнимых файлов для Windows — формат PE (Portable Executable)
  2.  
  3. ; w в win64wx.inc означает что будут использоваться юникодные версии функций WinAPI(например, WriteConsoleW вместо WriteConsoleA)
  4. include 'C:\FASM\INCLUDE\WIN64A.INC'
  5.  
  6. entry start
  7.  
  8.  
  9. section '.text' code executable ; сегмент кода
  10.  
  11. ; метка старт в которую мы и прыгаем при запуске
  12. start:
  13.         call input
  14.         call next_iter
  15.         next_iter:
  16.                 cmp eax, ebx
  17.                 ja close
  18.                 jb next
  19.         close:
  20.                 ret
  21.                 invoke ExitProcess,0 ; при нажатии выходим из программи
  22.         next:
  23.                 cinvoke printf,message  ; Выводим сообщение
  24.                 ; invoke getch  ожидаем нажатие любой клавиши
  25.                 inc eax
  26.         call next_iter
  27.  
  28. input:
  29.         cinvoke printf, m1
  30.         cinvoke scanf, message
  31.         cinvoke printf, 0xA
  32.  
  33.  
  34.  
  35. ; сегмент данных
  36. section '.rdata' data readable
  37.        
  38.         m1 db 'Input message: ',13,10,0
  39.         mov eax, 0
  40.         mov ebx, 5
  41.         message db 0xA ; указываем нашу переменную с сообщением
  42.         nextline db 0xA ; пустая строка
  43.         hmm db 'hmm' ; еще строка
  44.  
  45. ; в этом сегменте просто импортируем билиоткеи
  46. section '.idata' data readable import
  47.         library kernel32, 'kernel32.dll', \
  48.                 msvcrt,   'msvcrt.dll'
  49.         import kernel32, ExitProcess, 'ExitProcess'
  50.  
  51.         import msvcrt, printf, 'printf', \
  52.                        scanf, 'scanf', \
  53.                        getch, '_getch'
RAW Paste Data