MOV מיידי
חלק מהיחידה יסודות במסלול ה-Assembly של Coddy. שיעור 15 מתוך 45.
הצורה הפשוטה ביותר של MOV היא MOV immediate. „מיידי” פירושו שהערך נכתב ישירות בתוך ההוראה עצמה.
תחביר:
mov register, valueהערך מועתק אל האוגר.
דוגמאות:
| הוראה | מה היא עושה |
|---|---|
mov rax, 5 | מעתיקה את המספר 5 אל rax |
mov rbx, 100 | מעתיקה את המספר 100 אל rbx |
mov rcx, 0 | מעתיקה את המספר 0 אל rcx |
הקוד הזה לא עושה שום דבר שנראה לעין (אין עדיין פלט), אבל הוא מכניס בהצלחה מספרים לאוגרים.
הערה: תראו את ההשפעה של הוראות MOV האלה בשיעורים מאוחרים יותר, כשתלמדו להדפיס או לנפות שגיאות. לעת עתה, רק דעו שהמספרים מאוחסנים באוגרים.
כללים חשובים:
| כלל | הסבר |
|---|---|
| הערך חייב להתאים לגודל האוגר | rax יכול להכיל מספרים גדולים מאוד (עד 2⁶⁴-1) |
| הערך מועתק ולא מועבר | המספר המקורי עדיין קיים (זה רק מספר) |
| אוגרים בצד שמאל | mov rax, 5 נכון. mov 5, rax שגוי |
אתגר
כתבו שורת קוד אחת באסמבלי עבור כל משימה:
- הכניסו את המספר 5 לאוגר
rax. - הכניסו את המספר 7 לאוגר
rbx. - הכניסו את המספר 3 לאוגר
rcx.
נסו בעצמכם
section .data
msg_rax db 'rax = '
msg_rax_len equ $ - msg_rax
msg_rbx db 'rbx = '
msg_rbx_len equ $ - msg_rbx
msg_rcx db 'rcx = '
msg_rcx_len equ $ - msg_rcx
section .bss
digit resb 1
section .text
global _start
_start:
%include "solution.asm"
; שמור את הערכים
mov r12, rax
mov r13, rbx
mov r14, rcx
; הדפס "rax = "
mov rax, 1
mov rdi, 1
mov rsi, msg_rax
mov rdx, msg_rax_len
syscall
; הדפס את הערך של rax
mov rax, r12
add rax, 48
mov [digit], al
mov rax, 1
mov rdi, 1
mov rsi, digit
mov rdx, 1
syscall
; הדפס "rbx = "
mov rax, 1
mov rdi, 1
mov rsi, msg_rbx
mov rdx, msg_rbx_len
syscall
; הדפס את הערך של rbx
mov rax, r13
add rax, 48
mov [digit], al
mov rax, 1
mov rdi, 1
mov rsi, digit
mov rdx, 1
syscall
; הדפס "rcx = "
mov rax, 1
mov rdi, 1
mov rsi, msg_rcx
mov rdx, msg_rcx_len
syscall
; הדפס את הערך של rcx
mov rax, r14
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השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
תרגלו בעצמכם: Assembly אונליין