Menu
Coddy logo textTech

סיכום: אתגר MOV

חלק מהיחידה יסודות במסלול ה-Assembly של Coddy. שיעור 22 מתוך 45.

challenge icon

אתגר

האתגר הזה יבחן את ההבנה שלך בנושאים הבאים:

  • טעינת ערכים מהזיכרון
  • שמירת ערכים בזיכרון
  • העתקה בין אוגרים
  • שימוש בגודל האוגר הנכון

אתגר

השלם את המשימות הבאות לפי הסדר. כתוב שורת אסמבלי אחת עבור כל משימה.

הנתונים שסופקו מראש:

  • num1: מכיל את הערך 8 (בית אחד)
  • num2: מכיל את הערך 3 (בית אחד)
  • result: מקום ריק (בית אחד)

משימות:

  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

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: Assembly אונליין