Size: a a a

Ассемблер

2020 May 27

A

Aleksandr in Ассемблер
Максим Кавецкий
Получается если число отрицательное, то в CY попадает 1, а для положительного 0?
да, у отрицательный старший бит всегда единица
источник

A

Aleksandr in Ассемблер
погугли как кодируются отрицательные числа
источник

МК

Максим Кавецкий... in Ассемблер
Aleksandr
да, у отрицательный старший бит всегда единица
Дошло, большое спасибо!
источник

A

Aleksandr in Ассемблер
Denis
А там оно как-то сложнее чем просто регистры, оно треды лочит еще
источник

D

Denis in Ассемблер
xTask как раз лочит таски, а надо без этого. я кооперативную многозадачность пилю, fiber которая
источник

D

Denis in Ассемблер
SV это установка бита чтобы снаружи переключать контесты, а мне как раз это слишком жирно, надо просто переключать, как есть, без локов и ожидиния окончания прерываний
источник

D

Denis in Ассемблер
vTaskSwitchContext вот это вот, но не могу нагрепать реализацию для cortex m3
источник

D

Denis in Ассемблер
мне бы даже и на C подошло, я ещё не борюсь за перформанс.
источник

D

Denis in Ассемблер
https://github.com/FreeRTOS/FreeRTOS-Kernel/blob/master/tasks.c#L2989

блин, как это вообще работает?) при разрешении переключения контекста вторая же строчка - traceTASK_SWITCHED_OUT();
источник

D

Denis in Ассемблер
т.е. оно в этот момент уже куда-то контекст переключило, так?
источник

D

Denis in Ассемблер
xYieldPending is set so the context switch
   occurs immediately that the scheduler is resumed (unsuspended)

всё, разгадал
источник

A

Aleksandr in Ассемблер
а я наоборот запутался -_-
источник

D

Denis in Ассемблер
ну не важно, главное найти сам переключатель контекста, реализацию его
источник

D

Denis in Ассемблер
http://ftp.jp.freebsd.org/pub/NetBSD/NetBSD-current/src/sys/arch/arm/arm32/cpuswitch.S Подскажите как этот синтаксис компилировать?

на ENTRY( ) ругается
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Aleksandr
отвратительный способ, на самом деле, но рабочий
а мне нравится. возникает то чувство что на ЯВУ такое не сделать при этом не увеличив сам код
источник

D

Denis in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮
а мне нравится. возникает то чувство что на ЯВУ такое не сделать при этом не увеличив сам код
Библиотеки интрисинков в помощь
источник

A

Aleksandr in Ассемблер
то есть
mov esi, 0
shl eax, 1
adc esi, 0
короче чем
test eax, 0x80000000
источник

A

Aleksandr in Ассемблер
Aleksandr
то есть
mov esi, 0
shl eax, 1
adc esi, 0
короче чем
test eax, 0x80000000
еще и разрушает eax
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮... in Ассемблер
Aleksandr
то есть
mov esi, 0
shl eax, 1
adc esi, 0
короче чем
test eax, 0x80000000
но смысл то здесь в том отсутствует ветвления по проверке знака числа
источник

A

Aleksandr in Ассемблер
а что со значением в ESI делать вотом?
источник