MASM вывод переменной в консоль - Assembler
Формулировка задачи:
как вывести значение переменной, или регистра в консоль
Желательно использовать WriteConsole
или как создать строку из переменной
.data y dd -555 .code invoke GetStdHandle, -11 mov hStdOut,EAX invoke WriteConsole, hStdOut, y, sizeof y, 0, 0
.386 .model flat, STDCALL include D:\masm32\include\kernel32.inc includelib D:\masm32\lib\kernel32.lib include D:\masm32\include\user32.inc includelib D:\masm32\lib\user32.lib GetStdHandle PROTO:DWORD WriteConsole PROTO:DWORD,:DWORD,:DWORD,:DWORD,:DWORD ExitProcess PROTO:DWORD Sleep PROTO:DWORD .data aValue dd 2 form db "%d", 0 mes db 20 dup(0) .code Main PROC LOCAL hStdOut :DWORD mov eax, aValue invoke wsprintf, addr mes, addr form, eax invoke GetStdHandle, -11 mov hStdOut,EAX invoke WriteConsole, hStdOut, addr mes, sizeof mes, 0, 0 invoke Sleep, 1000 invoke ExitProcess, 0 Main ENDP End Main
Решение задачи: «MASM вывод переменной в консоль»
textual
Листинг программы
.386 .model flat, stdcall option casemap :none include \masm32\include\windows.inc include \masm32\include\masm32.inc include \masm32\include\msvcrt.inc include \masm32\macros\macros.asm includelib \masm32\lib\masm32.lib includelib \masm32\lib\msvcrt.lib .data y dd -555 Pi dq 3.141592 tpt db 'y=%d, Pi=%1.7f',0 .code start: invoke crt_printf, ADDR tpt, [y], [Pi] invoke crt__getch invoke crt_exit,0 end start
Объяснение кода листинга программы
- Объявление переменных:
y
— дескриптор переменной типаdword
, содержащей значение -555;Pi
— дескриптор переменной типа `double», содержащей значение 3.141592.
- Создание строки-шаблона для вывода с помощью функции
crt_printf
:tpt
— дескриптор буфера, в который записывается строка-шаблон'y=%d, Pi=%1.7f'
, оканчивающаяся нулевым символом.
- Код программы:
- Вызов функции
crt_printf
для вывода содержимого переменныхy
иPi
в консоль с использованием шаблона из переменнойtpt
. - Вызов функции
crt__getch
для приостановки выполнения программы до нажатия клавиши. - Вызов функции
crt_exit
для завершения работы программы. Таким образом, в результате выполнения данного кода в консоли будет выведена строка'y=-555, Pi=3.141592'
.
- Вызов функции
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д