masm64如何使用printf函数在一行中打印不同类型的值?
;подключаем библиотеки
includelib kernel32.lib
;подключаем библиотеку C
includelib msvcrt.lib
;для совместимости старых функций C
includelib ucrt.lib
;для использования старых функций ввода-вывода
includelib legacy_stdio_definitions.lib
;=====
;подключаем функции
extern ExitProcess: PROC
extern SetConsoleOutputCP: PROC
extern getchar: PROC
extern printf: proc
;=====
.data
a qword 15
b qword 255
;13 или \r - перевод каретки
;10 или \n - перевод строки
;0 или \0 - нулевой байт
;%d - формат вывода целого числа
msg byte "%d %d", 13, 10, 0
.code
main proc
mov rax, 65001
call SetConsoleOutputCP
;аргументы передаются в функцию в обратном порядке
mov rdx, b
mov rcx, rdx
mov rdx, a
mov rcx, rdx
mov rcx, offset msg
call printf
call getchar
mov rax, 0
call ExitProcess
main endp
end
答案如下
15 -1607011040