![]() |
|
|
![]()
|
|
| SaYfeR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 13.5.2014 Репутация: нет Всего: нет |
Сильно не ругайтесь я только начал изучать Asm
Помогите отредактировать код. Вот само задание: Дан массив размерности n. Перевернуть массив a(n)=a(0), a(n-1)=a(1) и т.д.
|
|||
|
||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
Я могу ошибаться, но при перемещении по массиву регистр нужно не на 1 изменять, а на размер элемента в байтах, т.е.
А почему ты не хочешь идти навстречу двумя смещениями esi и edi? |
|||
|
||||
| SaYfeR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 13.5.2014 Репутация: нет Всего: нет |
ФедосеевПавел,
а как? |
|||
|
||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
Не проверял, только предполагаю, что будет работать
Примерно так. |
|||
|
||||
| SaYfeR |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 13.5.2014 Репутация: нет Всего: нет |
ругается на duplicate declaration of: @@
Добавлено через 1 минуту и 58 секунд ФедосеевПавел, как это можно исправить? |
||||
|
|||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
Не знаю.
Я взял твою программу из поста №1, заменил один цикл на приведённый в моём посте, при компиляции и линковке в masm32 (я воспользовался оболочкой qeditor) выдало ошибки на какие-то вызовы API Win32, я скопировал "шапку" include/includelib из какого-то примера. Теперь компиляция без ошибок. Ошибок с метками не возникало. Я не отлаживал код и не знаю, как он работает (сейчас тороплюсь)
|
|||
|
||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
SaYfeR, попробовал я запустить компилирующуюся прогу - она закрылась с ошибкой. Запустил её в отладчике OllyDbg, нашёл, что ты неправильно вызываешь printf при выводе результатов обмена (забыл ADDR). Заодно, я подправил свой вариант цикла обмена.
Т.к. для меня это вторая программа на ассемблере для Windows, то я не разобрался: 1) с выводом строки в printf - выводится весь массив в одну строку без перевода строки; 2) переключением кодовой страницы - вместо русских букв - кракозябры.
|
|||
|
||||
| SaYfeR |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 13.5.2014 Репутация: нет Всего: нет |
ФедосеевПавел, в .data добавил
и заменил
вот этим
Вроде работает, так что огромное СПАСИБО за помощь новичку. Добавлено через 2 минуты и 56 секунд сможете еще вот этот код посмотреть
|
||||||||
|
|||||||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
Могу. Посмотрел.
Опять вижу
Опять при компиляции и линковке выдаёт ошибку из-за отсутствия какой-то библиотеки. Это сообщение отредактировал(а) ФедосеевПавел - 15.5.2014, 15:33 |
|||
|
||||
| SaYfeR |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 13.5.2014 Репутация: нет Всего: нет |
ФедосеевПавел, опять не заметил
значит все дело в отсутствии библиотеки? |
|||
|
||||
| ФедосеевПавел |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
Когда линкер выдаёт ошибку "error LINK2001: unresolved external symbol _ExitProcess@4" - да, это отсутствие описания в includelib. Можешь подобавлять include и includelib из раннего примера и убедится, что ошибки компиляции и линковки исчезнут.
|
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |