Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2018, 21:06   #1
efghi
 
Регистрация: 06.12.2018
Сообщений: 4
По умолчанию Вывод информации о пользователе и компьютере

Пишу программу по алгоритму, который дал преподаватель. Возникает ошибка A2022 instruction operands must be the same size в строках 65, 71, 72. Почему это может происходить? Может быть какие то еще есть ошибки в коде? Неделю уже пытаюсь сделать прогу. Преподаватель ничем помочь не может.Вот код:
Код:
extrn GetUsernameA :proc, 
GetComputerNameA :proc, 
GetTempPathA :proc, 
GetVersionExA :proc, 
wsprintfA :proc, 
MessageBoxA :proc, 
ExitProcess :proc 
 
.data 
cap db '<заголовок окна>', 0 
fmt db 'Username: %s',0Ah, 
'Computer name: %s', 0Ah, 
'TMP Path: %s', 0Ah, 
'OS version: %d.%d.%d', 0 
 
OSVERSIONINFO struct 
dwOSVersionInfoSize dword ? 
dwMajorVersion dword ? 
dwMinorVersion dword ? 
dwBuildNumber dword ? 
dwPlatformId dword ? 
szCSDVersion byte 128 dup(?) 
OSVERSIONINFO ends 
.code 
Start proc 
;Объявление локальных переменных 
szMAX_COMP_NAME = 16 
szUNLEN = 257 
szMAX_PATH = 261 
 
local _msg[1024] :byte, 
_username[szUNLEN] :byte, 
_compname[szMAX_COMP_NAME] :byte, 
_temppath[szMAX_PATH] :byte, 
_v :OSVERSIONINFO, 
_size :dword 
 
 
;Подготовка стека 
sub RSP, 8*5 
and SPL, 0F0h 
 
;Получение имени пользователя, названия компьютера и пути до директории временных файлов 
mov _size, szUNLEN         ; в _size размер строки имени пользователя 
lea RCX, _username            ; адрес в rcx
mov RDX, szUNLEN              ;размер в RDX
call GetUserNameA 
 
mov _size, szMAX_COMP_NAME; 
lea RCX, _compname 
mov RDX, szMAX_COMP_NAME 
call GetComputerNameA 
 
mov _size, szMAX_PATH;  
mov RCX, szMAX_PATH
lea RDX, _temppath 
call GetTempPathA 
 
;Получение сведений о системе 
;mov al,0 
xor al,al 
mov rcx, size _v ;занесем в регистр RCX размер экземпляра _v
lea rdi, _v ; адрес _v
rep stos byte ptr [RDI] 
mov _v.dwOSVersionInfoSize, rcx ; размер структуры поместим в _v.dwOSVersionInfoSize
call GetVersionExA 
 
;Формирование отформатированной строки 
lea rcx, _msg 
lea rdx, fmt 
mov r8, _username 
mov r9, _compname 
call wsprintfA 
 
;Отображение полученной информации в диалоговом окне 
mov rcx,0 
mov r9,0 
lea rdx, _msg 
lea r8, cap 
call MessageBoxA 
 
mov rcx,0 
call ExitProcess 
Start endp 
end
efghi вне форума Ответить с цитированием
Старый 08.12.2018, 01:11   #2
Nintra GrayWorker
Пользователь
 
Регистрация: 19.10.2018
Сообщений: 72
По умолчанию

efghi, по всей видимости, здесь покаместь нет раздела для asm-a,
Win-API - это совсем другая вещь(например, заюсать функцию FindWindowByName).
Там где у вас ошибки, в основном при юсанье командs "lea" - посмотрите, как вы ее юсаете, какие входные параметры, и в какие регистры перед её юсаньем нужно что заносИть.
Nintra GrayWorker вне форума Ответить с цитированием
Старый 08.12.2018, 01:37   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Nintra GrayWorker Посмотреть сообщение
Win-API - это совсем другая вещь(например, заюсать функцию FindWindowByName).
А автор откуда функции вызывает по-вашему?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение системной информации о компьютере С++ Loqwer78rus Помощь студентам 1 05.06.2015 00:33
Получение информации о дисках установленных в компьютере diamn3452 Общие вопросы C/C++ 3 19.03.2012 19:05
Защита информации в компьютере от взлома с USB-хакером Alinax Помощь студентам 7 04.10.2011 15:36
Вывод отдельного звука на TB и на компьютере ArtInt Софт 2 29.10.2009 20:45
вывод информации о компьютере и операционной системы (Turbo С 3.0, Borland C++) sniket Общие вопросы C/C++ 0 09.12.2008 21:37