Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2010, 19:20   #1
Modo
 
Регистрация: 29.11.2010
Сообщений: 3
По умолчанию Ошибка в программе (Assembler)

Вставочка на C++ (Visual Studio 2008). Считает сумму элементов одномерного массива mass/


Код:
#include "iostream"
#include "stdio.h"
#include "conio.h"
#include "windows.h"
#include "math.h"
using namespace std;

void main()
{

int mass[3];
int rez=0;
int per1=0;
INT16 size_mas=3;
int size_of_int=sizeof(int);

system("cls");
int i;
cout<<("Type in the first array [3]: ")<<endl;
	for(i=0;i<3;i++)
	{
		cin>>mass[i];
	}
	cout<<endl;


__asm
{
		xor eax,eax
		xor esi,esi
		mov esi,0
		mov cx,size_mas

cycl:
		mov eax,mass[esi]
		add eax,per1
		mov per1,eax
		add esi,size_of_int
		loop cycl
		mov rez,eax

}

printf("Answer:%d", rez);
getch();

}
На строке mov eax,mass[esi] вылетает ошибка: Unhandled exception at 0x004115ad in Mass.exe: 0xC0000005: Access violation reading location 0x00133000. Подскажете что делать?
Modo вне форума Ответить с цитированием
Старый 23.12.2010, 20:01   #2
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Потому что loop сравнивает ecx с нулём, а тут зануляется cx, а в старшей части - неизвестно что.
Somebody вне форума Ответить с цитированием
Старый 23.12.2010, 20:04   #3
Modo
 
Регистрация: 29.11.2010
Сообщений: 3
По умолчанию

Надо было:

INT16 size_mas=3; заменить на int size_mas=3;

mov cx,size_mas заменить на mov ecx,size_mas

Терь работает
Modo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в программе. ZeroCount Помощь студентам 2 18.12.2010 20:33
Ошибка в программе LuBuMaster Visual C++ 5 07.10.2010 17:19
Ошибка в программе forman Общие вопросы C/C++ 1 18.05.2010 22:47
Assembler - Помогите найти ошибку в программе Asya555 Помощь студентам 0 30.04.2009 16:08
С++ Ошибка в программе EwwwA Общие вопросы C/C++ 5 05.01.2009 23:12