Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

MOV المباشرة

جزء من قسم الأساسيات في رحلة Assembly على Coddy. الدرس 15 من 45.

أبسط شكل من MOV immediate هو MOV immediate. تعني كلمة "Immediate" أن القيمة مكتوبة مباشرةً في التعليمة نفسها.

البنية:

mov register, value

يتم نسخ value إلى register.

أمثلة:

التعليمةما الذي تفعله
mov rax, 5تنسخ number 5 إلى rax
mov rbx, 100تنسخ number 100 إلى rbx
mov rcx, 0تنسخ number 0 إلى rcx

لا يفعل هذا الكود شيئًا مرئيًا (لا يوجد ناتج حتى الآن)، لكنه يضع الأرقام بنجاح في السجلات.

ملاحظة: سترى تأثير تعليمات MOV هذه في دروس لاحقة عندما تتعلم الطباعة أو تصحيح الأخطاء. في الوقت الحالي، اعلم فقط أن الأرقام مخزّنة في السجلات.

قواعد مهمة:

القاعدةالشرح
يجب أن تلائم القيمة registerيمكن لـ rax الاحتفاظ بأعداد كبيرة جدًا (حتى 2⁶⁴-1)
تُنسخ القيمة ولا تُنقللا يزال number الأصلي موجودًا (إنه مجرد number)
توجد register على اليسارmov rax, 5 صحيح. mov 5, rax خطأ
challenge icon

التحدي

اكتب سطرًا واحدًا من تعليمات assembly لكل مهمة:

  1. ضع العدد 5 في rax register.
  2. ضع العدد 7 في rbx register.
  3. ضع العدد 3 في rcx register.

جرّب بنفسك

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
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Assembly