Uw eerste Assembly-programma
Stel uw ontwikkelomgeving in en schrijf, assembleer, link en voer een eenvoudig 'Hello, World!'-programma uit in x86 Assembly.
Uw eerste Assembly-programma is een gratis Assemblytaal en x86-programmeren voor systemen op laag niveau-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Assemblytaal en x86-programmeren voor systemen op laag niveau. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Assemblytaal en x86-programmeren voor systemen op laag niveau bevat in totaal 4 lessen.
Je eerste Assembly-programma
Tijd om zelf aan de slag te gaan: je stelt de hulpmiddelen in, schrijft een "Hello, World!" in assembly en zet dit om in een uitvoerbaar bestand. Dit is het leuke gedeelte.
Aan de slag: assembler en linker
Je hebt twee hulpmiddelen nodig: een assembler (wij gebruiken NASM) om een objectbestand te maken en een linker (LD) om dat om te zetten in een uitvoerbaar programma.
Opbouw van een Assembly-programma
Een assemblyprogramma is verdeeld in secties. .data bevat geïnitialiseerde gegevens zoals tekenreeksen; .text bevat je instructies en begint bij _start.
"Hello, World!" opslaan
Sla het bericht op in .data. De instructie db definieert bytes; we voegen een regeleinde (0xA) toe en berekenen direct daarna de lengte.
section .data
msg db 'Hello, World!', 0xA
len equ $ - msgSysteemaanroepen: tekst afdrukken
Om tekst af te drukken, vraag je het besturingssysteem dit te doen via een systeemaanroep. Op Linux is dat sys_write (nummer 1): je geeft de uitvoer, het adres en het aantal bytes door.
section .text
global _start
_start:
; sys_write (syscall number 1)
mov rax, 1 ; syscall number for sys_write
mov rdi, 1 ; file descriptor 1 (stdout)
mov rsi, msg ; address of the string to write
mov rdx, len ; number of bytes to write
syscall ; execute the system callOns programma beëindigen (syscall)
Wanneer het programma klaar is, moet het het besturingssysteem met een tweede syscall vertellen dat het moet stoppen: sys_exit (nummer 60), met een afsluitstatus — 0 betekent succes.
; sys_exit (syscall number 60)
mov rax, 60 ; syscall number for sys_exit
mov rdi, 0 ; exit status 0 (success)
syscall ; execute the system callJe eerste volledige programma!
Hier is het volledige "Hello, World!"-programma — sla het op als hello.asm. De sectie .data bevat het bericht, en .text drukt het af en beëindigt het programma.
section .data
msg db 'Hello, World!', 0xA
len equ $ - msg
section .text
global _start
_start:
; sys_write (syscall number 1)
mov rax, 1 ; syscall number for sys_write
mov rdi, 1 ; file descriptor 1 (stdout)
mov rsi, msg ; address of the string to write
mov rdx, len ; number of bytes to write
syscall ; execute the system call
; sys_exit (syscall number 60)
mov rax, 60 ; syscall number for sys_exit
mov rdi, 0 ; exit status 0 (success)
syscall ; execute the system callVan Assembly naar objectbestand
Eerst assembleer je het programma: nasm -f elf64 zet hello.asm om in het objectbestand hello.o — machinecode, maar nog geen uitvoerbaar bestand.
nasm -f elf64 hello.asm -o hello.oHet uitvoerbare bestand maken
Het objectbestand kan nog niet worden uitgevoerd. De linker (ld) koppelt het ingangspunt _start en maakt het uiteindelijke uitvoerbare bestand.
ld hello.o -o helloVoer het programma uit en bekijk de uitvoer!
Voer het nu uit met ./hello. "Hello, World!" wordt in je console afgedrukt — gefeliciteerd, je hebt zojuist je eerste x86-assemblyprogramma uitgevoerd!
./helloKorte controle: processtappen
Je hebt het volledige proces gezien om vanuit assemblycode een uitvoerbaar bestand te maken. Wat is de juiste volgorde van de stappen?
Samenvatting: je eerste Assembly-programma
Je hebt de volledige werkstroom uitgevoerd: gegevens definiëren, sys_write en sys_exit aanroepen, en vervolgens assembleren, linken en uitvoeren. Hierna: registers en gegevenstypen.
Leer Assembly met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Uw eerste Assembly-programma” gratis?
Ja — de volledige tekst van “Uw eerste Assembly-programma” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Assemblytaal en x86-programmeren voor systemen op laag niveau wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Assemblytaal en x86-programmeren voor systemen op laag niveau bevat in totaal 4 lessen.
Wat leer ik in “Uw eerste Assembly-programma”?
Stel uw ontwikkelomgeving in en schrijf, assembleer, link en voer een eenvoudig 'Hello, World!'-programma uit in x86 Assembly. Je oefent met Assemblytaal en x86-programmeren voor systemen op laag niveau door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Assemblytaal en x86-programmeren voor systemen op laag niveau te beginnen?
Ervaring vooraf is niet nodig. Assemblytaal en x86-programmeren voor systemen op laag niveau op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Uw eerste Assembly-programma”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Assemblytaal en x86-programmeren voor systemen op laag niveau?
Ja. Elke les over Assemblytaal en x86-programmeren voor systemen op laag niveau bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Wat is Assembly Language?
- Grondbeginselen van de x86-architectuur
- Uw eerste Assembly-programma
- De toolchain voor assembleren, linken en uitvoeren