Wat is Assembler?

Software die een programma in assembleertaal omzet in bitreeksen van machinetaalinstructies. Zet labels om in adressen en vervangt pseudo-instructies door echte instructies.

Japanse benaming: アセンブラ

“Assembler” komt voor in 6 oefenvragen uit 2 onderwerpen, bijv. Instructieset en assembly, Compilers.

Vakgebied: Instructieset en assembly

Nu oefenen: vragen over Assembler

Door welke instructie vervangt de assembler in werkelijkheid de RISC-V-pseudo-instructie „nop” (doe niets)?

  1. Aaddi x0, x0, 0
  2. Bjal ra, 0
  3. Clw x0, 0(sp)
Antwoord en toelichting tonen

Antwoord: A. addi x0, x0, 0

RISC-V heeft geen speciale instructie voor „niets doen”; nop wordt uitgedrukt als „addi x0, x0, 0”. Schrijven naar x0 wordt weggegooid, dus noch registers noch geheugen veranderen. Evenzo is „mv rd, rs” gelijk aan „addi rd, rs, 0”, „j label” aan „jal x0, label” en „ret” aan „jalr x0, 0(ra)”. Het ontwerpidee van RISC-V is het aantal instructiesoorten klein te houden met behulp van x0.

“Assembler” in de toelichting

Vragen met “Assembler” (6)

  1. Door welke instructie vervangt de assembler in werkelijkheid de RISC-V-pseudo-instructie „nop” (doe niets)?
  2. Welke relatie tussen assembleertaal en machinecode is juist?
  3. Wat is de gebruikelijke methode in RISC-V om een 32-bits constante die niet in een immediate van 12 bits past (bijvoorbeeld 0x12345678) in een register te plaatsen?
  4. Wat is de juiste combinatie om in RISC-V de constante 0x12345FFF met de twee instructies lui en addi te maken?
  5. De voorwaardelijke sprong-instructies van RISC-V (B-formaat) drukken de afstand tot het sprongdoel uit in een aantal bytes met teken van 13 bits, waarvan het laagste bit altijd 0 is en niet in de instructie wordt opgenomen. Welk bereik bereikt een sprong-instructie rechtstreeks ongeveer?
  6. Welke algemene volgorde waarin uit een C-programma een uitvoerbaar bestand ontstaat is juist?

Verwante termen

Instructiesetarchitectuur (ISA) Immediate (directe waarde) Linker Pseudo-instructie Objectbestand Aanroepconventie (calling convention) ABI (application binary interface) Adresseringsmodus Bladfunctie (leaf function) Branch delay slot

Naar de woordenlijst