
Dr
05.05.2018
21:20:55
А отбросив смехуйки, то за четверть-полляма

Bastad
05.05.2018
21:20:56
Я за 60 штаны протирал

Dr
05.05.2018
21:21:47
А шансы заранее объявят?

Google

Dr
05.05.2018
21:22:05
А откуда тогда известны?

Генерал
05.05.2018
21:22:19
бля

Andor
05.05.2018
21:22:19
откуда известны-то?
и почему такие ниочень?
желающих чего?
я вот не желаю воевать, а пофлеймить желаю

Генерал
05.05.2018
21:23:08
за 100к баксов
и потом слизнул?

Bastad
05.05.2018
21:23:27

Dr
05.05.2018
21:24:06

Leaf
05.05.2018
21:24:22

Google

Bastad
05.05.2018
21:24:36
Не вижу ничего постыдного, тащемта.

Dr
05.05.2018
21:25:24
+

ДимСерж
05.05.2018
21:25:47
Гыг

Dr
05.05.2018
21:25:54
Ох ебать, с тысячей уже поздравляли?

ДимСерж
05.05.2018
21:25:56
Он с страны вечной войны
А так оплата типа 3к$
Для спеца

Bastad
05.05.2018
21:26:39
Ладно, я спать. 5ч осталось
Бб

ДимСерж
05.05.2018
21:26:47
Элита типа снайперов 10

Dr
05.05.2018
21:27:00
С Японии штоле?

Генерал
05.05.2018
21:29:17
так я бы продолжил, но наш разговор перетечет в не то русло

ДимСерж
05.05.2018
21:29:35
Нерус мой
Граница афгана и таджикистана

Victor
05.05.2018
21:54:50
Господа, я чуть с оффтопиком...

ДимСерж
05.05.2018
21:56:20
И

Victor
05.05.2018
21:56:32
Допустим, есть объявление
#define RTC_TR2 *(unsigned char*)0x5141Я могу присваивать что-то типа RTC_TR2 = 0x21, а как мне RTC_TR2 передать в функцию void bcdinc (uint8_t* v, uint8_t max);?
Так - bcdinc(&RTC_TR2, 0x59); - не работает.
Стек тратить на конструкцию
i = RTC_TR2;
bcdinc(&i, 0x59);
RTC_TR2 = i; как-то не хочется

Google

Black
05.05.2018
22:23:54
&(RTC_TR1)
Так пробовал?
А точнее скобки надо не вокруг самого места, а в дефайне (если этот заголовок можно менять)
По хорошему дефайны более одного токена должны быть всегда заключены в скобки

Victor
05.05.2018
22:26:11
дефайны нельзя менять - это из SPL
я пока сделал так:
__asm__("ldw x,#0x5141\npush #0x59\npushw x\ncall _bcdinc\naddw sp, #3\n");
:)
Со скобками тоже не катит, вот что в итоге получается:
; functions.c: 158: bcdinc(&(RTC_TR2), 0x59);
push #0x59
push #0x41
push #0x00
call _bcdinc
Ещё вариант bcdint((uint8_t*)0x5141, 0x59), но не хочу числа использовать, непереносимо получается

Black
05.05.2018
22:30:56

Victor
05.05.2018
22:31:16
конечно неверно! смотри, ккой адрес в стэк запихивается
0x0041 вместо 0x5141

Black
05.05.2018
22:32:05
Ну
Там RTC_TR2 и я не знаю какое у неё число
Т.е. сделать локальную переменную как конст, её компилятор не оптимизирует нормально ли?

Victor
05.05.2018
22:33:47
сейчас попробую

Black
05.05.2018
22:33:51
На нормальном компиляторе она будет заинлайнена и никакого стека

Victor
05.05.2018
22:35:13
; functions.c: 158: const uint8_t i = RTC_TR2;
ldw x, #0x5141
ld a, (x)
ld (0x01, sp), a
; functions.c: 159: bcdinc(&i, 0x59);
ldw x, sp
incw x
push #0x59
pushw x
call _bcdinc
addw sp, #3
через стек тоже делает

Google

Black
05.05.2018
22:37:03
Это ты смотришь со включеными оптимизациями же?

Admin
ERROR: S client not available

Black
05.05.2018
22:37:05
Кстати
Компилятор точно кривой, проверил на GCC
И сейчас ещё на паре других

Victor
05.05.2018
22:37:29
у sdcc по-моему не выключается оптимизация
и не особо настраивается

Black
05.05.2018
22:37:44

Victor
05.05.2018
22:37:58
с const?
а
не совсем понимаю почему

Black
05.05.2018
22:38:28
Без конста
https://godbolt.org/ я вот тут смотрел

Victor
05.05.2018
22:38:34
фактически дефайн - это разыменованный поинтер

Black
05.05.2018
22:38:56
Ну дефайн должен подставляться прямо как текст в код
Кстати
А если ты туда вот так напишешь
&(*(unsigned char*)12345)
То результат тоже неверный?
Ну, вместо 12345 подставить туда твоё число

Google

Black
05.05.2018
22:40:34
На выходе должен быть просто (unsigned char*)0x5140 (очевидно), вообще говоря компилятору должно быть полностью всё-равно там есть дефайн или его нету

Victor
05.05.2018
22:40:44
; functions.c: 161: bcdinc(&(*(unsigned char*)0x5141), 0x59);
push #0x59
push #0x41
push #0x00
call _bcdinc

Black
05.05.2018
22:41:04
А если теперь убрать &(*

Victor
05.05.2018
22:41:12
откуда он берёт адрес 0x0041?

Black
05.05.2018
22:41:14
bcdinc((unsigned char*)0x5141, 0x59);

Victor
05.05.2018
22:41:33
если убрать, будет нормально
я выше писал

Black
05.05.2018
22:41:43
Ок
Здесь какое-то адище творится х)

Victor
05.05.2018
22:41:56