Page 5 of 7

Re: нужно uInt32.toString() на асме

PostPosted: 28 Dec 2011, 04:03
by lvd
fk0 wrote:strlcat
=======

?╚╧─:
DE = ╒╦┴┌┴╘┼╠╪ ╬┴ ╙╘╥╧╦╒ ╨╥╔г═╬╔╦
HL = ╒╦┴┌┴╘┼╠╪ ╬┴ ╙╘╥╧╦╒ ╔╙╘╧▐╬╔╦
BC = ═┴╦╙╔═┴╠╪╬┘╩ ╥┴┌═┼╥ ╙╘╥╧╦╔ ╨╥╔г═╬╔╦┴


Щито это было?

Re: нужно uInt32.toString() на асме

PostPosted: 28 Dec 2011, 04:04
by lvd
TS-Labs wrote:Дебаг в асме компилированного гцц-ом си под авр показал наличие офигительных просеров оптимизации.

И потому всем надо юзать спижженный ыар, так я понимаю твой посыл?

Re: нужно uInt32.toString() на асме

PostPosted: 28 Dec 2011, 04:28
by TS-Labs
lvd wrote:И потому всем надо юзать спижженный ыар, так я понимаю твой посыл?

1. А квартус у тебя купленный?
2. Не вижу связи. Сообщаю: вера в магические способности "программистов" - миф. Насколько я понимаю, гцц под авр перепиливали на коленке.

Re: нужно uInt32.toString() на асме

PostPosted: 28 Dec 2011, 05:56
by DimkaM
На примере компиляции fatfs для з80:
гцц не пробовал. хайтека под пц не видел.
с з88дк наебался очень долго, код выходит в 1.7 раза больше ИАРа, проёбывает данные при преобразовании типов указателей, стек раздувает неприлично, недели две фиксил код под него.
ИАР всё скомпилил корректно с первого раза, ни строчки не менял.
Пока ИАР рулит, время будет попробую гцц и сдцц.

Re: нужно uInt32.toString() на асме

PostPosted: 28 Dec 2011, 06:52
by lvd
TS-Labs wrote:1. А квартус у тебя купленный?

Все мои прошивки %username% может откомпилить на фрее квартусе и авр-гцц. В отличие от ыара, еслиб мы на нём делали прошу для аврки. Сечёшь фишку?
TS-Labs wrote:Насколько я понимаю, гцц под авр перепиливали на коленке.

И таки перепилили. А что сделал ты, %username%?
DimkaM wrote:хайтека под пц не видел.

Есть мнение поделиться ссылочкой недавноспиздившим хайтек :)

Re: нужно uInt32.toString() на асме

PostPosted: 28 Dec 2011, 07:20
by TS-Labs
lvd wrote:Все мои прошивки %username% может откомпилить на фрее квартусе и авр-гцц.

Поднимаем логи годичной давности и ВНЕЗАПНО читаем там мои псто что фришный квартус (сапрайз!) не генерит выходной файл.
lvd wrote:И таки перепилили.

Маладцы же. Однако столь примитивный фак-ап говорит о том, что многое не учтено. Ну бля, реально тупой факап. Типа, они двигают 32битный рег на 24 бита, и вместо одного мува - четыре. Нахерайн? Хорошо еще не 24 сдвига...

Re: нужно uInt32.toString() на асме

PostPosted: 28 Dec 2011, 07:28
by lvd
TS-Labs wrote:Типа, они двигают 32битный рег на 24 бита, и вместо одного мува - четыре. Нахерайн?

Можбыть мсье сходит изучит как работает гцц унутре? Думаю, многие вопросы отпадуд.

Re: нужно uInt32.toString() на асме

PostPosted: 28 Dec 2011, 07:28
by fk0
lvd wrote: BC = ═┴╦╙╔═┴╠╪╬┘╩ ╥┴┌═┼╥ ╙╘╥╧╦╔ ╨╥╔г═╬╔╦┴
Щито это было?


Код в стиле open source.

Re: нужно uInt32.toString() на асме

PostPosted: 28 Dec 2011, 07:31
by TS-Labs
lvd wrote:Можбыть мсье сходит изучит как работает гцц унутре?

Мне какая разница как он изнутре? Он наружу ахинею генерит.

Re: нужно uInt32.toString() на асме

PostPosted: 28 Dec 2011, 07:39
by fk0
TS-Labs wrote:Вернусь к возне с юсб драйвером - заскриншочу. Охуеешь, инфа 100%.


Я тебе как профессионал PIC-программирования могу сказать, что весь спор C vs ассемблер стоит где-то 150-300% программной памяти и столько-же тактов (в маргинальных случаях говнокомпиляторов больше -- но это ни о чём не говорит, кроме того, что компилятор говно). И меньше ОЗУ -- это в пользу C, причём существенно. Потому, что ассемблер не управляет выделением памяти (под переменнные, на стеке, наконец malloc) и в ассемблере типично всё тупо распределено статически и всегда, вне зависимости от того, нужно оно или нет, если не влезает в регистры. И ещё в любом проекте мифическое быстродействие ассемблера нужно в 5% программ. Если вообще нужно. В области не-любительского программирования это давно осознали и на ассемблере в здравом уме практически никто ничего не пишет, только если в области очень маленьких проектов с нано-контроллерами. Да, выход компилятора иногда не оптимален. И что с того? Это принципиально ничего не меняет.