Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AlexeyWorking
0 / 0 / 0
Регистрация: 19.09.2009
Сообщений: 7
#1

Массив в функцию (ассемблер вставка) ошибка чтения - C++

30.09.2012, 18:06. Просмотров 911. Ответов 1
Метки нет (Все метки)

Вообщем такая проблема,передаю указатель на массив в функцию
в функции надо заменить последние 3 элемента массива на первые 3,массив из unsigned char
реализация должна быть асм вставкой

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int main(int argc, char* argv[])
{
    unsigned char arr[24]={
        1,2,3,4,5,6,
        7,8,9,10,11,12,
        13,14,15,16,17,18,
        19,20,21,22,23,24
        };// как пример,там другие значения,это не суть
 
        AsmFlipVertical(arr);
};
void AsmFlipVertical(unsigned char  *arr)
{
_asm
    {
        les esi,arr ; esi=адресс начального элемента
        mov eax,esi
        add eax,21  
        mov edi,eax ; edi=адресс начального элемента+21, получаем 21 элем массива
        cld 
        mov ecx,3
        rep movsb ; перемещаем 0 элемент в 21,перемещаем 1 элемент в 22 и тд
    }
}
movsb от esi до edi
Выкидывает ошибку чтения памяти при выполнении rep movsb
что не так? помогите пожалуйста,уже день сижу,если написать асм вставку в main то ВРОДЕ работает без ошибок,но надо в функции которой передается указатель
Заранее спасибо
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2012, 18:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив в функцию (ассемблер вставка) ошибка чтения (C++):

Динамический массив структур - ошибка "попытка чтения или записи в защищенную память" - C++
не работает: class Students { struct list { string marka_mashini; string familiya_vladelca; int god_vipuska; ...

Дан массив из прототипов функций или указателей на функцию, сделать функцию, возвращающую этот массив - C++
Не охота создавать лишнею тему извиняюсь заранее Вопрос такой Можете подсказать есть массив из прототипов функций или...

Как реализовать функцию, чтения из файла с сравнением? - C++
Функция должна считывать из файла посимвольно строку, встречая символ ";" то что до него помещается в символьный массив. Содержимое массива...

Написать функцию чтения н строк текста из файла - C++
Помогите пожалуйста с заданием, если можно, то дать небольшие комментарии. Спасибо заранее Написать функцию чтения н строк текста из...

В функцию передается массив случайных чисел в диапазоне от - 20 до + 20. Где ошибка? - C++
#include <iostream> using namespace std; //3. В функцию передается массив случайных чисел в //диапазоне от - 20 до + 20....

Как передать файл в функцию для записи/чтения (разные функции) - C++
Собственно сабж. Во первых есть вот такой блок в main: ofstream f1("F1.txt"); cout<<"Введите элементы в файл 1"<<endl; for (i=0;...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alexcoder
1464 / 678 / 89
Регистрация: 03.06.2009
Сообщений: 3,565
Завершенные тесты: 1
01.10.2012, 08:42 #2
вместо les написать mov esi,arr
либо так:
Assembler
1
2
3
4
mov esi,arr
lea edi,[esi+21]
mov ecx,3
rep movsb
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2012, 08:42
Привет! Вот еще темы с ответами:

Ошибка после чтения - C++
Консольное приложение. Весь проект работает корректно, но в самом конце при выходе выдает ошибку (Прервать, Продолжить) Необработанное...

Ошибка чтения строки - C++
есть задача считать из Edit данныe в таблицу ListView но выползает ошибка в строках с числовыми параметрами Unit1.cpp(74): E2034...

Ошибка чтения в структуру - C++
Почему не вписывается my.month? #include<iostream> #include<cstring> using namespace std; struct Date{ int day; char*...

Ошибка чтения из файла - C++
Народ, помогите понять, почему программа выдает ошибку при чтении из файла Входные данные: 6 2 3 -1 3 5 -2 -5 -1 9 -4 5 -1 -2 -2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru