- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
Мне приснился очень странный сон, который отчасти был навеян дебатами между сторонниками и противниками ООП...
Во сне я видел паперть, на которой выступал лысый человек, похожий на Соловьева. Он очень волновался, ежеминутно протирая платком лицо и макушку.
Господа! - наконец объявил он. Сегодня исторический день! Мы выслушаем прения сторон, в лице мэтра ООП и адепта функционального стиля.
Раздались бурные аплодисменты и на сцену вышли аллегорические фигуры. Мэтром ООП оказался сурового вида старик в пышной золотой мантии и
венце, адепт функциональщины - сдержанный юноша, очень элегантно одетый.
Кроме них двоих, на паперть поднялся также и молодой человек в охотничьей шляпе, с куском оленьей шерсти вместо пера.
-Томаш Грыштар, представился он, и раскланялся. Он сильно картавил, но был безукоризненно вежлив, едва не падая с ног от услужливости.
Конферансье потёр руки. Итак господа, перейдём к делу. Сегодня мы поднимем со дна океана (шутка) на свет божий достоинства и недостатки обоих
парадигм а поможет нам в этом наш друг Томас. Пусть в споре откроется истина.
-ООП не нужно, - бесцеремонно выпалил Адепт.
-О, это очень смелое заявление! - засмеялся конферансье.
Мэтр густо покраснел, но не проронил ни слова.
-Что Вы на это скажете, сударь?
Мэтр сидел с каменным лицом. Конферансье, не дождавшись ответа, передал право слова Томасу:
-Полагаю, что наш друг-ассемблерщик тоже имеет право высказаться.
Тот достал из-за пазухи изящную золотую шкатулочку и, заведя ручку, открыл ее. Раздалась нежная мелодия.
Мэтр наконец прервал обет молчания:
-А что сталось с Вашим "Титаном"?
-Я... Э-э-э... Потерял исходники...
-Весьма прискорбно. Но Вы сохранили компилятор?
-"Фасм", сударь.
-Господа, господа! Мы ведь собрались ради важного дела, а до сих пор ничего дельного не нашли.
-ООП нерационально использует память, - адепт опять вмешался.
При этих словах Мэтр чуть покачнулся, раздался громкий скрип. Мантия его задралась - и всем стало ясно, что он сидит в инвалидном кресле.
Томас опять достал шкатулочку, очевидно, чтобы разрядить атмосферу.
-ООП учит плохому стилю. Адепт вынул розочку из петлицы и стал ее нюхать. Лицо у него было равнодушное.
Мэтр вздохнул, склонил голову, но ничего не ответил.
Томас опять достал шкатулочку.
Конферансье вытер пот со лба и заявил: -Господа, мне кажется, мы напрасно тратим время.
Шкатулочка вдруг ошиблась. Томас поднял ее над головой, потряс - и о ужас!- раздался громоподобный треск и в мгновение ока Томас был погребен
под грудой шестеренок, пружин и коленчатых валов. Конферансье и Мэтр поспешили ему на помощь. Адепт сохранял невозмутимость, не пошевелив
даже пальцем.
-Дебаты окончены. Конферансье хлопнул в ладоши и сошёл со сцены. Было видно, что он глубоко уязвлен.
К адепту подошёл человек в сюртуке и похлопал его по плечу. Юноша ойкнул и недовольно обернулся.
Оказалось, что это полуидиот, очевидно, больной синдромом Дауна. Опекун вручил ему ниточки от красного и жёлтого воздушных шариков,
отчего инфантильное лицо юноши озарилось радостью. Они медленно пошли по тропинке...
Томаш и Мэтр долго смотрели ему вслед.
-Как Вы думаете, коллега, уместны ли асмовставки в языке высокого уровня?
-Почему бы и нет?
-Я рад, что Вы так считаете.
как su.humor почитал за 1994 год
Не сразу понял глубинный смысл этой фразы. Остались ли после этого сомнения, что VC - говно? Когда-то мерилом приемистости языка было наличие асмовставок - майкрософт перешагнул даже через этот стереотип. Что будет дальше?
Ну нет, внешний асм ты сможешь дёргать только через jmp/call, т.е. придётся достаточно большой кусок писать на асме, конвеншн соблюдать и т.п.
Так что у вставок всё-таки было теоретическое преимущество (как студия раскрывала их на практике см. примеры ниже по треду).
Ты пишешь на дельфи, и оптимизируешь код посредством асмовставок. Какую конкретно задачу ты решал что в ней асмовставка давала настолько серьезный прирост перформанса что стоила ебли?
Брутфорсил пароли?
Выяснилось, что фасм 32-битный и на "WSL" не работает, впрочем это обходимо и не самое важное
Но у фасма настолько все плохо, что даже нельзя папку с инклюдами задать, и в целом из опций компилятора есть только хуй, масло, их комбинации и хелп
И что? Сам fasm может запускаться только на x86-совместимом говне, т.к. написан на самом себе (нахрена?).
> Вроде бы Томаш сейчас портирует его на x64
Лучше б портировали на Си.
> Есть кроссассемблер FASMARM: http://arm.flatassembler.net
А для AVR? А для MIPS? GNU assembler это все умеет https://sourceware.org/binutils/docs/as/Machine-Dependencies.html
Там даже RISC-V и MMIX(придуманная Дональдом Кнутом архитектура) есть. Поэтому я за GNU assembler
А потом его тоже надо заселфхостить.
Да это похуй, можно и с x86 кросс-конпелять. Другое дело - умеет ли он генерить код для чего-то кроме x86.
ttp://board.flatassembler.net/forum.php?f=22
Четыре года назад какой-то чувак замутил асмовставки на шаблонах.
Нет, пишут, что у лексикона эскейпом был 0xFF. А тут 0x1B.
Нагуглил какие-то эскейпы для эпсоновских принтеров ESC/P. E - включить bold, F - выключить bold, G - включить подчёркивание, H - выключить подчёркивание. Вроде по смыслу подходит.
А вот "PostScript" —– это уже тьюринг-полный язык программирования с четырьмя стеками, похожий на "Forth".
Но да, теоретически возможно. Есть уже готовые драйвера для DOS для некоторых классов устройств (помню, что есть для mass storage и для мышек).
Жопа в том, что тот же "ECHI" не умеет в медленные устройства и скидывает их "UHCI" или "OHCI". Поэтому тебе придётся писать сразу джва драйвера.
Только "xHCI" умеет все скорости одновременно. Именно поэтому я за "xHCI".
Ага, про него.
Так что если пилить не только падсибя, то нужны все 4 драйвера + поддержка хабов.
Я тут вспомнил что винда могла внезапно переключить ATA в режим PIO, даже очень хороший UltraDMA.
Причины не очень ясны, но народ там это отключал через реестр.
нагуглил даже:
http://www.it-simple.ru/?p=6123
Надо бы ему предложить позырить в диспечтер устройств, вдруг там pio?
Сам я в жизни видел только переключение в PIO от 40ка жильного кабеля, но у него же sata
Прыщебляди соснули!
Какой именно способ описаяния страницы там идет: PCL, PostScript или вообще аски текст с ESC последовательносями Epson -- это всё не важно.
Бывают даже принтеры которые умеют XPS и битмапы GDI (винпринтеры).
Читни документца, в общем
[quote]
This specification does not define Page Description Languages (PDL) or Printer Control Protocols (PCP).
This specification defines interfaces that are intended to support existing PDLs and PCPs.
[/qute]
https://www.usb.org/sites/default/files/usbprint11a021811.pdf
Эскейпы есть и в «PCL», но там коды длиннее.
ESC E –— начало выделения (курсив?).
ESC F –— конец выделения.
ESC G –— начало двойного прохода (жирный?).
ESC H –— конец двойного прохода.
Всё сходится.
ггг
что, простите?
Но девятибитная оперативка использовалась не везде.
В циклоняшке тоже девятибитная. Как и умножители.
В циклоняшке не обязательно юзать этот бит под ECC. Можно просто как девятый бит.
Другие подобные проекты («Borland Power Pack» a. k. a. «32RTM», «WDOSX», «Pharlap TNT DOS Extender», «Doswin32») запустить «FAR» не могли.
https://sourceforge.net/p/jwasm/discussion/927109/thread/c2dc7e7a/?limit=25#4895
https://github.com/Baron-von-Riedesel это его аккаунт
https://sourceforge.net/p/jwasm/discussion/927109/thread/c2dc7e7a/?limit=25#4895
https://github.com/Baron-von-Riedesel это его аккаунт
https://github.com/Baron-von-Riedesel/Dos64-stub/tree/master/src
GCC: https://godbolt.org/z/fJZGHB. Сможешь найти вставку среди остального кода?
На уровне уроков информатики-то я асемблер знаю
З.Ы. Лол, ты первую версию успел открыть. Я там таб забыл въебать, так что вставка палилась и без знания асма 🙂
надо было туда add какой-нить забабахать
юниксы с гццой разве умеют в памяти сегмент с 16ти битным кодом?
Да и 16-битный код там не совсем настоящий. Он юзает 32-битные регистры и 32-битную адресацию. Просто все инструкции обмазаны префиксами.
Кстати, современный бутпротокол вроде такой что загрузчик должен переключиться в 32битный, а раньше вроде не должен был, не?
А что в коде 16ти битного? инструкции?
> А что в коде 16ти битного
Его можно запустить в реалмоде (не на труъ 16-битном проце, само собой).
- 16 как бутсектор, 16 для загрузчика
- 32 обычная, 32 для UEFI
- 64 обычная, 64 для UEFI
Кстати, когда грузишься в 16битном режиме то можно попросить ядро перечислить все видеорежимы для виртуальной консоли с фреймбуфером (vga=ask)
а в 32х битном -- хуй. Это потому что vga=ask через vesa bios работа?
"E820".
это такие циферки которые репортуют обычно ядра большинства юниксподобных осей, если там явно не отключить этот вывод (quiet там какой-нито) и пугают нубов страшно
охуенная кстати
И там и сям нет ни одного импорта!
Открыл 32х битную версию (в syswow64) и там импортят mscorsee а уже он импортит все остальное
Выходит что загрузчик винды понимает .netовый хедер у 64битного PE и не требует костыля
Все это так странно...
Вероятно про это пишет Рихтер или Руссинович, но я их читал в до64хбитные времена(
dumpbin от студии -- лучший друг виндоёба
x86
импорт есть
x64
импорт нет
при этом в хедерах у x64 ни слова про .nET
Есть правда /CLRHEADER (у всех есть).
Как лоадер понимает? Неужто читает этот Header?
В data directory есть слот под CLR заголовок, проверь.
Или это костыль чотбы работать на машинах типа win98, где вообще нет знания про .net?
Кстати, попробуй собрать простую прогу на c#. А то вдруг тебе просто такие бинари попались.
в 64битном -- нет
Менял через build -> platform target.
Ну вероятно заголовок для x64 и ABI придумывали когда уже знали про .net
Ну а когда .net только изобрели, невозможно же было пропатчить все старые ОСы, вот и сделали костыль
Был аналогичный проект RSX, в котором вместо a.out и LX использовались COFF и PE соответственно (но тут проще, потому что PE в себе содержит диалект COFF).
Были кентавры и попроще: MZ и досовский драйвер устройства в одном.
А ещё были вирусы Esperanto и Winux...
который можно через DEVICE (или load?) в config.sys загрузить?
я в детстве писал .exe который загружался в память или делал terminate stay resident (и вешался на прерывание), могу ли я считать что совместил MikeZbikovski и драйвер)?
Трюк был основан на том, что заголовки DEVICE начинались не с самого начала, поэтому не портили заголовок MZ.
Там внутри Mach, сверху BSD
Погуглил, «RSX» тоже основан на a.out, и в нём тоже a.out начинается где-то в середине файла. Я перепутал: в «EMX» сигнатура a.out идёт после LX, а в «RSX» сигнатура a.out идёт до PE.
Офтопик: а ведь дебиановские пакеты представляют собой архив «AR», такой же как у библиотек кокококомпиляторов с расширением «.a». Можно собрать архив, кокококоторый можно скармливать и линкеру, и «dpkg»?
https://bit.ua/wp-content/uploads/2015/10/1406_cartmanMephisto.jpg
Встроенный ассемблер «Трубопаскакаля» не понимал инструкций, которых нет в 8086. Поэтому чтобы использовать 32-битные данные или 32-битные смещения (из 16-битного кода), приходилось лепить DB 66H или DB 67H соответственно и инструкцию для 16-битных данных/смещений. Прикол заключался в том, что некоторые регистры для 16-битного режима и для 32-битного режима закодированы по-разному (а одно из значений байта mod R/M ещё и требует за собой байт s-i-b, что вообще ужас). Поэтому получалась криптушня:
Что eax соответствует ax, нетрудно догадаться. Но как догадаться, что [bp + si] соответствует [edx]?
Я бы тупо через db наебашил и коммент добавил. Ибо этот пиздец всё равно не читается.
http://gcode.cx/ngk/#!/25041#comment438139
В инструкциях опкоды, мнемоники в комментариях.
[BX+SI] с префиксом 67H –— это [EAX].
[BX+DI] с префиксом 67H –— это [ECX].
[BP+SI] с префиксом 67H –— это [EDX].
[BP+DI] с префиксом 67H –— это [EBX].
[DI+константа] с префиксом 67H –— это [EBP+константа].
[BP+константа] с префиксом 67H –— это [ESI+константа].
[BX] с префиксом 67H –— это [EDI].
Нужно запомнить, что [SI] с префиксом 67H превратится в тыкву; что [константа] превратится в [ESI], а сама эта константа исполнится как опкод; а также что [DI] без смещения наоборот потребует константу и превратится в [константа].
А префикс 66H можно вообще использовать без проблем, только для immediate-констант придётся добавлять два байта через DB/DW.
-----
В «PDP-11» такой фигни не было, именно поэтому я за «PDP-11».
ну-ка сделай мне на 8086
У них лежит архив с исходниками и с документацией. Можешь изучить, если интересно.
Source code has been ported from PDP-11 Unix assembler syntax to Microsoft Macro Assembler (INTEL x86 real mode) syntax and original unix source code has been modified for IBM PC/AT compatibility with standard ROM BIOS functions, without dropping/removing original UNIX v1 multitasking (time-sharing) features.
http://www.singlix.com/trdos/archive/
фап!
А студия реально понимала написанное, как минимум затронутые командами регистры могла определять... Видимо из-за этой сложной реализации они и забили на amd64.
А макропроцессор это вовсе не большой микропроцессор
https://habr.com/ru/post/395919/
По аналогии с макроавтобусом:
https://tgraph.io/file/ae115e7022c51df21b978.png
P.S. Когда же поисковики перестанут меня исправлять. МАКРО я хочу, а не микро, дурилки картонные!
https://tjournal.ru/transport/32217-v-kitae-ispytali-deystvuyushchuyu-model-avtobusa-budushchego
Короче, прыщебляди соснули, как обычно.
соснули-ли бздубляди и макоёбы?
Поддерживает-ли асм всавки компилятор clang для llvm?
Его используют BSD: как обычные, так и DarwinBSD (на которой построены iOS и Mac OS X).
http://clang.llvm.org/compatibility.html#inline-asm
Он один-в-один скопирован с «gcc», только проверка размеров аргументов более строгая. Ну то есть «add $4, (%rax)» писа́ть нельзя, нужно явно указать, что ты хочешь скопировать: байт, слово, двойное слово, четверное слово...
Ассемблер интегрированный, а не «gas».
ни вообще нихуя не знаешь, только гомосятину свою равзодить можешь
и за пропаганду гомосексуализма
за эти две статьи тебя и посадят, говно
надеюсь, после моих слов ты крепко задумаешься.
только к пидарам гнойным вроде тебя
http://vim.dev -> Emacs
http://emacs.dev -> Vim
«Так спартанцы осуществляют жертвоподношения богу Эросу перед воинами, выстроенными для боя, потому как полагают, что их спасение и победа зависят от дружбы между мужчинами, стоящими в строю… И опять, так называемый Священный отряд в Фивах состоит из любовников и их избранников, проявляя таким образом величие бога Эроса в том, что бойцы отряда избрали погибель со славой перед невзрачной мизерной жизнью.»[1]
почитай внимательнее, там всё написано
как su.humor почитал за 1994 год
как su.humor почитал за 1994 год
Телепузик спать ложится!
Тонет лодка с мусорами.
Мусора кричат: «спасите!»
А телепузики им: «пузи-хуй сосите!»
Но всю ночь напролёт до зари
Я читаю стихи пузи-губке
И с Тинки-Винки жарю пузи-пироги.
Я покинул родные поля.
Уж не будут листвой крылатой
Надо мной пузи-тополя.
Пылесос мой давно скукожился,
Пузи-тостер давно издох.
На телепузиковых изогнутых улицах
Умереть, знать, сулил мне Бог.
Показал мужик топор
К Arduinho привязал.
Имени Мичурина
Я смотрю широкими глазами.
В Персии такие ж точно куры,
Как у нас в соломенной Рязани.
впрочем, как и пидорг