- 1
- 2
- 3
- 4
- 5
- 6
знает кто как шестнадцатеричные числа в np++ подсвечивать?
а то у меня даже вот такое
v
memset [@T1] 3A98h 0h
не подсвечивает.
пробовал в дополнительные символы чисел добавлять, не хочет.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−1
знает кто как шестнадцатеричные числа в np++ подсвечивать?
а то у меня даже вот такое
v
memset [@T1] 3A98h 0h
не подсвечивает.
пробовал в дополнительные символы чисел добавлять, не хочет.
666_N33D135 16.02.2022 17:20 # 0
и течёшь
kcalbCube 17.02.2022 08:18 # 0
bormand 16.02.2022 17:34 # 0
Аппаратный strncpy тоже будет?
666_N33D135 16.02.2022 17:36 # +1
bormand 16.02.2022 17:37 # 0
666_N33D135 16.02.2022 17:39 # +1
И даже небо, даже Аллах
ucnaHckuu_CTblD 17.02.2022 15:57 # 0
Soul_re@ver 16.02.2022 17:41 # 0
Правда не придумал семантики ещё, и как это будет взаимодействовать с ОС.
bormand 16.02.2022 17:49 # +1
bormand 16.02.2022 17:51 # +1
OPAHrymaH 16.02.2022 17:53 # 0
666_N33D135 16.02.2022 18:49 # 0
> Vytvořil Pixelfield, s.r.o. - tvorba webových stránek
Прекрасный язык
bormand 16.02.2022 18:04 # +1
Процесс юзает инструкции malloc и free. При этом проц помечает занятые блоки pid'ом процесса. Тут можно даже аппаратно проверить, что процесс лезет только к своим блокам.
Когда ось хочет убить процесс она вызывает инструкцию freall.
Сама ОС выделяет память для себя под pid 0.
bormand 16.02.2022 18:08 # +1
bormand 16.02.2022 18:17 # +1
Тегированную память или какой-нибудь HMAC придётся юзать?
signed_range<int> m
bormand 16.02.2022 18:23 # +1
ObeseYoung 16.02.2022 18:53 # +1
Soul_re@ver 16.02.2022 18:56 # +1
bormand 16.02.2022 19:12 # 0
Soul_re@ver 16.02.2022 19:18 # 0
bormand 16.02.2022 18:34 # +1
bormand 16.02.2022 19:43 # +1
Каждый диапазонный регистр помимо адреса и размера может содержать адрес счётчика. Если адреса нету или счётчик равен 1 -- мы владеем куском памяти эксклюзивно.
Инструкцией split <rd1>, <rd2>, <rs>, <offset> можно разбить диапазон на джва. Если rd1 или rd2 не пусты или offset слишком большой -- исключение.
Инструкцией join <rd>, <rs1>, <rs2> можно склеить диапазон обратно (при этом нельзя клеить диапазоны, управляемые разными счётчиками, будет исключение).
Инструкцией share <rd>, <rs>, <rc> мы можем получить в rd расшаренную копию rs, управляемую счётчиком в диапазоне rc. При этом мы теряем владение над диапазоном rc, оно уходит процу.
Инструкцией drop <r> мы можем уменьшить счётчик на 1 и очистить регистр (проебать последнюю копию нельзя, будет исключение).
Инструкцией own <rc>, <rs> мы можем перевести диапазон rs обратно в эксклюзивный режим (счётчик должен быть 1). Заодно мы получим rc обратно.
Инструкцией my <rs> можно проверить владеем ли мы диапазоном (выставит флажок).
При старте проца в одном из регистров лежит эксклюзивный диапазон на всю оперативку, а остальные пусты.
bormand 16.02.2022 19:56 # +1
Видимо для own надо потребовать чтобы вернули диапазон именно к такому виду, в каком он был на момент share.
Блин, надо эту хуйню формально доказывать, всяко какие-то косяки есть.
666_N33D135 16.02.2022 19:58 # +1
Ещё аппаратную поддержку связных списков и динамической типизации. Получится лисп-машинка)))
bormand 16.02.2022 20:08 # +1
А её по-любому делать, иначе насрут в диапазон как в байты и порушат все инварианты.
CHayT 16.02.2022 20:18 # +1
Noodles 16.02.2022 20:22 # +1
kcalbCube 17.02.2022 06:50 # 0
bormand 16.02.2022 20:28 # 0
З.Ы. Внешняя DRAM вот к сожалению без лишних битов.
KaBauHblu_nemyx 16.02.2022 20:32 # 0
ucnaHckuu_CTblD 16.02.2022 20:43 # 0
kcalbCube 17.02.2022 07:00 # 0
Noodles 17.02.2022 07:32 # 0