{"id":17703242,"url":"https://github.com/lilsuperuser/x86_64-asm-tutorials","last_synced_at":"2025-03-13T06:31:50.672Z","repository":{"id":258800130,"uuid":"872491782","full_name":"LilSuperUser/x86_64-asm-tutorials","owner":"LilSuperUser","description":"x86_64 Assembly Tutorial","archived":false,"fork":false,"pushed_at":"2024-11-02T20:33:26.000Z","size":681,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-26T18:57:11.834Z","etag":null,"topics":["assembly-language","low-level-programming","tutorial","x86-64-assembly-nasm"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LilSuperUser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-14T14:26:52.000Z","updated_at":"2025-01-13T17:33:56.000Z","dependencies_parsed_at":"2024-10-21T22:45:27.613Z","dependency_job_id":null,"html_url":"https://github.com/LilSuperUser/x86_64-asm-tutorials","commit_stats":null,"previous_names":["lilsuperuser/x86_64-asm-tutorials"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LilSuperUser%2Fx86_64-asm-tutorials","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LilSuperUser%2Fx86_64-asm-tutorials/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LilSuperUser%2Fx86_64-asm-tutorials/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LilSuperUser%2Fx86_64-asm-tutorials/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LilSuperUser","download_url":"https://codeload.github.com/LilSuperUser/x86_64-asm-tutorials/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243357603,"owners_count":20277988,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assembly-language","low-level-programming","tutorial","x86-64-assembly-nasm"],"created_at":"2024-10-24T20:06:02.247Z","updated_at":"2025-03-13T06:31:50.656Z","avatar_url":"https://github.com/LilSuperUser.png","language":null,"readme":"# Assembly Language Tutorials\nWelcome to my Assembly Language Tutorials! This repository is designed for beginners and intermediate learners who want to dive into the world of assembly programming, particularly for x86_64 architecture.\n\n## Table of Contents:\n1. [Introduction to Computer Architecture](notes/001-Introduction_To_Computer_Fundamentals.md)\n   - CPU\n   - Memory\n   - Buses\n   - Endianness\n   - Memory Hierarchy\n   - Instruction Set Architecture (ISA)\n   - Interrupts And Exceptionss\n2. [Settign Up The Environment](notes/002-Setting_Up_Environment.md)\n   - Installing NASM (assembler)\n   - Installing ld (linker)\n   - Installing gdb (debugger)\n3. [Introduction to Assembly Language](notes/003-Introduction_To_Assembly.md)\n   - What is Assembly?\n   - Why Assembly?\n   - Structure of an Assembly Program\n   - Syntax of Assembly\n   - Registers for Assembly\n   - Addressing Modes\n   - Assembly syntax/format\n   - Switching syntax/format in assemblers or debugger\n4. [Hello World Program in Assembly](notes/004-Hello_World_in_Assembly.md)\n   - Syscall Structure\n   - Source Code\n   - Explanation\n   - Data Definition Directives\n   - Steps to execution\n   - Same programs Using Labels\n5. [Jumps, Calls, and Flags in Assembly](notes/005-Jumps_Calls_and_Flags.md)\n   - Flags\n   - Jumps\n   - Calls\n6. [Reading User Input And Greeting in Assembly](notes/006-Reading_Name_Greeting_User.md)\n   - Source Code\n   - Explanation\n7. [Arithmetic and Logical Instructions in Assembly](notes/007-Arithmetic_and_Logical_Instructions.md)\n   - Arithmetic Instructions\n   - Logical Instructions\n8. [Displaying A Digit in RAX](notes/008-Displaying_Digit_in_RAX.md)\n   - Source Code\n   - Explanation\n9. [Calculating The Length of String During Runtime](notes/009-Calc_Len_of_String_During_Runtime.md)\n   - Source Code\n   - Explanation\n10. [Virtual Memory in Assembly: Understanding Stack, Heap, and Segments](notes/010-Virtual_Memory_in_Assembly.md)\n    - Introduction to Virtual Memory\n    - Segments of Virtual Memory\n    - Stack\n    - Heap\n11. [Macros in NASM](notes/011-Macros-in-nasm.md)\n    - What are macros?\n    - How to define a macro?\n    - Local Labels in a macro definition\n    - Defining constants using `equ`\n    - Including external files using `%include`\n12. [Subroutine to Print an Integer](notes/012-Subroutine_to_print_int.md)\n    - Source code\n    - Overview of the logic used\n    - Explanation of the source code\n13. [Command Line Arguments](notes/013-CLI_arguments.md)\n    - What are command line arguments (CLI arguments)\n    - Arguments on the stack\n    - Program to print CLI arguments onto the screen.\n14. [Introduction to files](notes/014-Introduction_to_files.md)\n    - Introduction to files\n    - File permissions\n    - File descriptors\n15. [Opening \u0026 closing a file](notes/015-Opening_\u0026_closing_a_file.md)\n    - Opening a file using `sys_open` system call\n    - Flags used while opening a file\n    - Modes used while opening a file\n    - Combining multiple flags and modes\n    - Closing a file using `sys_close` sysem call\n    - Example of opening and closing a file\n16. [Writing to an open file](notes/016-Writing_to_files.md)\n    - `sys_write` system call breakdown\n    - Example of writing to a file\n17. [Reading from an open file](notes/017-Reading_from_files.md)\n    - `sys_read` system call breakdown\n    - Example of reading from a file\n18. [Appending to a file](./notes/018-Appending_to_files.md)\n    - Example of appending to a file\n## Overview \nthis tutorial series covers fundamental concepts in assembly programming, including:\n- Basic computer architecture.\n- The assembly language syntax and conventions.\n- System calls.\n- Writing to stdout.\n- Reading from stdin.\n\nEach tutorial contains detailed explanations and code examples to help you understand and apply the concepts effectively.\n\n## Prerequisites\n- Basic understanding of computer science concepts.\n- Familiarity with system level programming.\n- Familiarity with Linux command line.\n- A working environment set up for assembly programming (please refer to the **Setting Up the Environment** tutorial for instructions).\n\n## Getting Started\nTo get started, simply navigate to the tutorial files listed above. Each file contains detailed information and examples for the respective topic.\n\n## Ongoing Development\nThis tutorial series is actively being enhanced and expanded. I am committed to continuously updating the content to cover a broader range of topics and advanced concepts in assembly programming.\n\nYour feedback and suggestions for additional topics are welcome! Thank you for your interest and support as I develop this resource for the assembly programming community :D\n\n## Contributions\nIf you would like to contribute to this repository, please fork the repository, create a new branch, make your changes, and submit a pull request.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flilsuperuser%2Fx86_64-asm-tutorials","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flilsuperuser%2Fx86_64-asm-tutorials","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flilsuperuser%2Fx86_64-asm-tutorials/lists"}