0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 29
|
||||||||||||||||
1 | ||||||||||||||||
Ассемблерные вставки в C++26.04.2013, 19:36. Показов 29404. Ответов 25
Метки нет (Все метки)
Собственно сабж ...:
Имею следующий код :
0
|
26.04.2013, 19:36 | |
Ответы с готовыми решениями:
25
Ассемблерные вставки С++ + Ассемблерные вставки Ассемблерные вставки пример Ассемблерные вставки (Часть 3) |
2835 / 1644 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
26.04.2013, 20:34 | 2 |
Это получилось, что складываются адреса Mas и Carry, а надо сначала поместить Carry в какой-нибудь регистр, чтобы само значение можно было в адресе использовать.
0
|
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 29
|
|
26.04.2013, 21:03 [ТС] | 4 |
Somebody - что то не выходит ....Lazybiz - нет , не это ..
Мне нужно , обращаться к массиву по индексу , сам индекс находится в переменной , объявленной в Си коде ... Нужно это для того что бы потом создать цикл , в котором эта переменная счетчик будет увеличиваться , и по ней будет идти обращений к элементу массива ... Вот , каковы цели (скопирована с аси ) : -Слуашй , а в асссемблере , не льзя ли как то работать с переменными, статически , то есть например имею массив 1 2 3 4 , что бы обратиться например к первому элементу надо писать имя массива + 2 , что бы ко второму , надо писать + 4 ...+ 6 и т.д,но нельзя ли сделать так что бы к первому я обрался +2 , ко второму тоже +2 и к тертьему тоже + 2 и т.д ?
0
|
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 29
|
||||||
26.04.2013, 21:21 [ТС] | 6 | |||||
Ну как как , примерно вот так :
Массив у нас создан ...
MOV AX, [Mas] Что бы переместить первый , пишем так : MOV AX, [Mas + 2] А второй , уже будет + 4... Однако , таких операций будет много , и посему я решил поместить это дело в цикл ... И должно быть что то типа того ...: Цикл старт { Переместить i - ый элемент массива в регистр АХ , выполнить сложение с элементом другого массива , результат сохраанить , в элемент первого массива... }, здесь и - индекс массива , на первом шаге он равен 0 , потом 2 , 4 и т.д - как это реализовать , я не знаю , причина написана выше ...Однако , есть у меня еще и вопрос такой , можно ли i ... эмм.. ну как бы постоянной величиной сделать , при этом что бы при обращении к индексу массива на каждом шаге цикла ... программа обращалась к нужному ... - по порядку ...То есть что бы когда мы обратились к првому элементу массива , програмаа бы занесла в регистр участок памяти , по коему мы обратились , потом на след шаге цикла , она бы прибавила что то , к этому значению (что бы получить доступ к след индексу) и сохранила его ... И так каждый раз .... Интересует хоть что то из этих 2 - ух вопросов ЫЫЫЫЫ
0
|
26.04.2013, 21:46 | 8 | |||||
Вывод массива в цикле
0
|
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 29
|
|
26.04.2013, 21:50 [ТС] | 9 |
Ну , мысль ваша то понятна , но так , это работать не будет , увы (((Это , к ответу повыще ))))
0
|
0 / 0 / 0
Регистрация: 17.08.2012
Сообщений: 29
|
|
26.04.2013, 22:32 [ТС] | 11 |
Я ответ этот написал к другому комментарию - у вас , все замечательно , то что и нужно )))))
Добавлено через 7 минут Всем огромное спасибо , )Все проще , чем кажется .... Kastaneda - Дабл спасибо
0
|
26.04.2013, 22:41 | 13 |
Как я понял у ТС'а была задача - обратиться к каждому элементу массива и желательно в цикле. Я привел простой пример - печать массива, реализованная через цикл. Дальше ТС может убрать оттуда вывод и вставить что-то свое.
0
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
26.04.2013, 23:14 | 14 |
Раз тут речь зашла про ассемблер. То воспользуюсь ситуацией =)
Кто-нить может посоветовать источник информации по поводу использования в ассемблерной вставке команд sse2/3/4? А то, как-то не нахожу достаточно объемного описания. Лучшим решением бы было перечисление всех команд с их описанием и примером использования...
0
|
26.04.2013, 23:19 | 15 |
nonedark2008, тут есть пример вставки: http://ru.wikipedia.org/wiki/SSE
Думаю список всех инструкций найти не сложно.
0
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
26.04.2013, 23:22 | 16 |
Я уже на это натыкался. Больше скажу. В википедии есть даже полный список команд, но дело в том что примерно на половину там нет описания... У Интела я натыкался на программу, содержащую полный список всех интринсиков и описаний к ним. Хотелось бы что-то подобное, но для ассемлерных команд.
0
|
26.04.2013, 23:33 | 17 |
А разве описание интринсиктов не соответствует описанию инструкций?
http://concatenative.org/wiki/view/SSE Добавлено через 7 минут Там если плясать от ссылки то все можно найти.
1
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
27.04.2013, 00:14 | 18 |
lazybiz, спасибо за ссылку. Что-то в этом есть. Отписание интринсиков то в целом соответствует, но вот проблема в том, что не для всех интеловских ассемблерных команд реализованы интринсики.
0
|
1394 / 1023 / 325
Регистрация: 28.07.2012
Сообщений: 2,813
|
|
27.04.2013, 09:57 | 20 |
0
|
27.04.2013, 09:57 | |
27.04.2013, 09:57 | |
Помогаю со студенческими работами здесь
20
Ассемблерные вставки, ошибка Ассемблерные вставки в Visual DSP++ Как делаются ассемблерные вставки? Зачем нужны ассемблерные вставки в Си (msvs) ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |