Menu
CoddyTech

MOV מזיכרון לאוגר

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

עד עכשיו העברת מספרים ישירות לאוגרים (ערך מיידי) והעתקת ערכים בין אוגרים. עכשיו תלמד איך לטעון נתונים מתוך הזיכרון לתוך אוגר.

למה זה חשוב:

זכור מפרק 0: הוראה יכולה להשתמש באופרנד זיכרון אחד לכל היותר, ואוגרים מהירים בהרבה מזיכרון, לכן טוענים את הערכים שעובדים איתם לתוך אוגרים. כך עושים זאת.

תחביר:

mov register, [address]

הסוגריים [ ] פירושם: "עבור לכתובת הזיכרון הזאת וקבל את הערך המאוחסן בה."

חשוב על זה כך:

דמיין שבכתובת הזיכרון number יש קופסה. בתוך הקופסה יש ערך, למשל המספר 5. כשכותבים:

mov al, [number]    ; Load the value from memory address "number" into al

אתה אומר למעבד: "גש לתיבה שנקראת number, קח את הערך שנמצא בתוכה (במקרה הזה 5) והעתק אותו לאוגר al."

לאחר ביצוע ההוראה הזאת, הערך 5 מאוחסן כעת ב־al. הערך המקורי שבתיבה בכתובת number נשאר שם. הוא לא מוסר.

כללים חשובים:

כללהסבר
המקור חייב להיות כתובת זיכרון[label] או [address]
הסוגריים המרובעים נדרשיםללא הסוגריים, myNumber היא הכתובת, לא הערך
הגודל חייב להתאיםאם הזיכרון מאחסן בית, יש להשתמש ב-al (לא ב-rax)

טעות נפוצה:

; שגוי: ללא סוגריים מרובעים, myNumber הוא הכתובת, לא הערך
mov al, myNumber

; נכון: טוען את הערך המאוחסן ב־myNumber
mov al, [myNumber]
challenge icon

אתגר

כתוב שורה אחת של אסמבלי כדי לטעון את הערך מכתובת הזיכרון value אל האוגר al.

נסו בעצמכם

section .data
    msg db 'al = '
    msg_len equ $ - msg

section .bss
    digit resb 1

section .text
    global _start

_start:
    ; הקוד של התלמיד רץ ראשון (טוען ערך לתוך al)
    
    %include "solution.asm"
    
    ; שמור את הערך מ-al
    mov r12, rax
    
    ; הדפס "al = "
    mov rax, 1
    mov rdi, 1
    mov rsi, msg
    mov rdx, msg_len
    syscall
    
    ; הדפס את הערך ב-al
    mov rax, r12
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; צא
    mov rax, 60
    mov rdi, 0
    syscall
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

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

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