Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 19.03.2011, 14:02  
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от omercury Посмотреть сообщение
Кто бы спорил. Но и тут есть варианты - удлиннители коротких переходов. Хотя, в данном случае какой-то код странный - может прикалывается кто? Компиляторы обычно метки на переходы не ставят. Шуруют сразу по абсолютному адресу.
Такое бывает при отключенной оптимизации.
Реклама:

Последний раз редактировалось Falconist; 13.04.2011 в 23:46.
Bill вне форума  
Непрочитано 19.03.2011, 14:09  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Ну не до такой же степени. Из 11 строки (вместе с метками) переход на L9 и тут же на L10. И метки.
Подобная закрученность была в небезизвестном ZX-Spectrum без всяких компиляторов.

Нажмите на изображение для увеличения
Название: bill1173.jpg
Просмотров: 50
Размер:	51.4 Кб
ID:	19949
Вот такая ерундовина уже не первый раз проскакивает. Я про кнопки(количество).

Последний раз редактировалось omercury; 19.03.2011 в 14:13.
omercury вне форума  
Непрочитано 19.03.2011, 15:06  
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от omercury Посмотреть сообщение
Ну не до такой же степени. Из 11 строки (вместе с метками) переход на L9 и тут же на L10. И метки.
Подобная закрученность была в небезизвестном ZX-Spectrum без всяких компиляторов.
Ну, вот маленький пример.
Исходный текст
Код:
extern char a,b, c;
int test()
	{
	if (a‹b && a‹c)
		{
		if (b‹c)
			a = b;
		else
			a = c;
		}
	else if(a›b && a›c)
		{
		if (b›c)
			a = b;
		else
			a = c;
		}
	else
		{
		a = b = c = 0;
		}
	}
Результат при выключенной оптимизации переходов
Код:
;	C85 compiler	V2.6

	.ident	/CV2.6/
	.library /z80lib/

	.psect	
	.title	test
_test::
	push	bc
	ld	a,(_a)
	ld	hl,_b
	cp	(hl)
	jr	nc,$2
	ld	a,(_a)
	ld	hl,_c
	cp	(hl)
	jr	nc,$2
	ld	a,(_b)
	ld	hl,_c
	cp	(hl)
	jr	nc,$3
	ld	a,(_b)
	ld	(_a),a
	jr	$4
$3:
	ld	a,(_c)
	ld	(_a),a
$4:
	jr	$5
$2:
	ld	a,(_b)
	ld	hl,_a
	cp	(hl)
	jr	nc,$6
	ld	a,(_c)
	ld	hl,_a
	cp	(hl)
	jr	nc,$6
	ld	a,(_c)
	ld	hl,_b
	cp	(hl)
	jr	nc,$7
	ld	a,(_b)
	ld	(_a),a
	jr	$10
$7:
	ld	a,(_c)
	ld	(_a),a
$10:
	jr	$11
$6:
	xor	a
	ld	(_c),a
	ld	(_b),a
	ld	(_a),a
$11:
$5:
$1:
	pop	bc
	ret

; Code size	- 99.
; Data size	- 0.

	.end
То же самое, но оптимизация включена
Код:
;	C85 compiler	V2.6
	.ident	/CV2.6/
	.library /z80lib/
	.psect	
	.title	test
_test::
	push	bc
	ld	a,(_a)
	ld	hl,_b
	cp	(hl)
	jr	nc,$2
	ld	a,(_a)
	ld	hl,_c
	cp	(hl)
	jr	nc,$2
	ld	a,(_b)
	ld	hl,_c
	cp	(hl)
	jr	nc,$3
	ld	a,(_b)
	ld	(_a),a
	jr	$4
$3:
	ld	a,(_c)
	ld	(_a),a
	jr	$5
$2:
	ld	a,(_b)
	ld	hl,_a
	cp	(hl)
	jr	nc,$6
	ld	a,(_c)
	ld	hl,_a
	cp	(hl)
	jr	nc,$6
	ld	a,(_c)
	ld	hl,_b
	cp	(hl)
	jr	nc,$7
	ld	a,(_b)
	ld	(_a),a
	jr	$10
$7:
	ld	a,(_c)
	ld	(_a),a
	jr	$11
$6:
	xor	a
	ld	(_c),a
	ld	(_b),a
	ld	(_a),a
$1:
$5:
$4 = $5
$11:
$10 = $11
	pop	bc
	ret
; Code size	- 99.
; Data size	- 0.
	.end
Я думаю, разница заметна. Или нет?

Последний раз редактировалось Falconist; 13.04.2011 в 23:45.
Bill вне форума  
Непрочитано 19.03.2011, 15:29  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от Bill Посмотреть сообщение
Я думаю, разница заметна. Или нет?
Собрал код в 2 колонки для наглядности - обхохотался. Такое ощущение, что при отключенной оптимизации намеренно ставятся глупые переходы.
в остальном код абсолютно одинаков.
C85_nooptimizet_optimizet.doc
Сообщение от Bill Посмотреть сообщение
Или нет?

Последний раз редактировалось Falconist; 13.04.2011 в 23:46.
omercury вне форума  
Непрочитано 19.03.2011, 15:30  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Bill, А что за компилятор ? Либы есть под периферию Спектрума ?
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 19.03.2011, 15:43  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Zilog не умерла. В то время z80 был покруче интеловского флагмена 8080(если правильно помню). Деньги вложили в Intel, а Zilog оттёрли в сторонку. Сейчас выпускает вполне приличные контроллеры. И не только.
Если интересно. Там и софт есть. http://zilog.com/index.php?option=co...=139&Itemid=59

Bill, с меточками генерировался перемещаемый блок для линкера?

Последний раз редактировалось omercury; 19.03.2011 в 15:54.
omercury вне форума  
Непрочитано 19.03.2011, 21:43  
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от dosikus Посмотреть сообщение
Bill, А что за компилятор ? Либы есть под периферию Спектрума ?
Это мой доморощенный, собственного производства т.с. Правда, давно это было, лет 25 с тех пор прошло. Тогда Спектрума еще не было. А после 91-го я вообще эту работу свернул. Но, тем не менее, некоторый опыт программирования я тогда получил.

Последний раз редактировалось Falconist; 13.04.2011 в 23:45.
Bill вне форума  
Непрочитано 19.03.2011, 21:49  
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от omercury Посмотреть сообщение
Собрал код в 2 колонки для наглядности - обхохотался. Такое ощущение, что при отключенной оптимизации намеренно ставятся глупые переходы.
в остальном код абсолютно одинаков.
Да, нет, намеренно тут ничего не ставилось, трансляция тут чисто механическая. Я уже ссылку давал на свой опус, там написано как это получается. А оптимизация переходов выполняется в дополнительном проходе полученного ассемблерного текста.
Bill вне форума  
Непрочитано 19.03.2011, 21:58  
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от omercury Посмотреть сообщение
Bill, с меточками генерировался перемещаемый блок для линкера?
Да, у нас была разработана система - компилятор, ассемблер, линкер. Вссемблер выдавал объектный код в формате OMF. Единственно не сумели разобраться с форматом библиотек, поэтому использовали готовый библиотекарь от Borland.
PS: Изначально все это делалось под систему RSX-11M. Там использовали системные программы библиотекаря и линкера - TKB.
Bill вне форума  
Непрочитано 19.03.2011, 23:00  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от Bill Посмотреть сообщение
Да, нет, намеренно тут ничего не ставилось, трансляция тут чисто механическая. Я уже ссылку давал на свой опус, там написано как это получается. А оптимизация переходов выполняется в дополнительном проходе полученного ассемблерного текста.
Понятно, что не специально. Логика примерно ясна.
По подобному принципу делал конвертер из SolidWorks(твердотельное моделирование) в программу для ЧПУ. Деталь делается по некоторым простым правилам(от болванки отрезается всё лишнее), зато в результате по нажатию кнопки на выходе готовая программа.
Сообщение от Bill Посмотреть сообщение
Но, тем не менее, некоторый опыт программирования я тогда получил.
Сообщение от Bill Посмотреть сообщение
Да, у нас была разработана система - компилятор, ассемблер, линкер.
Скромничаете?

Последний раз редактировалось omercury; 19.03.2011 в 23:09.
omercury вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
KiCAD-объявления и впечатления al_dan KiCAD 32 03.10.2016 17:02
Народ, посмотрите quasm, Как ваши впечатления? suri Proteus, KiCAD и другие ECAD 5 14.10.2009 11:57


Часовой пояс GMT +4, время: 16:45.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot