# Suggestion for an assembly language tutorial?

**URL:** <https://discourse.julialang.org/t/suggestion-for-an-assembly-language-tutorial/132933>\
**Category:** Offtopic\
**Created:** [October 7, 2025, 7:39am UTC](https://discourse.julialang.org/t/suggestion-for-an-assembly-language-tutorial/132933 "2025-10-07T07:39:02Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)\
**Post date:** [October 7, 2025, 7:39am UTC](https://discourse.julialang.org/t/suggestion-for-an-assembly-language-tutorial/132933/1 "2025-10-07T07:39:02Z")

</div>

Sometimes discussions here ends up at the assembly level… do you have a super entry level tutorial on assembly to recommend ? Where I can find the main concepts but also a bit of stuff to try in practice (Linux x64) ?

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [October 7, 2025, 7:48am UTC](https://discourse.julialang.org/t/suggestion-for-an-assembly-language-tutorial/132933/2 "2025-10-07T07:48:14Z")

</div>

What do you mean by assembly? I know of political assemblies and school assemblies, but I have never heard this term used in the context of programming. OK, I think you mean assembly programming. But then, that is CPU-specific, for which CPU?

First hit on Google: [Assembly Programming Tutorial](https://www.tutorialspoint.com/assembly_programming/index.htm)

**Fun fact:** My first assembly language was the [6502 Assembly Language](https://skilldrick.github.io/easy6502/). I used it to write a Basic interpreter and an OS. But it doesn’t work with Julia. ☹

---

<div class="post-metadata">

**Author:** ![Benny](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Benny](https://discourse.julialang.org/u/Benny)\
**Post date:** [October 7, 2025, 8:24am UTC](https://discourse.julialang.org/t/suggestion-for-an-assembly-language-tutorial/132933/3 "2025-10-07T08:24:04Z")

</div>

Throw in LLVM too, I still don’t really know what `@code_llvm` is saying most of the time.

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [October 7, 2025, 9:57am UTC](https://discourse.julialang.org/t/suggestion-for-an-assembly-language-tutorial/132933/4 "2025-10-07T09:57:46Z")

</div>

> [@ufechner7](#):
>
> But then, that is CPU-specific, for which CPU?

I think you are thinking of machine code. Assembly language is an abstraction layer over that again, so should work for many different CPUs, but perhaps not across different architectures.

---

<div class="post-metadata">

**Author:** ![HSt](https://avatars.discourse-cdn.com/v4/letter/h/b38774/32.png) [@HSt](https://discourse.julialang.org/u/HSt)\
**Post date:** [October 7, 2025, 10:01am UTC](https://discourse.julialang.org/t/suggestion-for-an-assembly-language-tutorial/132933/5 "2025-10-07T10:01:13Z")

</div>

As “entry level” you may have a look at some computer architecture textbook (e.g. Harris and Harris).  
Yes machine language is CPU-specific, but some professors tend to say “if you now one (RISC) assembly, you know all”.

But machines like x64 are far more complex than textbook RISC and have evolved over decades. this is why compilers are really needed, build by expert compiler engineers.

Takeaway: Only get to assembly level as very last resort of micro-optimization. Before that, think of restructuring your algorithm / datastructures and build very good benchmarks. Performance bottleneck is memory, \>99%.

---

<div class="post-metadata">

**Author:** ![HSt](https://avatars.discourse-cdn.com/v4/letter/h/b38774/32.png) [@HSt](https://discourse.julialang.org/u/HSt)\
**Post date:** [October 7, 2025, 10:05am UTC](https://discourse.julialang.org/t/suggestion-for-an-assembly-language-tutorial/132933/6 "2025-10-07T10:05:07Z")

</div>

you both mean ISA - Instruction Set Architecture

(However, exact timing and energy consumption depends on the specific implementation in silicon, not just the ISA. So any performance must be tested on the very target machine.)

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [October 7, 2025, 1:00pm UTC](https://discourse.julialang.org/t/suggestion-for-an-assembly-language-tutorial/132933/7 "2025-10-07T13:00:03Z")

</div>

[https://uops.info/](https://uops.info/) is an excellent reference

---

<div class="post-metadata">

**Author:** ![Paulo\_Jabardo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paulo_jabardo/32/3196_2.png) [@Paulo\_Jabardo](https://discourse.julialang.org/u/Paulo_Jabardo)\
**Post date:** [October 7, 2025, 2:11pm UTC](https://discourse.julialang.org/t/suggestion-for-an-assembly-language-tutorial/132933/8 "2025-10-07T14:11:45Z")

</div>

I recommend the book by Igor Zhirkov [Low-Level Programming: C, Assembly, and Program Execution on Intel(r) 64 Architecture](https://www.amazon.com.br/Low-Level-Programming-Assembly-Execution-Architecture/dp/1484224027/ref=sr_1_2?__mk_pt_BR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=2GX4FTZMYH1MG&dib=eyJ2IjoiMSJ9.VKYT7xIv-cn6enrE72cJ5tU_hCCtj8JxAgPrRV-ZknTGjHj071QN20LucGBJIEps.YlZ79a_py9f1z4OMjKuzwzyvXiEOvrWExPJ6Z97sKT4&dib_tag=se&keywords=Igor+Zhirkov&qid=1759846174&sprefix=igor+zhirkov%2Caps%2C387&sr=8-2&ufe=app_do%3Aamzn1.fos.fcd6d665-32ba-4479-9f21-b774e276a678).
