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

MOV المباشرة

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

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

الصيغة:

mov register, value

تُنسخ القيمة إلى السجل.

أمثلة:

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

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

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

قواعد هامة:

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

التحدي

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

  1. ضع الرقم 5 في المسجل rax.
  2. ضع الرقم 7 في المسجل rbx.
  3. ضع الرقم 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
quiz iconاختبر نفسك

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

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