Как использовать printf на masm?
Всем привет, для программы нужно разобраться с тем, как использовать printf или с аналогами данной функции на ассемблере.
вот код:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
.386
.model flat, stdcall
option casemap:none
include C:\WORUKE\masm32\include\windows.inc
include C:\WORUKE\masm32\include\user32.inc
include C:\WORUKE\masm32\include\kernel32.inc
include C:\WORUKE\masm32\include\masm32.inc
include C:\WORUKE\masm32\include\msvcrt.inc
include C:\WORUKE\masm32\examples\exampl05\enumkeys\macros.asm
includelib C:\WORUKE\mas\asm\LIB\user32.lib
includelib C:\WORUKE\mas\asm\LIB\masm32.lib
includelib C:\WORUKE\mas\asm\LIB\msvcrt.lib
includelib C:\WORUKE\mas\asm\LIB\kernel32.lib
bufsize equ 12
.data
cnt dd 0
hin dd 0
fName db "test.txt",0
buf dd 255 dup (0)
.code
MAIN:
call input_consol
call write_in_file
call read_file
invoke crt__getch
invoke ExitProcess, 0
input_consol:
invoke GetStdHandle, -10
mov hin, eax
lea eax, cnt
invoke ReadConsoleA, hin, ADDR buf, 255, eax, 0
invoke CloseHandle, hin
invoke lstrlen, offset [buf]
sub eax, 2
mov cnt, eax
ret
write_in_file:
lea ebx, [fName]
invoke CreateFile, ebx, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_ARCHIVE, 0
mov hin, eax
invoke WriteFile, hin ,ADDR buf, cnt 0, 0
invoke CloseHandle, hin
ret
read_file:
lea ebx, [fName]
invoke CreateFile, ebx, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0
mov hin, eax
invoke GetFileSize, hin, 0
mov cnt, eax
push cnt
invoke ReadFile, hin, ADDR buf, cnt, 0, 0
invoke CloseHandle, hin
invoke GetStdHandle, -11
mov hin, eax
pop cnt
printf ("len str - %d\n", cnt)
invoke WriteConsoleA, hin, ADDR buf, cnt, 0, 0
printf ("\n")
invoke CloseHandle, hin
ret
_TEXT ENDS
END MAIN
end start А вот список ошибок:
lab3.asm(50) : error A2137: too few arguments to INVOKE
lab3.asm(50) : error A2206: missing operator in expression
lab3.asm(50) : error A2114: INVOKE argument type mismatch : argument : 3
lab3.asm(68) : error A2008: syntax error : printf
lab3.asm(70) : error A2008: syntax error : printf
Пожалуйста помогите с прогой.
По дате
По рейтингу
Видео по теме