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

Объяснение кода листинга программы

  1. Объявление переменных:
    • y — дескриптор переменной типа dword, содержащей значение -555;
    • Pi — дескриптор переменной типа `double», содержащей значение 3.141592.
  2. Создание строки-шаблона для вывода с помощью функции crt_printf:
    • tpt — дескриптор буфера, в который записывается строка-шаблон 'y=%d, Pi=%1.7f', оканчивающаяся нулевым символом.
  3. Код программы:
    • Вызов функции crt_printf для вывода содержимого переменных y и Pi в консоль с использованием шаблона из переменной tpt.
    • Вызов функции crt__getch для приостановки выполнения программы до нажатия клавиши.
    • Вызов функции crt_exit для завершения работы программы. Таким образом, в результате выполнения данного кода в консоли будет выведена строка 'y=-555, Pi=3.141592'.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5