Я пытаюсь вызвать cpuid и распечатать вывод из EBX, ECX и EDX на консоль, но вместо этого он печатает пустую строку
вот мой код:
.586
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
.data
.data?
mybuffer byte 100 dup(?)
.code
start:
mov eax, 0
cpuid
invoke lstrcpy, addr mybuffer, ebx
invoke lstrcat, addr mybuffer, ecx
invoke lstrcat, addr mybuffer, edx
invoke GetStdHandle, STD_OUTPUT_HANDLE
invoke WriteConsole, eax, addr mybuffer, sizeof mybuffer, NULL, NULL
invoke ExitProcess, 0
end start
mov mybuffer, ebx; mov mybuffer+4, ecx; mov mybuffer+8, edx
, и это должно сработать. Используйте12
вместоsizeof mybuffer
для печати. - person Jester   schedule 11.05.2016mov
строке. Правильно ли объявление mybuffer? - person szafir   schedule 11.05.2016dword
, не знаю оmasm
. Также попробуйте использовать скобки, такие какmov [mybuffer+4], ecx
или дажеmov dword ptr [mybuffer+4], ecx
. - person Jester   schedule 11.05.2016