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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2015, 20:54   #1
Afli
Новичок
Джуниор
 
Регистрация: 19.05.2015
Сообщений: 1
Вопрос C++. и ассемблерная вставка

Я новичок и плохо разбираюсь в этом, поэтому спасибо заранее, при использовании вставки, вижла выкидывает сообщение: Ошибка 1 error C2443: конфликт размеров операндов, я понимаю почему она вызвалась, al - 1 байт а инт больше, но не понимаю как исправить
Код:
_asm
	{
	BEGIN:
		mov al, s; //символ
		mov ecx, line; // указатель на строку
		mov esi, 0; //счетчик 1
		mov ah, [ecx][esi];
		cmp ah, 0; // проверяем на конец строки
		je END; // если конец то выход
		cmp ah, al; // иначе сравниваем первый символ строки с s
		je DEL; // если первый символ s переходим  к удалению
		jmp CYCLE; // иначе главный цикл
	CYCLE:
		inc esi; // увеличили счетчик
		mov ah, [ecx][esi];
		cmp ah, 0; // проверка на конец строки
		je END; // если конец то выход
		cmp ah, al; // сравниваем с искомым символом
		je DEL; // совпадение - переход к удалению
		jmp CYCLE; // иначе далее по циклу

	DEL:
		mov edi, esi; // запоминаем текущий номер
		jmp CYCLE_2;
	CYCLE_2:
		lea ebx, [ecx][edi]; //ebx содержит указатель на текущий символ
		mov ah, [ecx][edi]; // ah содержит текущий символ
		cmp ah, 0; // если конец строки сдвиг закончен
		je PER;
		inc edi; // увеличили счетчик
		mov ah, [ecx][edi]; // edx содержит следующий символ, на него нам нужно заменить текущий
		mov[ebx], ah; // новое значение лежащее по адресу ebx (текущий := следующий)
		jmp CYCLE_2; // далее по циклу
	PER:
		dec esi;
		jmp CYCLE;
	END:
		xor eax, eax;
		xor ebx, ebx;
		xor ecx, ecx;
		xor edx, edx;
		xor esi, esi;
		xor edi, edi;
	}
помогите пожалуйста
Afli вне форума Ответить с цитированием
Старый 19.05.2015, 21:42   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
я понимаю почему она вызвалась, al - 1 байт а инт больше, но не понимаю как исправить
Не пихать инт в al, не?
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ассемблерная вставка на С++ CrashOveride Помощь студентам 1 01.04.2014 08:42
ассемблерная вставка Веди Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 15 12.07.2012 13:34
Ассемблерная вставка на Си faop Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 11.03.2011 11:03
Ассемблерная вставка! treki Помощь студентам 0 16.06.2010 00:15