Человек-Даук
надо было сдавать на бумаге+нужно прои написании загрузчиков
Anonymous
Anonymous
подход в хаскелле математичен
Dmitry
не, я к тому, что в жизни, в бытовой практике, ты мыслишь императивно
ты же думаешь "пойду, в общем, сейчас в продуктовый магазин, куплю там хлеба и молока, а потом зайду в магазин одежды, куплю себе штаны."
ты же не думаешь "вернусь домой с хлебом и молоком купленным в продуктовом магазине и штанами купленными в магазине одежды"
Anonymous
в хаскелле, вообще, по-другому мыслишь, твой пример некорректен
Dmitry
я вообще про функциональность
Dmitry
не, функциональный подход он заебись
Dmitry
просто мозг напрягать нужно :)
Anonymous
в хаскелле так:
"Мне нужно купить себе штаны, хлеб и молоко. Хорошо, чтобы купить штаны - я зайду в магазин одежды. А чтобы купить хлеб и молоко - я зайду в продуктовый. Главное, четко определить, что где. Вот теперь можно и сходить"
x86-64
Вы еще Пролог вспомните
Dmitry
короче я тут накатал длинную телегу, которая была призвана объяснить разницу, как я её понимаю, между императивным и функциональным программированием, но как-то кривовато вышло, поэтому я её стёр :)
ну суть-то в том, что ты мыслишь последовательно в бытовой жизни
а в функциональном программировании ты сначала определяешь все под-действия, затем определяешь программу как сумму действий, которая уже через под-действия раскрывается
Anonymous
Anonymous
только правильнее сначала как раз определить программу, как сумму действий
Anonymous
а потом уже действия на поддействия разделить
Anonymous
а потом уже реализовать все
Omar
x86-64
Да какая разница, какой подход, императивный, функциональный, логический, в любом случае нужно знать соответствующие азы.
Anonymous
x86-64
Надеюсь, дискретку и матлогику не прогуливал? Тогда и его сдашь
Anonymous
Anonymous
классные темы
Anonymous
в отличие от ТФКП, теории вероятности и операционного счисления
⸙ꠋꠋk̹̺ Seymøur
не о правилах вызова речь?stdcall,cdecl,thiscall,etc?
🦥Alex Fails
Я тоже подумал о них
Jumpcode
А по вызову syscall (x86-64) в обработчике происходит переключение на kernel stack? Нашел код обработчика в linux, но не разобрался там
Jumpcode
Не очень понял, что ты ищешь. Есть win32 api и вызовы к нему через C++ runtime library
Jumpcode
🦥Alex Fails
Сырцы msvcr8, 9,... естт в поставке студии
🦥Alex Fails
Если точнг известно, что мсвц, то напиши простенький класс, откомпиль приложуху с ним и отреверсь
x86-64
А ecx это что? Уже C++ ABI как-то стандартизовали, чтобы this лежал именно в ecx?!
x86-64
В смысле соглашение о передаче параметров? Стандартное для x86 - все параметры на стеке. Регистры используют кто во что горазд.
x86-64
eax, edx, ecx вроде, не?
x86-64
Да срать мне на мокрософт семь куч, я говорю про стандарт вообще. Таблица виртуальных методов - это вообще черт знает что.
x86-64
Да. Но на x86-64 мелкомягкие вроде тоже на стандарт (rdi, rsi, rdx, rcx, r8, r9) вроде тоже болт положили.
x86-64
Без понятия, я не пользуюсь их компиляторами. В gcc и clang есть еще куча соглашений о вызовах, на любой вкус.
x86-64
У dll'ек виндовых они тоже разные, например, одни чисият стек перед возвратом, а другие - нет
🦥Alex Fails
эмпирические наблюдения
Jumpcode
@ia_32 Можешь пояснить?
по вызову syscall (x86-64) в обработчике происходит переключение на kernel stack? Нашел код обработчика в linux, но не разобрался там
🦥Alex Fails
вроде они заопенсорсили часть Msbuild
Dmitry
а в каких виндовых библиотеках кроме CRT стек перед возвратом НЕ чистится?
Dmitry
ну если не брать функции которые , ...); - их по-другому кроме как cdecl не сделаешь
Jumpcode
x86-64
аппаратно не переключает, я нагуглил
Значит программно переключают, использовать непривелигированный стек привелигированным кодом как-то некошерно, а при использовании SMAP вообще нельзя.
x86-64
В gcc есть куча атрибутов, и вроде виндовые стандарты поддерживаются, по крайней мере у меня получалось вызывать dll-ные функции чисто макросами
x86-64
cdecl, stdcall, regparm(x) прддерживаются, fastcall вроде тоже
Jumpcode
x86-64
Так вроде стандарты для вызовов существуют для всех известных мне архитектур, только на x86 царит полный бардак. Вполне можно и структуры застандартить.
Jumpcode
Jumpcode
это не нужно
Jumpcode
@forklog есть
Evgenii
Астрологи объявили месяц сессий. Количество просьб о срочной помощи выросло втрое
Evgenii
Как и мое разочарование в образовании
Evgenii
Malik
Evgenii
Denis
Кто-нибудь знает чат, посвященный ядру Linux?
Где был бы шанс получить ответ на вопросы о драйверах и т.д.?
Anonymous
Если такого чата ещё нет то мб стоит создать? я бы был только за, правда это слишком специфическая тема, вряд ли много народу там будет что-то действительно про внутреннее устройство кернел обсуждать
Denis
Anonymous
Ссылку пожалуйста
🦥Alex Fails
+
Anonymous
@proKernel
JeisonWi
Не переходит
Anonymous
Вижу
Anonymous
Чето я не так сделал
Anonymous
https://t.me/joinchat/AAAAAEHV88rnSKUfLBIYEw
Nr
Сразу говорю, я нуб.
Мне дана формула r=(a+b-d)*(d-b)/b. Умножение и деление необходимо реализовать через сложение и вычитание соответственно. Погуглил, нашёл самый подходящий вариант здесь через сдвиг разряда влево (на деле 2^n, как я понял) "shl ax,1". https://courses.engr.illinois.edu/ece390/books/artofasm/CH09/CH09-6.html
Однако нужно через сложение и вычитание со знаками. Что посоветуете?
org 0x100 ;begin address
a dw 50
b dw 8
d dw 4
mov ax, [a]
mov bx, [b]
mov dx, [d]
mov cx, 0 ;бесит ненулевое значение в afdpro, отношения далее не имеет
jmp res
res:
add ax, [b]
sub ax, [d] ;первая скобка
sub dx, [b] ;вторая скобка
shl ax, 1 ;*2
shl ax, 1 ;*2
sub ax, [b] ;хуёво реализованное деление
ret
Nr
Забыл написать, что я использую. nasm, afdpro, DosBox.
Nr
А если без шуток?
cyber
без шуток тока на сбер
IZh
Всем привет. Кто-нибудь разбирался с виндовыми драйверами, ACPI и wake timer'ами?
🦥Alex Fails
Ask
Sub ax.. деление.. На бумаге напиши сначала какие действия будут , без асма
x86-64
Деление делается вычитаниями-сдвигами-сравнениями, курс арифметики из начальной школы.