Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

Пишу программу по алгоритму, который дал преподаватель. Возникает ошибка 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, 02:11   #2
Nintra GrayWorker
Пользователь
 
Регистрация: 19.10.2018
Сообщений: 39
Репутация: 10
По умолчанию

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

icq: 512-765
skype: alexp.frl
По умолчанию

Цитата:
Сообщение от Nintra GrayWorker Посмотреть сообщение
Win-API - это совсем другая вещь(например, заюсать функцию FindWindowByName).
А автор откуда функции вызывает по-вашему?
Alex11223 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


05:17.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru