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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что за ошибки http://www.cyberforum.ru/cpp-beginners/thread660934.html
Создать программу с классом Student1 порождающим объекты - анкетные данные о студентах. Класс включает: ФИО год поступления курс номер группы размер стипендии по N предметам( номер для каждого...
C++ Оценить правильность использования конструкторов, деструкторов в коде Всем доброго времени суток. Не могли бы вы оценить правильность использования конструкторов,деструкторов и динамического выделения памяти данной программы. Вот код: #include <iostream.h>... http://www.cyberforum.ru/cpp-beginners/thread660932.html
C++ Инициализация укзателей в классе
Всем привет читаю книгу Пабло Халперна "Стандарная библиотека С++ на примерах". Там, в качестве обучения читателю предлагается пройти процесс разработки и реализации некоего приложения - записной...
C++ Генерация чисел. Пуассон. Код не фурычит
Доброго времени суток. Господа, кому несложно покопаться в коде, помогите понять, где тут ошибки? Программа запускается, число выборки ввожу и всё, вылетает. Я в этом деле нуб, так что буду рад...
C++ В заданной строке удалить заданную подстроку, сколько бы раз она не встречалась http://www.cyberforum.ru/cpp-beginners/thread660908.html
Ребят, помогите разобраться. Стоит задача создать программу со строками, string.h желательно не использовать. В заданной строке удалить заданную подстроку, сколько бы раз она не встречалась. Вот...
C++ Метод многих поверхностей Подскажите, пожалуйста, где можно почитать о методе "многих поверхностей" (multi-surface method). С его помощью нужно будет построить сетку на области. подробнее

Показать сообщение отдельно
AlexeyWorking
0 / 0 / 0
Регистрация: 19.09.2009
Сообщений: 7

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

30.09.2012, 18:06. Просмотров 931. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru