Menu
Coddy logo textTech

요약: MOV 챌린지

Coddy Assembly 여정의 기초 섹션에 포함된 레슨 — 45개 중 22번째.

challenge icon

챌린지

이 챌린지는 다음 사항에 대한 이해도를 테스트합니다:

  • 메모리에서 값 로드하기
  • 메모리에 값 저장하기
  • 레지스터 간 복사하기
  • 올바른 레지스터 크기 사용하기

데이터 주소는 이미 생성되어 있습니다. 여러분은 MOV 인스트럭션만 작성하면 됩니다.

챌린지

다음 작업들을 순서대로 완료하세요. 각 작업에 대해 어셈블리 한 줄씩 작성하세요.

이미 제공된 데이터:

  • num1 — 값 8을 포함 (1바이트)
  • num2 — 값 3을 포함 (1바이트)
  • result — 빈 공간 (1바이트)

작업:

  1. num1의 값을 al로 로드하세요
  2. num2의 값을 bl로 로드하세요
  3. bl의 값을 cl로 복사하세요
  4. al의 값을 result에 저장하세요

코드 실행 후:

  • al은 8을 포함해야 합니다
  • bl은 3을 포함해야 합니다
  • cl은 3을 포함해야 합니다
  • result 메모리는 8을 포함해야 합니다

직접 해보기

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:
    ; 학생의 코드가 먼저 실행됩니다
    
    %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

기초의 모든 레슨