{"id":19187,"date":"2025-09-11T09:18:05","date_gmt":"2025-09-11T09:18:05","guid":{"rendered":"http:\/\/www.max-sperling.bplaced.net\/?p=19187"},"modified":"2025-09-11T11:18:00","modified_gmt":"2025-09-11T11:18:00","slug":"hello-world-assembler","status":"publish","type":"post","link":"http:\/\/www.max-sperling.bplaced.net\/?p=19187","title":{"rendered":"Hello world (ASM)"},"content":{"rendered":"<h2>Details<\/h2>\n<ul>\n<li>Platform: x86_64<\/li>\n<li>ASM flavor: Intel<\/li>\n<li>Assembler: as (from GNU)<\/li>\n<\/ul>\n<h2>Source code<\/h2>\n<pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\r\n    .section .text          # Code section\r\n    .global _start          # Entry point\r\n_start:                     # Label (entry point)\r\n    call print              # Call print function\r\n    mov rax, 60             # Syscall number: 60 (= exit)\r\n    xor rdi, rdi            # Syscall arg 0: 0 (= code)\r\n    syscall                 # Perform syscall\r\n\r\nprint:                      # Label (print function)\r\n    mov rax, 1              # Syscall number: 1 (= write)\r\n    mov rdi, 1              # Syscall arg 0: 1 (= stdout)\r\n    lea rsi, [rip+msg]      # Syscall arg 1: [rip+msg] (= address)\r\n    mov rdx, 12             # Syscall arg 2: 12 (= length)\r\n    syscall                 # Perform syscall\r\n    ret                     # Return to _start\r\n\r\n    .section .data          # Data section\r\nmsg:                        # Label (print message)\r\n    .string &quot;Hello world\\n&quot; # Output string\r\n<\/pre>\n<h2>Generation<\/h2>\n<pre>\r\n$ as -o main.o main.s --64 --msyntax=intel --mnaked-reg\r\n$ ld -o main main.o\r\n<\/pre>\n<h2>Execution<\/h2>\n<pre>\r\n$ .\/main\r\nHello world\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Details Platform: x86_64 ASM flavor: Intel Assembler: as (from GNU) Source code Generation $ as -o main.o main.s &#8211;64 &#8211;msyntax=intel<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false},"categories":[27],"tags":[],"_links":{"self":[{"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/posts\/19187"}],"collection":[{"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=19187"}],"version-history":[{"count":9,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/posts\/19187\/revisions"}],"predecessor-version":[{"id":19196,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=\/wp\/v2\/posts\/19187\/revisions\/19196"}],"wp:attachment":[{"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=19187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=19187"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.max-sperling.bplaced.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=19187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}