Алфавит на экране в FASM

Опубликовано 14 февраля 2019-го года

Задача

Вывести в консоль все буквы английского алфавита.
Стэк технологий: Windows x86-64, Assembler, FASM.

Рабочий код программы

format PE Console
entry start
include 'win32ax.inc'
section '.text' code readable executable
  start:
    mov eax, 'A'
    mov ecx, 26
    print_char:
    push ecx ; сохраняем счетчик
    ; Вывод символа.
    cinvoke putchar,eax
    ; Возвращаем счетчик на место.
    pop ecx
    ; Генерируем следующюю "букву алфавита"
    inc eax
    ; Возвращаемся к печати новой "буквы", пока счетчик не равен нулю.
    ; "loop" сам отнимет единицу от "ecx", поверьте наслово!
    ; ( хотелось бы и к eax антилуп применить, и скомбинировать с этим лупом, но не за лупом правда!:) )
    loop print_char
    cinvoke putchar,10 ; new line display
    cinvoke system, 'pause'
    invoke ExitProcess, 0 ; очищаем голову
section '.idata' import data readable
  library\
    kernel32, 'kernel32.dll', \
    msvcrt,     'msvcrt.dll' ; C-Run time from MS. This is always on every windows machine
  import kernel32, \
    ExitProcess, 'ExitProcess'
  import msvcrt, \
    putchar, 'putchar', \
    system, 'system'

Результат работы рограммы

C:\Windows\System32\cmd.exe


на главную

© Hryhorii Furletov, 2019-й год