Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

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

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

Ответ
 
Опции темы
Старый 06.12.2018, 22:06   #1
efghi
Новичок
 
Регистрация: 06.12.2018
Сообщений: 4
Репутация: 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
Сообщений: 65
Репутация: 10
По умолчанию

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


10:12.


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

RusProfile.ru


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