реклама на сайте
подробности

 
 
> STM32F0 Время реакции и выполнения прерывания
Влад Р.
сообщение Jun 21 2016, 12:40
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 87
Регистрация: 9-12-10
Пользователь №: 61 511



Добрый день!

Имеется МК STM32F0. Работает на частоте 48 МГц. Фоновая программа представляет собой пустой бесконечный цикл. По фронту сигнала на выводе МК настроено внешнее прерывание. В обработчике прерывания только операции с портами ввода/вывода и логические операции. Все задействованные выводы сконфигурированы на работу на максимальной скорости.
Согласно статье "A Beginner’s Guide on Interrupt Latency - and Interrupt Latency of the ARM® Cortex®-M processors" время реакции на прерывание для ядра Cortex-M0 составляет 16 машинных циклов. Первой командой после входа в обработчик я считываю один из портов в/в, затем на одном из выводов другого порта устанавливаю высокий уровень. Время между фронтом внешнего сигнала, вызвавшим внешнее прерывание, и установкой высокого уровня на выводе, указанном выше, составляет 800 нс. Почему такое большое время и как можно его сократить?
В той же статье говорится о джиттере времени реакции, но неясно от каких факторов он может зависеть?
Время выполнения обработчика прерывания составило 1,5 мкс, что тоже неожиданно много. Также буду рад советам как уменьшить.

Используется Keil 5.17. Пробовал различные уровни оптимизации компилируемого кода, оптимизацию по времени/объему. Не давало положительных результатов. Размещение обработчика прерывания в ОЗУ позволило сократить время его выполнения на 0,2 мкс, но не повлияло на время реакции на прерывание.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Влад Р.
сообщение Jun 23 2016, 08:54
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 87
Регистрация: 9-12-10
Пользователь №: 61 511



Цитата(Forger @ Jun 23 2016, 11:12) *
Абсолютно тупиковый путь, особенное, если планируется расширять проект (код)!
Я бы просто заново спроектировал проект.
Скорее всего нужно переходить на ртос, тогда число всяких обработчиков прерываний резко сократиться - ведь не на все события нужно реагировать с точность до мкс, опрашивать кнопки тоже нет смысла чаще, чем раз в 50мс. Т.е. для таких вещей хватает одного системного таймера оси (у меня такт в основном 1мс).
Короче, самописный асм на ARMе в своем коде - это крайне опасная и нежелательная вещь, ее нужно всячески избегать и исключать еще на этапе проектирования кода.

По-моему RTOS сейчас только замедлит код, а основное требование сейчас - это максимальное быстродействие и минимальное число "лишних" команд. Сейчас задействовано всего одно внешнее прерывание. Почему под ARMы нужно избегать самописного ассемблерного кода, вроде как ASM-код - это эталон быстродействия для любой платформы?

Цитата(ViKo @ Jun 23 2016, 11:19) *
Это уже сделали? Где листинг?

Только в качестве обучающего занятия. Примеры можно найти в книжках Дж. Ю, на одну из которых я ссылался.

А для более широких задач почему не подойдет?
Заменил на fastы. stdint вместо них подставляет int. Вот листинг:
CODE
68: {
0x08000240 B430 PUSH {r4-r5}
69: uint_fast16_t db = GPIOC->IDR & 0x1FFF;
70: uint_fast8_t data/* = db & 0xFF*/;
71:
0x08000242 481D LDR r0,[pc,#116] ; @0x080002B8
0x08000244 8A00 LDRH r0,[r0,#0x10]
72: GPIOB->BSRR = GPIO_BSRR_BS_12;
73:
0x08000246 2201 MOVS r2,#0x01
0x08000248 04C1 LSLS r1,r0,#19
0x0800024A 0CC9 LSRS r1,r1,#19
0x0800024C 481B LDR r0,[pc,#108] ; @0x080002BC
0x0800024E 0312 LSLS r2,r2,#12
0x08000250 6182 STR r2,[r0,#0x18]
74: data = db & 0xFF;
75:
0x08000252 B2CB UXTB r3,r1
76: if (!(db & (0x01 << 12))) {
0x08000254 04CA LSLS r2,r1,#19
68: {
69: uint_fast16_t db = GPIOC->IDR & 0x1FFF;
70: uint_fast8_t data/* = db & 0xFF*/;
71:
72: GPIOB->BSRR = GPIO_BSRR_BS_12;
73:
74: data = db & 0xFF;
75:
76: if (!(db & (0x01 << 12))) {
0x08000256 D429 BMI 0x080002AC
77: switch (db & (0x03 << 9)) {
78: case 0x0000:
0x08000258 2203 MOVS r2,#0x03
0x0800025A 0252 LSLS r2,r2,#9
0x0800025C 4011 ANDS r1,r1,r2
79: GPIOA->ODR = (GPIOA->ODR & ~0xFF) | data;
0x0800025E 4A18 LDR r2,[pc,#96] ; @0x080002C0
0x08000260 D008 BEQ 0x08000274
0x08000262 39FF SUBS r1,r1,#0xFF
0x08000264 39FF SUBS r1,r1,#0xFF
0x08000266 1E89 SUBS r1,r1,#2
0x08000268 D00A BEQ 0x08000280
0x0800026A 39FF SUBS r1,r1,#0xFF
0x0800026C 39FF SUBS r1,r1,#0xFF
0x0800026E 2902 CMP r1,#0x02
0x08000270 D11C BNE 0x080002AC
0x08000272 E00C B 0x0800028E
0x08000274 8A90 LDRH r0,[r2,#0x14]
0x08000276 0A00 LSRS r0,r0,#8
0x08000278 0200 LSLS r0,r0,#8
0x0800027A 4318 ORRS r0,r0,r3
0x0800027C 8290 STRH r0,[r2,#0x14]
80: break;
81: case 0x0200:
0x0800027E E015 B 0x080002AC
82: GPIOB->ODR = (GPIOB->ODR & ~(0x03 << 5)) | (data & (0x03 << 5));
0x08000280 8A82 LDRH r2,[r0,#0x14]
0x08000282 2160 MOVS r1,#0x60
0x08000284 438A BICS r2,r2,r1
0x08000286 400B ANDS r3,r3,r1
0x08000288 431A ORRS r2,r2,r3
0x0800028A 8282 STRH r2,[r0,#0x14]
83: break;
84: case 0x0400:
0x0800028C E00E B 0x080002AC
85: GPIOA->ODR = (GPIOA->ODR & ~(0x0F << 8)) | ((uint16_t)HINIBBLE(data) << 8);
0x0800028E 8A91 LDRH r1,[r2,#0x14]
0x08000290 240F MOVS r4,#0x0F
0x08000292 0224 LSLS r4,r4,#8
0x08000294 031D LSLS r5,r3,#12
0x08000296 0C2D LSRS r5,r5,#16
0x08000298 43A1 BICS r1,r1,r4
0x0800029A 022D LSLS r5,r5,#8
0x0800029C 4329 ORRS r1,r1,r5
0x0800029E 8291 STRH r1,[r2,#0x14]
86: GPIOB->ODR = (GPIOB->ODR & ~(0x0F << 8)) | ((uint16_t)LONIBBLE(data) << 8);
87: break;
88: case 0x0600:
89: break;
90: }
91: }
0x080002A0 8A81 LDRH r1,[r0,#0x14]
0x080002A2 071A LSLS r2,r3,#28
0x080002A4 43A1 BICS r1,r1,r4
0x080002A6 0D12 LSRS r2,r2,#20
0x080002A8 4311 ORRS r1,r1,r2
0x080002AA 8281 STRH r1,[r0,#0x14]
92: EXTI->PR = EXTI_PR_PR8;
0x080002AC 20FF MOVS r0,#0xFF
0x080002AE 4905 LDR r1,[pc,#20] ; @0x080002C4
0x080002B0 3001 ADDS r0,r0,#0x01
0x080002B2 6148 STR r0,[r1,#0x14]
93: }
0x080002B4 BC30 POP {r4-r5}
0x080002B6 4770 BX lr
0x080002B8 0800 DCW 0x0800
0x080002BA 4800 DCW 0x4800
0x080002BC 0400 DCW 0x0400
0x080002BE 4800 DCW 0x4800
0x080002C0 0000 DCW 0x0000
0x080002C2 4800 DCW 0x4800
0x080002C4 0400 DCW 0x0400
0x080002C6 4001 DCW 0x4001



Цитата(Obam @ Jun 23 2016, 11:27) *
Vincent_Mahout_AssemblyLanguageProgramming_ARM_CortexM3.pdf

Похоже, то что нужно. Спасибо!
Go to the top of the page
 
+Quote Post
scifi
сообщение Jun 23 2016, 09:13
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Влад Р. @ Jun 23 2016, 11:54) *
Заменил на fastы. stdint вместо них подставляет int. Вот листинг:

Такой код, конечно, можно ускорить, если вылизать на ассемблере. Правда, не очень благодарное это занятие.
Кстати, сишный код неоптимальный. К примеру, вместо
GPIOA->ODR = (GPIOA->ODR & ~0xFF) | data;
лучше написать
GPIOA->BSRR = 0x00FF0000 | data;
Ну и ещё что-то там наверняка есть.
Go to the top of the page
 
+Quote Post
Влад Р.
сообщение Jun 23 2016, 09:33
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 87
Регистрация: 9-12-10
Пользователь №: 61 511



Цитата(scifi @ Jun 23 2016, 12:13) *
Кстати, сишный код неоптимальный. К примеру, вместо
GPIOA->ODR = (GPIOA->ODR & ~0xFF) | data;
лучше написать
GPIOA->BSRR = 0x00FF0000 | data;
Ну и ещё что-то там наверняка есть.


Да, этот момент я упустил. Сомневался нормально ли отработает установка/сброс одних и тех же битов. Перечитал мануал и переделал:
CODE
68: {
0x08000240 B410 PUSH {r4}
69: uint_fast16_t db = GPIOC->IDR & 0x1FFF;
70: uint_fast8_t data/* = db & 0xFF*/;
71:
0x08000242 481A LDR r0,[pc,#104] ; @0x080002AC
0x08000244 8A00 LDRH r0,[r0,#0x10]
72: GPIOB->BSRR = GPIO_BSRR_BS_12;
73:
0x08000246 4A1A LDR r2,[pc,#104] ; @0x080002B0
0x08000248 04C1 LSLS r1,r0,#19
0x0800024A 0CC9 LSRS r1,r1,#19
0x0800024C 2001 MOVS r0,#0x01
0x0800024E 0300 LSLS r0,r0,#12
0x08000250 6190 STR r0,[r2,#0x18]
74: data = db & 0xFF;
75:
0x08000252 B2C8 UXTB r0,r1
76: if (!(db & (0x01 << 12))) {
0x08000254 04CB LSLS r3,r1,#19
68: {
69: uint_fast16_t db = GPIOC->IDR & 0x1FFF;
70: uint_fast8_t data/* = db & 0xFF*/;
71:
72: GPIOB->BSRR = GPIO_BSRR_BS_12;
73:
74: data = db & 0xFF;
75:
76: if (!(db & (0x01 << 12))) {
0x08000256 D423 BMI 0x080002A0
77: switch (db & (0x03 << 9)) {
78: case 0x0000:
0x08000258 2303 MOVS r3,#0x03
0x0800025A 025B LSLS r3,r3,#9
0x0800025C 4019 ANDS r1,r1,r3
79: GPIOA->BSRR = (0xFF << 16) | data;
0x0800025E 4B15 LDR r3,[pc,#84] ; @0x080002B4
0x08000260 D008 BEQ 0x08000274
0x08000262 39FF SUBS r1,r1,#0xFF
0x08000264 39FF SUBS r1,r1,#0xFF
0x08000266 1E89 SUBS r1,r1,#2
0x08000268 D009 BEQ 0x0800027E
0x0800026A 39FF SUBS r1,r1,#0xFF
0x0800026C 39FF SUBS r1,r1,#0xFF
0x0800026E 2902 CMP r1,#0x02
0x08000270 D116 BNE 0x080002A0
0x08000272 E00A B 0x0800028A
0x08000274 21FF MOVS r1,#0xFF
0x08000276 0409 LSLS r1,r1,#16
0x08000278 4308 ORRS r0,r0,r1
0x0800027A 6198 STR r0,[r3,#0x18]
80: break;
81: case 0x0200:
0x0800027C E010 B 0x080002A0
82: GPIOB->BSRR = (0x03 << 21) | (data & (0x03 << 5));
0x0800027E 2160 MOVS r1,#0x60
0x08000280 4008 ANDS r0,r0,r1
0x08000282 0409 LSLS r1,r1,#16
0x08000284 1840 ADDS r0,r0,r1
0x08000286 6190 STR r0,[r2,#0x18]
83: break;
84: case 0x0400:
0x08000288 E00A B 0x080002A0
85: GPIOA->BSRR = (0x0F << 24) | ((uint16_t)HINIBBLE(data) << 8);
0x0800028A 0301 LSLS r1,r0,#12
0x0800028C 0C09 LSRS r1,r1,#16
0x0800028E 020C LSLS r4,r1,#8
0x08000290 210F MOVS r1,#0x0F
0x08000292 0609 LSLS r1,r1,#24
0x08000294 1864 ADDS r4,r4,r1
0x08000296 619C STR r4,[r3,#0x18]
86: GPIOB->BSRR = (0x0F << 24) | ((uint16_t)LONIBBLE(data) << 8);
87: break;
88: }
89: }
0x08000298 0700 LSLS r0,r0,#28
0x0800029A 0D00 LSRS r0,r0,#20
0x0800029C 1840 ADDS r0,r0,r1
0x0800029E 6190 STR r0,[r2,#0x18]
90: EXTI->PR = EXTI_PR_PR8;
0x080002A0 20FF MOVS r0,#0xFF
0x080002A2 4905 LDR r1,[pc,#20] ; @0x080002B8
0x080002A4 3001 ADDS r0,r0,#0x01
0x080002A6 6148 STR r0,[r1,#0x14]
91: }
0x080002A8 BC10 POP {r4}
0x080002AA 4770 BX lr
0x080002AC 0800 DCW 0x0800
0x080002AE 4800 DCW 0x4800
0x080002B0 0400 DCW 0x0400
0x080002B2 4800 DCW 0x4800
0x080002B4 0000 DCW 0x0000
0x080002B6 4800 DCW 0x4800
0x080002B8 0400 DCW 0x0400
0x080002BA 4001 DCW 0x4001


Цитата(Forger @ Jun 23 2016, 12:26) *
Лишних команд не бывает, а бывают деньги, заплаченные закачиком на разработку впустую crying.gif
Заказчику как правило совершенно до лампочки как внутри реализована задача

Заказчику действительно все равно как будет реализована задача, но в данном конкретном случае требование заказчика состоит в реализации задачи на имеющейся аппаратной базе, а дальше крутись как хочешь.

Цитата(Forger @ Jun 23 2016, 12:26) *
Сколько всего прерываний в коде?

В данный момент в коде включена обработка только ОДНОГО прерывания.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Влад Р.   STM32F0 Время реакции и выполнения прерывания   Jun 21 2016, 12:40
- - scifi   Обращение к портам ввода-вывода тоже время должно ...   Jun 21 2016, 13:05
- - jcxz   Цитата(Влад Р. @ Jun 21 2016, 18:40) Врем...   Jun 21 2016, 13:14
- - SasaVitebsk   В статье указано, что 16 машинных циклов пройдёт о...   Jun 21 2016, 13:17
|- - dimka76   Цитата(SasaVitebsk @ Jun 21 2016, 16:17) ...   Jun 21 2016, 13:25
|- - jcxz   Цитата(SasaVitebsk @ Jun 21 2016, 19:17) ...   Jun 21 2016, 13:44
||- - SasaVitebsk   Цитата(jcxz @ Jun 21 2016, 16:44) Обычно ...   Jun 22 2016, 05:49
||- - jcxz   Цитата(SasaVitebsk @ Jun 22 2016, 11:49) ...   Jun 22 2016, 06:28
||- - ViKo   Цитата(jcxz @ Jun 22 2016, 09:28) Хотя у ...   Jun 22 2016, 06:39
|- - AlexRayne   Цитата(SasaVitebsk @ Jun 21 2016, 16:17) ...   Jun 21 2016, 13:51
|- - jcxz   Цитата(AlexRayne @ Jun 21 2016, 19:51) вр...   Jun 21 2016, 13:57
|- - AlexRayne   Цитата(jcxz @ Jun 21 2016, 16:57) Объясни...   Jun 21 2016, 15:01
||- - jcxz   Цитата(AlexRayne @ Jun 21 2016, 21:01) чт...   Jun 21 2016, 15:58
|- - RadiatoR   Цитата(jcxz @ Jun 21 2016, 16:57) ЗЫ: Кст...   Jun 21 2016, 16:25
- - Влад Р.   RE: STM32F0 Время реакции и выполнения прерывания   Jun 21 2016, 19:39
|- - jcxz   Цитата(Влад Р. @ Jun 22 2016, 01:39) Что ...   Jun 22 2016, 05:16
- - ViKo   Измените переменные на 32-битовые. Везде, где можн...   Jun 22 2016, 05:35
- - Влад Р.   Цитата(jcxz @ Jun 22 2016, 08:16) Ну а че...   Jun 22 2016, 06:13
- - Влад Р.   Цитата(jcxz @ Jun 22 2016, 09:28) А тепер...   Jun 22 2016, 06:42
|- - jcxz   Цитата(Влад Р. @ Jun 22 2016, 12:42) Можн...   Jun 22 2016, 06:45
|- - ViKo   Цитата(Влад Р. @ Jun 22 2016, 09:42) Не п...   Jun 22 2016, 06:55
- - Влад Р.   Цитата(ViKo @ Jun 22 2016, 09:55) Включен...   Jun 22 2016, 07:16
|- - HHIMERA   Цитата(Влад Р. @ Jun 22 2016, 10:16) Это ...   Jun 22 2016, 07:55
|- - Obam   Цитата(Влад Р. @ Jun 22 2016, 11:16) PUSH...   Jun 22 2016, 07:57
||- - jcxz   Цитата(Obam @ Jun 22 2016, 13:57) И кстат...   Jun 22 2016, 08:04
||- - scifi   Цитата(Obam @ Jun 22 2016, 10:57) И кстат...   Jun 22 2016, 08:07
||- - Obam   Цитата(scifi @ Jun 22 2016, 12:07) Мысль,...   Jun 22 2016, 08:24
||- - scifi   Цитата(Obam @ Jun 22 2016, 11:13) Cortex-...   Jun 22 2016, 08:51
|||- - Obam   Цитата(scifi @ Jun 22 2016, 12:51) Вы буд...   Jun 22 2016, 12:12
||||- - scifi   Цитата(Obam @ Jun 22 2016, 15:12) Смеятьс...   Jun 22 2016, 12:54
||||- - Obam   Цитата(scifi @ Jun 22 2016, 16:54) Ну, зн...   Jun 22 2016, 14:37
||||- - scifi   Цитата(Obam @ Jun 22 2016, 17:37) Смайлик...   Jun 22 2016, 17:08
||||- - Obam   Цитата(scifi @ Jun 22 2016, 21:08) Слив з...   Jun 23 2016, 08:12
|||- - GetSmart   Цитата(scifi @ Jun 22 2016, 12:51) Bit-ba...   Jun 22 2016, 18:03
|||- - scifi   Цитата(GetSmart @ Jun 22 2016, 21:03) Мож...   Jun 22 2016, 18:08
||- - jcxz   Цитата(Obam @ Jun 22 2016, 14:24) Личный ...   Jun 22 2016, 09:03
||- - ViKo   Цитата(jcxz @ Jun 22 2016, 12:03) Не прав...   Jun 22 2016, 09:41
||- - scifi   Цитата(ViKo @ Jun 22 2016, 12:41) Открыва...   Jun 22 2016, 09:51
||- - ViKo   Цитата(scifi @ Jun 22 2016, 12:51) На как...   Jun 22 2016, 10:05
|- - ViKo   Цитата(Влад Р. @ Jun 22 2016, 10:16) Пояс...   Jun 22 2016, 08:51
- - Сергей Борщ   Может крамолу скажу, но если основной цикл пустой,...   Jun 22 2016, 09:21
|- - Влад Р.   Цитата(Сергей Борщ @ Jun 22 2016, 12:21) ...   Jun 22 2016, 09:51
- - GetSmart   Те же лицензиаты издавали рекламные обзоры, из кот...   Jun 22 2016, 18:19
|- - scifi   Цитата(GetSmart @ Jun 22 2016, 21:19) Ког...   Jun 22 2016, 19:28
||- - GetSmart   Цитата(scifi @ Jun 22 2016, 23:28) Ой, да...   Jun 22 2016, 21:32
||- - GetSmart   Прошу прощения за отклонение от темы беседы. Но по...   Jun 24 2016, 15:58
|- - Obam   Цитата(GetSmart @ Jun 22 2016, 22:19) … B...   Jun 23 2016, 08:27
|- - GetSmart   Цитата(Obam @ Jun 23 2016, 12:27) Справед...   Jun 23 2016, 10:20
- - Влад Р.   Появилась новая проблема - написание обработчика п...   Jun 23 2016, 05:52
|- - Forger   Цитата(Влад Р. @ Jun 23 2016, 08:52) Появ...   Jun 23 2016, 08:12
- - ViKo   ЦитатаИзмените переменные на 32-битовые. Везде, гд...   Jun 23 2016, 08:19
|||- - Forger   Цитата(Влад Р. @ Jun 23 2016, 12:33) В да...   Jun 23 2016, 09:54
||- - jcxz   Цитата(scifi @ Jun 23 2016, 15:13) Такой ...   Jun 23 2016, 10:17
||- - Forger   Цитата(jcxz @ Jun 23 2016, 13:17) Даже ОС...   Jun 23 2016, 10:34
||- - jcxz   Цитата(jcxz @ Jun 23 2016, 16:17) Наприме...   Jun 23 2016, 10:34
|- - Forger   Цитата(Влад Р. @ Jun 23 2016, 11:54) По-м...   Jun 23 2016, 09:26
- - ViKo   Что-то не впечатляет результат... Надо бы не прост...   Jun 23 2016, 09:13
- - Влад Р.   Цитата(jcxz @ Jun 23 2016, 13:17) Наприме...   Jun 23 2016, 11:15
|- - jcxz   Цитата(Влад Р. @ Jun 23 2016, 17:15) Сейч...   Jun 23 2016, 13:24
- - Влад Р.   Цитата(jcxz @ Jun 23 2016, 16:24) Я уже В...   Jun 23 2016, 13:54
|- - Obam   Цитата(Влад Р. @ Jun 23 2016, 17:54) Опис...   Jun 23 2016, 14:25
|- - scifi   Цитата(Влад Р. @ Jun 23 2016, 16:54) Може...   Jun 23 2016, 14:26
|- - IJAR   http://electronix.ru/forum/index.php?showt...869...   Jun 24 2016, 12:57
- - Влад Р.   Цитата(scifi @ Jun 23 2016, 17:26) Могу: ...   Jun 24 2016, 13:46
|- - jcxz   Цитата(Влад Р. @ Jun 24 2016, 19:46) При ...   Jun 24 2016, 20:25
|- - GetSmart   Цитата(jcxz @ Jun 25 2016, 00:25) Хотя вс...   Jun 25 2016, 02:07
- - Obam   IARом пользуетесь? Тогда "IAR C/C++ Developme...   Jun 24 2016, 13:56
- - Влад Р.   Цитата(Obam @ Jun 24 2016, 16:56) IARом п...   Jun 24 2016, 14:00
- - Влад Р.   Цитата(jcxz @ Jun 24 2016, 23:25) Нет. За...   Jun 24 2016, 21:18
|- - jcxz   Цитата(Влад Р. @ Jun 25 2016, 03:18) В Re...   Jun 27 2016, 04:57
- - Влад Р.   Цитата(GetSmart @ Jun 25 2016, 05:07) Пос...   Jun 25 2016, 04:15
- - GetSmart   Цитата(Влад Р. @ Jun 25 2016, 08:15) Что-...   Jun 25 2016, 15:38
- - Влад Р.   Цитата(jcxz @ Jun 27 2016, 07:57) Обычно ...   Jun 27 2016, 12:05
|- - Сергей Борщ   QUOTE (Влад Р. @ Jun 27 2016, 15:05) Сбро...   Jun 27 2016, 12:51
|- - jcxz   Цитата(Влад Р. @ Jun 27 2016, 18:05) Тут ...   Jun 27 2016, 14:03
- - Влад Р.   Цитата(Сергей Борщ @ Jun 27 2016, 15:51) ...   Jun 27 2016, 13:12
- - ViKo   КодCMP R0, #3; Compare input to maximum valid choi...   Jun 27 2016, 14:12
|- - jcxz   Цитата(ViKo @ Jun 27 2016, 20:12) MULS R0...   Jun 27 2016, 15:22
|- - ViKo   Цитата(jcxz @ Jun 27 2016, 18:22) Однако ...   Jun 27 2016, 15:41
- - Влад Р.   Цитата(jcxz @ Jun 27 2016, 17:03) Не поня...   Jun 27 2016, 15:27
- - jcxz   Цитата(Влад Р. @ Jun 27 2016, 21:27) На с...   Jun 27 2016, 15:59


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 02:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01475 секунд с 7
ELECTRONIX ©2004-2016