|
Сопоставление проектов С и АСМ, Немного цифр |
|
|
|
 |
Ответов
|
Feb 21 2008, 08:43
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(_Pasha @ Feb 21 2008, 03:19)  Вот это совсем другое дело!  Че-то WINAVR тормозит немного. Ну, у avr-gcc код как правило похуже, с этим не спорю. Код #include <stdint.h> #include <avr/pgmspace.h> #define MAX_FONTS 10 // от балды, в приведеннмо примере не было задано. Но оно неважно
// структура данных по символам struct CharZnak { uint16_t sm; // Смещение от начала фонта uint8_t width; // Ширина символа };
extern const uint8_t Fonts[MAX_FONTS][2] PROGMEM; extern const struct CharZnak struct_fnt[MAX_FONTS-2][223] PROGMEM; extern uint8_t tekfonts, tekkern;
uint8_t sx(uint8_t Znak) { return pgm_read_byte( & struct_fnt[tekfonts-2][Znak].width ) + tekkern; } CODE .file "tst.c" __SREG__ = 0x3f __SP_H__ = 0x3e __SP_L__ = 0x3d __tmp_reg__ = 0 __zero_reg__ = 1 .global __do_copy_data .global __do_clear_bss .text .global sx .type sx, @function sx: /* prologue: frame size=0 */ /* prologue end (size=0) */ ldi r25,lo8(3) mul r24,r25 movw r30,r0 clr r1 lds r24,tekfonts ldi r25,lo8(0) ldi r18,lo8(669) ldi r19,hi8(669) movw r20,r24 mul r20,r18 movw r24,r0 mul r20,r19 add r25,r0 mul r21,r18 add r25,r0 clr r1 add r30,r24 adc r31,r25 subi r30,lo8(-(struct_fnt-1336)) sbci r31,hi8(-(struct_fnt-1336)) /* #APP */ lpm r30, Z /* #NOAPP */ lds r24,tekkern add r30,r24 mov r24,r30 ldi r25,lo8(0) /* epilogue: frame size=0 */ ret /* epilogue end (size=1) */ /* function sx size 31 (30) */ .size sx, .-sx /* File "tst.c": code 31 = 0x001f ( 30), prologues 0, epilogues 1 */ Катастрофической я бы разницу не назвал - ни в написании текста, ни в сгенерированном коде. Сравнивать надо одинаковые фрагменты, в приведенном выше куске часть регистров уже "откуда ни возьмись" заполнены и используются, тут всё "автономно". Цитата(_Pasha @ Feb 20 2008, 20:49)  По поводу "писАть на С" - я "С" терпеть не могу еще с 1992 года  Я года с 1987..88 использую и ничего. Что-то писалось чисто асмовое, что-то с делением "это пусть на С, а эта часть на асме". Сейчас если очень хочется - пишу вставку на асме. В последнее время хочется всё реже. Цитата 2. Переопределять стандартные функции НЕ ХОЧУ. Ну извините... Так можно дойти до "а на асме я могу что-то другое делать, пока EEPROM пишется, а С-шная программа станет колом на всё время записи блока, во какой плохой язык С". И начать требоавть стандартную функцию для решения всей своей задачи.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Feb 21 2008, 22:37
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(ReAl @ Feb 21 2008, 11:43)  Ну извините... Так можно дойти до "а на асме я могу что-то другое делать, пока EEPROM пишется, а С-шная программа станет колом на всё время записи блока, во какой плохой язык С". Вотъ, это тоже хотелось бы обсудить, хотя конкретно это, я уже пытался обсуждать, но большинство опонентов высказалось в том смысле, что в IAR удобно обращаться к таким(EEPROM) переменным и все тут... А сейчас я вот задался интересным вопросом, если кто еще не заметил, в новых AVR (mega48/88/......) есть такая фича, можно отдельно стирать ячейку и можно отдельно ее программировать... Вопрос: кто-нить уже пробовал записать в ячейку 2 раза без стирания ? ИМХО, это открывает новые возможности для увеличения количества записи в eeprom, но конечно, этот факт, требует дополнительной проверки, добровольцы есть ?
|
|
|
|
Сообщений в этой теме
SasaVitebsk Сопоставление проектов С и АСМ Feb 17 2008, 20:18 _Pasha Для меня лично есть одно НО:
вот я использую мульт... Feb 18 2008, 07:58 Dog Pawlowa Цитата(_Pasha @ Feb 18 2008, 11:58) Для м... Feb 19 2008, 06:54  _Pasha Цитата(Dog Pawlowa @ Feb 19 2008, 09:54) ... Feb 19 2008, 07:59   Dog Pawlowa Цитата(_Pasha @ Feb 19 2008, 11:59) Продо... Feb 19 2008, 10:42    _Pasha Цитата(Dog Pawlowa @ Feb 19 2008, 13:42) ... Feb 19 2008, 10:57 KRS Это все не показатель.
Если код на С заточить напр... Feb 18 2008, 08:32 SasaVitebsk 2 _pasha.
Да с наработками не хочется расставаться... Feb 18 2008, 15:45 Qwertty Цитата(SasaVitebsk @ Feb 18 2008, 18:45) ... Feb 18 2008, 18:33  SasaVitebsk Цитата(Qwertty @ Feb 18 2008, 22:33) Изви... Feb 18 2008, 20:17 Rst7 Цитатаи использовать его фичи:#pragma inline=force... Feb 18 2008, 16:19 Т.Достоевский ИМХО. Написать С код соизмеримый с асмом можно, но... Feb 18 2008, 23:25 IgorKossak Цитата(Т.Достоевский @ Feb 19 2008, 01:25... Feb 19 2008, 06:37 SasaVitebsk Цитата(Т.Достоевский @ Feb 19 2008, 03:25... Feb 19 2008, 11:42  _Pasha Цитата(SasaVitebsk @ Feb 19 2008, 14:42) ... Feb 19 2008, 12:04 Igor26 ЦитатаНаписать С код соизмеримый с асмом можно, но... Feb 19 2008, 06:45 Rst7 ЦитатаА вот интеретно, использовали ли Вы такие пр... Feb 19 2008, 06:50 forever failure Цитата(SasaVitebsk @ Feb 19 2008, 16:42) ... Feb 19 2008, 13:13 SasaVitebsk Цитата(forever failure @ Feb 19 2008, 17... Feb 19 2008, 17:00 _Pasha Теперь немного о другом. Рискую утомить читателя, ... Feb 20 2008, 08:15 defunct Цитата(_Pasha @ Feb 20 2008, 10:15) Могу ... Feb 20 2008, 14:51 SasaVitebsk Не могу сказать, что я точно понял смысл, но попро... Feb 20 2008, 16:25 _Pasha Цитата(defunct @ Feb 20 2008, 17:51) Стил... Feb 20 2008, 18:49 SasaVitebsk Цитата(_Pasha @ Feb 20 2008, 22:49) Пробл... Feb 20 2008, 21:06 AHTOXA Цитата(_Pasha @ Feb 21 2008, 06:19) Вот э... Feb 21 2008, 07:20  _Pasha Цитата(AHTOXA @ Feb 21 2008, 10:20) WINAV... Feb 21 2008, 07:34   defunct Цитата(_Pasha @ Feb 21 2008, 09:34) Блин,... Feb 21 2008, 11:52    _Pasha Вернемся к нашей баранине. "Не умеешь-научим,... Feb 21 2008, 16:57     singlskv Цитата(_Pasha @ Feb 21 2008, 19:57) Кодvo... Feb 21 2008, 17:49      _Pasha Цитата(singlskv @ Feb 21 2008, 20:49) Нес... Feb 22 2008, 07:41 _Pasha Цитата(defunct @ Feb 21 2008, 14:52) стил... Feb 21 2008, 19:09 Artak Ребята, может бить мой вопрос покажетса смехотwорн... Feb 21 2008, 23:25 ReAl Цитата(Artak @ Feb 22 2008, 01:25) На C п... Feb 22 2008, 15:27 Rst7 ЦитатаА есть вообще грамотный способ решения таких... Feb 22 2008, 06:29 Artak Цитата(Rst7 @ Feb 22 2008, 10:29) В IAR... Feb 26 2008, 20:26 _Pasha Теперь про асм.
В контексте многопоточного програм... Feb 22 2008, 10:47 _Pasha В общем, наигрался я с "С". Память закан... Feb 22 2008, 23:10 defunct Цитата(_Pasha @ Feb 23 2008, 01:10) В общ... Feb 22 2008, 23:37 singlskv Цитата(_Pasha @ Feb 23 2008, 02:10) В общ... Feb 22 2008, 23:55  Alex B._ Цитата(singlskv @ Feb 23 2008, 02:55) я н... Feb 23 2008, 00:03   singlskv Цитата(Alex B._ @ Feb 23 2008, 03:03) хм,... Feb 23 2008, 00:08  defunct Цитата(singlskv @ Feb 23 2008, 01:55) Вот... Feb 23 2008, 00:10   singlskv Цитата(defunct @ Feb 23 2008, 03:10) А чт... Feb 23 2008, 00:43    defunct Цитата(singlskv @ Feb 23 2008, 02:43) Как... Feb 23 2008, 01:10     singlskv Цитата(defunct @ Feb 23 2008, 04:10) Я ко... Feb 24 2008, 18:47      SasaVitebsk Цитата(singlskv @ Feb 24 2008, 22:47) Ска... Feb 24 2008, 19:50       singlskv Цитата(SasaVitebsk @ Feb 24 2008, 22:50) ... Feb 24 2008, 22:23        SasaVitebsk Цитата(singlskv @ Feb 25 2008, 02:23) Уве... Feb 25 2008, 13:23      defunct Цитата(singlskv @ Feb 24 2008, 20:47) Ска... Feb 24 2008, 21:03 SasaVitebsk А мне просто супер нравится С. По-моему, для МК эт... Feb 23 2008, 00:58 SasaVitebsk Из приведенного мной первого поста видно, что прои... Feb 23 2008, 11:09 Rst7 ЦитатаpChan->vAverage = (pChan->vSum + 4) ... Feb 23 2008, 20:18 defunct Цитата(Rst7 @ Feb 23 2008, 22:18) Мне дру... Feb 24 2008, 04:54 Rst7 Все... Туплю. Уже и ответ пространный написал, хор... Feb 24 2008, 10:40 Непомнящий Евгений По-моему, с heap основная проблема в том, как расс... Feb 26 2008, 09:29 singlskv Цитата(Непомнящий Евгений @ Feb 26 2008, 12... Feb 26 2008, 10:39  SasaVitebsk Цитата(singlskv @ Feb 26 2008, 14:39) Про... Feb 26 2008, 11:50 defunct Цитата(Непомнящий Евгений @ Feb 26 2008, 11... Feb 26 2008, 11:21
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|