Int 80h (2001)
Per the Internet Archive, this page is <i>at least</i> fifteen years old - it looked like this as of the first snapshot taken on February 1, 2001 (<a href="https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20010201152900&#x2F;http:&#x2F;&#x2F;int80h.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;web.archive.org&#x2F;web&#x2F;20010201152900&#x2F;http:&#x2F;&#x2F;int80h.org...</a>). A lot has changed in computing since then.<p>ARM became dominant in mobile computing, which was barely a glimmer back in 2001. x86-64 became commonplace. Just targeting Intel and ARM processors now necessitates writing code for four architectures: x86, x86-64, AArch32 and AArch64 for a full range of compatibility.<p>While MS-DOS syscall numbers were documented and often _required_ assembly to use, the opposite is true on modern Windows - Windows system call numbers are undocumented and change from release to release, requiring programmers to link against Kernel32.dll or equivalent to stably call into the OS.<p>Compiler technology has advanced significantly, and processor manufacturers now often optimize towards patterns employed by compilers rather than by humans (case-in-point: the x86 &quot;loop&quot; instruction, while extremely convenient for handwritten code, is significantly less performant than a cmp-jmp loop).<p>Code has gotten more and more complex. Whether this is a good thing or bad, the reality is that hundreds of millions of lines of assembly would be required to replicate complex modern programs like web browsers - projects of that scale will always require powerful HLLs to manage abstraction, something that assembly does not and cannot provide on its own.<p>View this page as what it is - a historical artifact. Although assembly programming definitely still has its uses, the arguments this page makes in favor of it are largely no longer relevant.