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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2015, 12:36   #1
mseshuk
 
Регистрация: 18.10.2015
Сообщений: 9
Восклицание Почему в ассемблерной вставке не работают метки

Добрый день, форум! У меня не работают метки, я хочу чтобы сравнивался регистр ECX с числом 5, а затем выполнялись условия: равны = label_je, ECX меньше = label_jl, ECX больше = label_jg.

Последний раз редактировалось mseshuk; 18.10.2015 в 15:46. Причина: удалил нерабочий код
mseshuk вне форума Ответить с цитированием
Старый 18.10.2015, 12:57   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Не работают в каком смысле? Компиль ругается?
Кстати, у тебя неправильно сделано. У тебя "b" всегда будет равно 3-м.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.10.2015, 13:09   #3
mseshuk
 
Регистрация: 18.10.2015
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Не работают в каком смысле? Компиль ругается?
Кстати, у тебя неправильно сделано. У тебя "b" всегда будет равно 3-м.
Немного не правильно выразился, в том и проблема, не могу понять, почему b всегда равно 3-м. Буду очень благодарен если разъясните.
mseshuk вне форума Ответить с цитированием
Старый 18.10.2015, 13:22   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Потому что у тебя после перехода на метки нет обхода лишних меток:
Код:
	__asm {
		mov ECX, 1;
			cmp ECX, 5
			jl label_jl // если ECX меньше
			jg label_jg // если ECX больше
	label_je :
		mov b, 1;
                jmp ok;
	label_jl :
		mov b, 5;
                jmp ok;
	label_jg :
		mov b, 3;
        ok:	
	};
Вот так будет работать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.10.2015, 13:25   #5
mseshuk
 
Регистрация: 18.10.2015
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Потому что у тебя после перехода на метки нет обхода лишних меток:
Код:
	__asm {
		mov ECX, 1;
			cmp ECX, 5
			jl label_jl // если ECX меньше
			jg label_jg // если ECX больше
	label_je :
		mov b, 1;
                jmp ok;
	label_jl :
		mov b, 5;
                jmp ok;
	label_jg :
		mov b, 3;
        ok:	
	};
Вот так будет работать.
Огромное спасибо, совсем про это забыл. Ещё такой нескромный вопрос, как это можно реализовать в виде процедуры? Чтобы, например, я могу выполнить этот код с разными значениями в регистре ECX
mseshuk вне форума Ответить с цитированием
Старый 18.10.2015, 13:57   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
int pro(int x){
 __asm{
 mov ecx,x
 ...
 
 }
 return b;
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.10.2015, 14:01   #7
mseshuk
 
Регистрация: 18.10.2015
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
int pro(int x){
 __asm{
 mov ecx,x
 ...
 
 }
 return b;
}
Спасибо, но я имел ввиду реализовать прямо в ассемблерной вставке, то есть запись в регистр ECX и затем через call вызов, но вот не получается что-то.
mseshuk вне форума Ответить с цитированием
Старый 18.10.2015, 15:06   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
я имел ввиду реализовать прямо в ассемблерной вставке,
Чет я ничего не понял...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Комментарии к ассемблерной вставке Feelnoobskill Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 05.06.2013 04:18
Работа с массивом в ассемблерной вставке Fabeldyr Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 8 27.10.2011 15:01
Метка в ассемблерной вставке EugenK Общие вопросы C/C++ 12 12.09.2011 13:49
Как вызвать функцию в ассемблерной вставке, зная адрес iceman2112 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 04.05.2010 13:38
Не работают метки ИВэТэшка Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 22.07.2009 22:05