|
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 49
|
|||||||||||
C++ и ассемблерная вставка16.09.2012, 16:16. Показов 9783. Ответов 14
Метки нет (Все метки)
Всем доброго времени суток.
Необходимо было написать программу, которая складывает попарно числа из 2х массивов обычным способом и с помощью ассемблерной вставки с использованием технологии mmx. Всё казалось бы просто, но я столкнулся с проблемой при компиляции. Вот код самой программы:
0
|
|||||||||||
| 16.09.2012, 16:16 | |
|
Ответы с готовыми решениями:
14
Не работает ассемблерная вставка Ассемблерная вставка С++ и Ассемблерная вставка/чтение SPD ОЗУ |
|
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
|
|
| 16.09.2012, 17:35 | |
|
Ошибся адресом
0
|
|
|
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 49
|
|||||||
| 16.09.2012, 17:41 [ТС] | |||||||
0
|
|||||||
|
4189 / 1837 / 220
Регистрация: 06.10.2010
Сообщений: 4,124
|
|
| 17.09.2012, 13:12 | |
|
[frst_arr+ecx*8]
0
|
|
|
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
|
||||||
| 17.09.2012, 15:42 | ||||||
|
Во-первых извиняюсь за сообщение о невозможности адресации вида [ecx*8].
Во-вторых, вот этот код не дает ошибок. Правда, в "Сервис>Параметры>Добавить следующие команды в запуск компилятора" я вставил -masm=intel. Еще описание переменных я вынес над int main(), а в самой ассемблерной вставке их имена надо предварять символом "_" (подчеркивание).
0
|
||||||
|
337 / 4 / 1
Регистрация: 29.11.2011
Сообщений: 39
|
||||||
| 17.09.2012, 15:51 | ||||||
|
оригинальный at&t синтаксис выглядит так
2
|
||||||
|
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 49
|
||||||
| 17.09.2012, 22:39 [ТС] | ||||||
0
|
||||||
|
337 / 4 / 1
Регистрация: 29.11.2011
Сообщений: 39
|
|
| 18.09.2012, 15:50 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 49
|
||||||
| 18.09.2012, 18:43 [ТС] | ||||||
0
|
||||||
|
337 / 4 / 1
Регистрация: 29.11.2011
Сообщений: 39
|
|
| 18.09.2012, 19:31 | |
|
нет, не рабочее
Добавлено через 14 минут с вариантом программы из стартового сообщения это ошибка линковки, как уже было сказано ранее, но даже если сделать переменные глобальными, то всё равно есть ещё одна серьёзная проблема. В extended asm'e есть clobbered list во вставке, затираемые регистры, компилятор например может положить в eax какую-нибудь переменную и работать с ней, когда он встретит правильную асм вставку, в которой указано, что еах затирается, то он после неё снова загрузит переменную в еах, а если он встретит твою вставку, то он будет работать с еах так, будто там до сих лежит его переменная, хотя это уже и неправда, так работает gcc и после слова асм нужно добавить volatile
0
|
|
|
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 49
|
||
| 18.09.2012, 19:41 [ТС] | ||
|
0
|
||
|
337 / 4 / 1
Регистрация: 29.11.2011
Сообщений: 39
|
||
| 18.09.2012, 20:20 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 49
|
||||||
| 18.09.2012, 22:22 [ТС] | ||||||
0
|
||||||
|
337 / 4 / 1
Регистрация: 29.11.2011
Сообщений: 39
|
|
| 19.09.2012, 14:16 | |
|
мне не нужен компилятор, ведь и так видно что здесь ошибки линковки будут, символы frst_arr[100],scnd_arr[100],res_arr_cpp[100],res_arr_asm[100] не определены, они выделяются на стеке и недоступны из твоей ассемблерной вставки по имени, и уж тем более эта программа не могла запуститься, как ты говоришь. Это первая ошибка, и вторую я уже озвучивал изменение регистров посреди сишного кода, без уведомления об этом компилятора, соответственно программа может работать правильно, а может и нет, это уж как бог на душу положит. Обе проблемы решаются использованием расширенного ассемблера, вторую можно ещё решить вынесением вставки в отдельную процедуру
0
|
|
|
|
||
| 25.09.2012, 22:45 | ||
|
0
|
||
| 25.09.2012, 22:45 | |
|
Помогаю со студенческими работами здесь
15
Ассемблерная вставка Ассемблерная вставка на С++ Ассемблерная Вставка Ассемблерная вставка в с++
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|