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

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

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.08.2010, 16:27   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ладно господа. Раз вы такие. Ща я вам покажу Кузькину Мамку:
Код:
	char c[4]="";
	unsigned int i=543450223;
	int k=13;
	i+=1308692982*((k+1)%2);
	_asm{
	 mov eax,dword ptr[i];
	 mov dword ptr c,eax;
	}
	printf("%s",c);
	getchar();
	return 0;
А? Как вам? Эти слова ведь в целое умещаются вполне
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.08.2010, 16:30   #12
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ладно господа. Раз вы такие. Ща я вам покажу Кузькину Мамку:
Код:
	char c[4]="";
	unsigned int i=543450223;
	int k=13;
	i+=1308692982*((k+1)%2);
	_asm{
	 mov eax,dword ptr[i];
	 mov dword ptr c,eax;
	}
	printf("%s",c);
	getchar();
	return 0;
А? Как вам? Эти слова ведь в целое умещаются вполне
Я что-то не понял, что здесь, а проверить мой код не могли бы? а я щас на другом компе
BOBAH13 вне форума Ответить с цитированием
Старый 30.08.2010, 16:31   #13
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Ассемблерные вставки не катят?)
Не увидел, что уже начали и на асме писать)

Можно сделать так:
выделить младший бит (заендить маской типа 00000001) а потом сделать что то типа таблицы переходов.

Есть еще идейка, но это уже динамическое программирование, суть такова опять выделяем младший бит, потом смотрим опкоды JZ и JNZ, сдвигаем этот бит на место где различие между JZ и JNZ а потом просто тупо хорим два бита- команду и то что у нас вышло.

Последний раз редактировалось Levsha100; 30.08.2010 в 16:41.
Levsha100 вне форума Ответить с цитированием
Старый 30.08.2010, 16:31   #14
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Stilet
ассемблер обязательно было использовать?)
пс. для even нужно 5 символов, для завершающего нуля. а так идея хорошая
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 30.08.2010, 16:36   #15
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Levsha100 Посмотреть сообщение
Ассемблерные вставки не катят?)
Не увидел, что уже начали и на асме писать)

Можно сделать так:
выделить младший бит (заендить маской типа 00000001) а потом сделать что то типа таблицы переходов.
1й метод массив = таблица.
BOBAH13 вне форума Ответить с цитированием
Старый 30.08.2010, 16:41   #16
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

тогда см. второй метод =)
вот опкод JZ- 1110100
и ZNZ- 1110101
Видим что отличается последний бит, так что сдвигать бит даже не нужно будет)))
Цитата:
in r0 , value
in r1 , 0x01
and r1 , r0

in Z(регистр, из которого lpm читает адрес), JZ_COM
lpm (записывает команду в регистр r0)

xor r0 , r1

и тут команда, которая записывает содержимое r0 на место команды, т.е. в JZ_COM

JZ_COM:
db 0x74, <адрес> - тут мы прыгаем на процедурку либо пропускаем "ход" и прыгаем на след шаге.

Последний раз редактировалось Levsha100; 30.08.2010 в 17:00.
Levsha100 вне форума Ответить с цитированием
Старый 30.08.2010, 16:44   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ассемблерные вставки не катят?)
Чего это? Где в задании?
Цитата:
ассемблер обязательно было использовать?)
Звиняйте, господа. Я Дельфиец, я понятия не знамо как в Си преобразования типов правильно делать.

Цитата:
BOBAH13
s += (number % 2) * 3; - Ошибка 1 error C2106: +=: левый операнд должен быть левосторонним значением d:\_projects\vs2010\стирать\sdf\sdf \sdf.cpp 12 1 sdf
Цитата:
char s[7] = "OddEven";
char s[8] = "OddEven";
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.08.2010, 16:45   #18
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Чего это? Где в задании?

Звиняйте, господа. Я Дельфиец, я понятия не знамо как в Си преобразования типов правильно делать.
Ахаха, смешно

Integer(...) и (int)(...)

Edit:
Может еще s += (char)((number % 2) * 3);
BOBAH13 вне форума Ответить с цитированием
Старый 30.08.2010, 16:47   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ахаха, смешно
Не. Это бы в Паскале прокатило. В Делфи не гарантия. Я бы через move в строку байты "числа" пихал
Я просто забыл как в Сях такое делается.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.08.2010, 16:50   #20
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Stilet
Цитата:
char *s;
unsigned int i = 543450223;
int k=11;
i += 1308692982 * (k % 2);
s = &i;
printf("%s",s);
return 0;
но как я уже сказал - ты забыл про 5 байт для even, который нужен принтфу
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простенькая задача в Делфи: разбор натурального числа Fantazerishka Помощь студентам 4 23.09.2009 17:13
Простенькая задача на Java Arhangel_bes Помощь студентам 4 24.03.2009 18:48
Простенькая задача на С KoVeN Помощь студентам 4 25.12.2008 08:15
Простенькая задача Делфи Katovski Помощь студентам 18 02.05.2008 20:39