home.social

#assembler — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #assembler, aggregated by home.social.

fetched live
  1. Написание ядра ОС с нуля. Часть 1

    Когда я только знакомился с OSDev, я очень долго искал соответствующие материалы. Находил и на YouTube, и на Habr, и просто какие‑то англоязычные сайты (тогда я не сильно знал английский). Но почти все что я находил было либо незаконченным, либо недостаточно понятным и полным. В этой статье я постараюсь рассказать все так, как ожидал я это от других.

    habr.com/ru/articles/1070680/

    #osdev #assembler #fasm

  2. Нельзя просто взять и прочитать 64-битный SysTick на CH32V203

    Когда я начал работать с CH32V203G6U6 и обнаружил, что там есть 64-битный аппаратный таймер, то подумал: ух, это же отлично, раз таймер аппаратный, то и о чтении/записи заботится сам микроконтроллер. И какое-то время это не вызывало вопросов. А потом…

    habr.com/ru/articles/1068444/

    #wch #embedded #c_language #assembler #riscv #debug #systick

  3. @aud Assembler for (a) speed and (b) gatekeeping. Not Prolog and definitely not APL because APL is simply insane. Possibly with a side project purporting to write it in Lisp just to draw in all the posers and weirdos and those who weirdly pose as weirdos.
    #assembler #prolog #apl #lisp

  4. An interesting approach to assembler operation and control: I65 is a suite of cross assemblers with syntax embdedded in the Lua language.

    github.com/g012/l65

    #assembler #lua

  5. An interesting approach to assembler operation and control: I65 is a suite of cross assemblers with syntax embdedded in the Lua language.

    github.com/g012/l65

    #assembler #lua

  6. RE: social.heise.de/@ct_Magazin/11

    wow a single x86 asm instruction that can take up to 23 seconds (or under heavy PCIe load up to 63 seconds).

    Wow.

    #ASM #assembler #programming

  7. RE: social.heise.de/@ct_Magazin/11

    wow a single x86 asm instruction that can take up to 23 seconds (or under heavy PCIe load up to 63 seconds).

    Wow.

    #ASM #assembler #programming

  8. An assembler written in R5RS Scheme for Intel Architecture

    A person called Jonathan Kraut wrote an #assembler called Sassy in #R5RS #Scheme, which is used as the native code generating phase for the Larceny scheme compiler.

    #tech #Software #SchemeLang #IA32 #FunctionalProgramming #Compiler

  9. An assembler written in R5RS Scheme for Intel Architecture

    A person called Jonathan Kraut wrote an #assembler called Sassy in #R5RS #Scheme, which is used as the native code generating phase for the Larceny scheme compiler.

    #tech #Software #SchemeLang #IA32 #FunctionalProgramming #Compiler

  10. High Assembler: programming in Assembler - with variables, loops, etc.

    Written in Python, High Assembler (“HAS”) aims to combine classic Assembly programming with various concepts familiar from high-level languages. In addition to variables, loops, conditions, and procedures, it also supports, for example, typing and automatic code generation using Python. The output format is classic assembler code in a format compatible with vasm.

    amiga-news.de/en/news/AN-2026-

  11. High Assembler: programming in Assembler - with variables, loops, etc.

    Written in Python, High Assembler (“HAS”) aims to combine classic Assembly programming with various concepts familiar from high-level languages. In addition to variables, loops, conditions, and procedures, it also supports, for example, typing and automatic code generation using Python. The output format is classic assembler code in a format compatible with vasm.

    amiga-news.de/en/news/AN-2026-

    #Amiga #assembler #Python

  12. Деконструкция Go: Runtime или программа, которая запускает вашу программу. Часть 3.1

    В предыдущих частях мы разобрались с тем, во что превращается Go-код, как процессор работает с памятью и каким образом реализуются примитивные атомарные операции. Но всё это порождает закономерный вопрос. Если CPU умеет выполнять только машинные инструкции, а операционная система знает лишь о процессах и системных потоках, то кто вообще знает о существовании горутин? Кто увеличивает их стеки? Кто решает, какую из них сейчас выполнять? Кто собирает мусор? Ответ на всё это один - Go runtime. Но runtime - это не какая-то магическая программа, которая находится между нашим приложением и операционной системой. Это часть самого приложения. Давайте разбираться!

    habr.com/ru/articles/1063194/

    #go #assembler #runtime #язык_программирования #go_runtime #go_assembler

  13. Написание ядра ОС с нуля. Часть 1

    Когда я только знакомился с OSDev, я очень долго искал соответствующие материалы. Находил и на YouTube, и на Habr, и просто какие‑то англоязычные сайты (тогда я не сильно знал английский). Но почти все что я находил было либо незаконченным, либо недостаточно понятным и полным. В этой статье я постараюсь рассказать все так, как ожидал я это от других.

    habr.com/ru/articles/1058812/

    #osdev #assembler #fasm

  14. Good morning! It's been a few days of work, but happily I think these are very promising results. My assembler is now able to assemble a good part of IA-64 / AMD64 / x86_64 code and run simple programmes calling the Linux kernel directly, no C library involved, which accounts for the performance difference in the first rough benchmark (unsophisticated but directionally right).

    This assembler architecture is an extension improving on the zenas Z80 assembler, so it's likely that a future version will fold zenas into the new architecture, and the new unified assembler will target both architectures (initially Z80 and AMD64).

    The parts it still can't assemble: legacy i386 modes, fpu x87, SSE, SIMD instructions. It's possible that I may never go through the hassle of implementing i386. The payoff of implementing ARM64 next is much more important I think (that opens a few other modern platforms, including the M1 and Raspberry Pi).

    In the coming months, ironing out the assembler wrinkles, completing ELF64, Mach-O, and PE32 output, it starts to look like I might be able to make ual generate native binaries directly, adding a new ual-zenas backend. Probably Linux-only sometime by the end of the year, and the rest sometime in 2027.

    #assembler  #asm #programming #amd64 #ia64 #ia_64 #z80 #golang #foss

  15. Good morning! It's been a few days of work, but happily I think these are very promising results. My assembler is now able to assemble a good part of IA-64 / AMD64 / x86_64 code and run simple programmes calling the Linux kernel directly, no C library involved, which accounts for the performance difference in the first rough benchmark (unsophisticated but directionally right).

    This assembler architecture is an extension improving on the zenas Z80 assembler, so it's likely that a future version will fold zenas into the new architecture, and the new unified assembler will target both architectures (initially Z80 and AMD64).

    The parts it still can't assemble: legacy i386 modes, fpu x87, SSE, SIMD instructions. It's possible that I may never go through the hassle of implementing i386. The payoff of implementing ARM64 next is much more important I think (that opens a few other modern platforms, including the M1 and Raspberry Pi).

    In the coming months, ironing out the assembler wrinkles, completing ELF64, Mach-O, and PE32 output, it starts to look like I might be able to make ual generate native binaries directly, adding a new ual-zenas backend. Probably Linux-only sometime by the end of the year, and the rest sometime in 2027.

    #assembler  #asm #programming #amd64 #ia64 #ia_64 #z80 #golang #foss

  16. @stevekohls The most advanced AND solid Z80 assembler is sjasmplus, of which two branches/generations exist:

    PASMO is another, simpler, but very effective assembler which has more of a traditional vibe.
    pasmo.speccy.org/#docu

    And if you are feeling venturous, here's my own project, the zenas assembler, which has a number of novel and powerful features:
    ha1tch.github.io/zsp/projects/

    Happy coding!

    #asm #z80 #assembler

  17. @stevekohls The most advanced AND solid Z80 assembler is sjasmplus, of which two branches/generations exist:

    PASMO is another, simpler, but very effective assembler which has more of a traditional vibe.
    pasmo.speccy.org/#docu

    And if you are feeling venturous, here's my own project, the zenas assembler, which has a number of novel and powerful features:
    ha1tch.github.io/zsp/projects/

    Happy coding!

    #asm #z80 #assembler

  18. My assembler is getting x64 and ARM64 smarts. This is the first time it assembles simple arithmetic, writes an ELF64 binary, and then signs off correctly with the right exit code on linux/amd64.

    #asm #assembler #amd64 #x86assembly #x86_64 #assembly #assembly64

  19. My assembler is getting x64 and ARM64 smarts. This is the first time it assembles simple arithmetic, writes an ELF64 binary, and then signs off correctly with the right exit code on linux/amd64.

    #asm #assembler #amd64 #x86assembly #x86_64 #assembly #assembly64

  20. Why it required a compiler-specific language extension (although thankfully all the compilers that matter, ie and , have converged on the same extension) is beyond me. Being able to detect an overflow is such an obviously useful thing to do that it was implemented in the very first microprocessor, the . I used it heavily in code on the in the 1980s. A mechanism for making use of that flag should have been in the C standard for *decades* by this point. 4/4

  21. Why it required a compiler-specific language extension (although thankfully all the compilers that matter, ie #gcc and #clang, have converged on the same extension) is beyond me. Being able to detect an overflow is such an obviously useful thing to do that it was implemented in the very first microprocessor, the #Intel4004. I used it heavily in #assembler code on the #Z80 in the 1980s. A mechanism for making use of that flag should have been in the C standard for *decades* by this point. 4/4

  22. Introducing zenas: a Z80/Z80N macro assembler written in Go, now public at v0.7.5.

    The difference: it runs and tests the code it assembles. One static binary — assemble, package to ZX Spectrum tape or snapshot, execute in a built-in emulator, assert on machine state, go-test style.

    Encodings verified byte-for-byte against pasmo and sjasmplus across all 545 forms. Typed macro linkage, packages, build tags — with the design reasoning written down.

    github.com/ha1tch/zenas

    #ZXSpectrum #Z80 #retrocomputing #golang #foss #Speccy #Spectrum #ZXSpectrumNext #assembler #asm

  23. Introducing zenas: a Z80/Z80N macro assembler written in Go, now public at v0.7.5.

    The difference: it runs and tests the code it assembles. One static binary — assemble, package to ZX Spectrum tape or snapshot, execute in a built-in emulator, assert on machine state, go-test style.

    Encodings verified byte-for-byte against pasmo and sjasmplus across all 545 forms. Typed macro linkage, packages, build tags — with the design reasoning written down.

    github.com/ha1tch/zenas

    #ZXSpectrum #Z80 #retrocomputing #golang #foss #Speccy #Spectrum #ZXSpectrumNext #assembler #asm

  24. Remoded: разбираем демо-эффекты (часть 2)

    И снова приветствую всех любителей олдскула, демосцены и олдскульной демосцены. Это вторая часть разбора DOS-демки "Remoded" и соответственно эффектов, основанных на аппаратных особенностях видеоадаптера VGA. Сегодня мы продолжим разбираться с аппаратным скроллингом, узнаем, что такое "xorfill" и как его правильно готовить, как эмулировать 12 тысяч цветов в 256-цветном режиме, а также познакомимся с другими технологиями прошлого столетия. MOV AX, 13h; INT 10h

    habr.com/ru/articles/1043888/

    #demoscene #олдскул #демосцена #assembler #кодинг #компьютерная_графика #ассемблер #dos

  25. 16-bit #MSDOS VGA Graphics Library in pure x86 #Assembler old.reddit.com/r/Assembly_l... #retrodev #retrocomputing #programming #coding #dev #graphicsprogramming

    From the Assembly_language com...
  26. 16-bit #MSDOS VGA Graphics Library in pure x86 #Assembler old.reddit.com/r/Assembly_l... #retrodev #retrocomputing #programming #coding #dev #graphicsprogramming

    From the Assembly_language com...
  27. Динамический полиморфизм против std::variant с указателями: Разрушаем мифы о скорости std::visit (v.2*)

    В экосистеме современного C++ прочно укоренилось мнение: классический динамический полиморфизм через виртуальные функции ( vtable ) и наследование — это устаревший, медленный и недружелюбный к кэшу процессора механизм. В качестве «серебряной пули» модно предлагать связку std::variant и std::visit . Если вы спросите любого виртуального умника (ИИ) он до последнего будет убеждать вас что std::variant и std::visit всегда(!) лучше чем виртуальные функции, даже не сомневайтесь. Проблема в том что с таким отношением вы во многих случаях просто лишаете себя выбора адекватного технического решения. Решения адекватного условиям конкретной задачи с необходимостью диспетчеризации вызовов. По интернету кочуют статьи, утверждающие, что std::visit выполняет диспетчеризацию за фиксированное время O(1) и полностью уничтожает старый добрый ООП-подход, но вы должны понимать что не существует универсальных решений на все случаи жизни. А что если мы попробуем уравнять начальные условия использования обеих техник диспетчеризации и будем использовать вариант с указателями, а не с эмплейс-объектами: std::vector< std::unique_ptr < BaseClass>> и std::vector<std::variant std::unique_ptr< TypeA>, std::unique_ptr< TypeB>, std::unique_ptr< TypeC>>> в условиях раздельной компиляции классов и кода который делает вызовы (зачем это надо?).

    habr.com/ru/articles/1047930/

    #visit #vtable #функции #кэш #динамический_полиморфизм #cplusplus #assembler

  28. Забытый мультиколор (часть 4)

    Полное руководство по аппаратному мультиколору для тех, кто не знает, что это такое и зачем он нужен. Преимущества и недостатки, прототип игры, перспективы

    habr.com/ru/articles/1046992/

    #zx_spectrum #zx_evolution #timex #multicolor #графика #история_it #демосцена #видеоигры #z80 #assembler

  29. Забытый мультиколор (часть 3)

    Полное руководство по аппаратному мультиколору для тех, кто не знает, что это такое и зачем он нужен. Совместимость, алгоритмы, эффекты и градиенты

    habr.com/ru/articles/1043818/

    #zx_spectrum #zx_evolution #timex #multicolour #графика #история_it #демосцена #видеоигры #z80 #assembler

  30. Забытый мультиколор (часть 2)

    Полное руководство по аппаратному мультиколору для тех, кто не знает, что это такое и зачем он нужен. Создание графики, форматы, вывод на экран

    habr.com/ru/articles/1041708/

    #zx_spectrum #zx_evolution #timex #multicolor #графика #история_it #демосцена #видеоигры #z80 #assembler

  31. m68k assembler support: m68kplugin 0.2.3 for JetBrains

    In addition to Chris 'platon42' Hodges' MC68000 Assembly Language Plugin for Jetbrains' integrated development environments, Yann Cébron also provides one. Now version 0.2.3 has been released:

    amiga-news.de/en/news/AN-2026-

    #JetBrains #m68k #assembler #Amiga #retrocomputing

  32. Convert Amiga assembler code to C

    The programmer Reinier van Vliet and the graphic designer @metin together with another partner, formed the Dutch game development group Team Hoi, writing its games in assembler.
    Reinier van Vliet has developed a small toolchain that converts 68000 assembler code into portable C. The aim is to achieve CPU semantics that are sufficiently faithful to the originalto port genuine game logic.

    amiga-news.de/en/news/AN-2026-

    #Amiga #assembler #C

  33. Cross-compiler/assembler: Calypsi 5.16 for Windows, Linux and Mac OS

    Calypsi is a collection of compilers and assemblers for Windows, Linux and Mac OS, that generatescode for various retro computers. New in version 5.16:

    amiga-news.de/en/news/AN-2026-

    #compiler #assembler #Windows #Linux #macOS #calypsi #opensource #MOS6502 #WDC65816 #Motorola68000 #HPNut