Menu
Coddy logo textTech

Récapitulatif : Défi MOV

Fait partie de la section Fondamentaux du Journey Assembly de Coddy. Leçon 22 sur 45.

challenge icon

Défi

Ce défi mettra à l’épreuve votre compréhension de :

  • Charger des valeurs depuis la mémoire
  • Stocker des valeurs en mémoire
  • Copier entre les registres
  • Utiliser la taille correcte du registre

Les adresses des données sont déjà créées pour vous. Vous devez uniquement écrire les instructions MOV.

Défi

Effectuez les tâches suivantes dans l’ordre. Écrivez une ligne d’assembleur pour chaque tâche.

Données déjà fournies :

  • num1 : contient la valeur 8 (1 octet)
  • num2 : contient la valeur 3 (1 octet)
  • result : espace vide (1 octet)

Tâches :

  1. Charger la valeur de num1 dans al
  2. Charger la valeur de num2 dans bl
  3. Copier la valeur de bl dans cl
  4. Stocker la valeur de al dans result

Après votre code :

  • al devrait contenir 8
  • bl devrait contenir 3
  • cl devrait contenir 3
  • La mémoire à l’adresse result devrait contenir 8

Essayez vous-même

section .data
    msg_al db 'al = '
    msg_al_len equ $ - msg_al
    msg_bl db 'bl = '
    msg_bl_len equ $ - msg_bl
    msg_cl db 'cl = '
    msg_cl_len equ $ - msg_cl
    msg_result db 'result = '
    msg_result_len equ $ - msg_result
    newline db 0xa

section .bss
    digit resb 1

section .text
    global _start

_start:
    ; Le code de l'étudiant s'exécute en premier
    
    %include "solution.asm"
    
    mov r12, rax
    mov r13, rbx
    mov r14, rcx
    mov r15, 0
    mov r15b, [result]

    mov rax, 1
    mov rdi, 1
    mov rsi, msg_al
    mov rdx, msg_al_len
    syscall

    mov rax, r12
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, newline
    mov rdx, 1
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, msg_bl
    mov rdx, msg_bl_len
    syscall

    mov rax, r13
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, newline
    mov rdx, 1
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, msg_cl
    mov rdx, msg_cl_len
    syscall

    mov rax, r14
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, newline
    mov rdx, 1
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, msg_result
    mov rdx, msg_result_len
    syscall

    mov rax, r15
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, newline
    mov rdx, 1
    syscall

    mov rax, 60
    mov rdi, 0
    syscall

Toutes les leçons de Fondamentaux

Entraînez-vous par vous-même : Playground Assembly