الكود والشرح

  • أمثلة برامج أسمبلي

    أمثلة برامج أسمبلي

    لغة الأسمبلي هي لغة منخفضة المستوى تستخدم لبرمجة الحواسيب وترمز لتعليمات الأوامر المباشرة للمعالج. تستفيد لغة الأسمبلي من تعزيز كفاءة وسرعة الأداء وتوفر تحكمًا دقيقًا في الموارد الحاسوبية. تعتبر برامج الأسمبلي مفيدة في تطوير أنظمة التشغيل وبرامج النظم الصغيرة المضمنة.

    أمثلة برامج أسمبلي:

    1. برنامج الطباعة البسيط:

    
    section .data
        hello db 'Hello, World!', 0
    section .text
    global _start
    
    _start:
    ; Write the message to stdout
    mov eax, 4
    mov ebx, 1
    mov ecx, hello
    mov edx, 13
    int 0x80
    
    arduino
    Copy code
    ; Exit the program
    mov eax, 1
    xor ebx, ebx
    int 0x80
    

    يقوم هذا البرنامج بطباعة النص “Hello, World!” على الشاشة.

    2. برنامج الجمع:

    
    section .data
        num1 db 5
        num2 db 7
        result db 0
    section .text
    global _start
    
    _start:
    ; Load the values of num1 and num2 into registers
    mov al, [num1]
    mov bl, [num2]
    
    sql
    Copy code
    ; Add the values and store the result in the result variable
    add al, bl
    mov [result], al
    
    ; Exit the program
    mov eax, 1
    xor ebx, ebx
    int 0x80
    

    يقوم هذا البرنامج بجمع الأعداد 5 و 7 وتخزين النتيجة في متغير النتيجة.

    3. برنامج حساب مجموع الأعداد:

    
    section .data
        numbers db 1, 2, 3, 4, 5
        count equ $ - numbers
        sum db 0
    section .text
    global _start
    
    _start:
    ; Initialize the sum to 0
    mov al, 0
    mov [sum], al
    
    python
    Copy code
    ; Calculate the sum of the numbers
    mov bl, [numbers]
    mov ecx, count
    
    loop_start:
        add al, bl
        inc bl
        loop loop_start
    
    ; Store the sum in the sum variable
    mov [sum], al
    
    ; Exit the program
    mov eax, 1
    xor ebx, ebx
    int 0x80
    

    يقوم هذا البرنامج بحساب مجموع الأعداد 1, 2, 3, 4, 5 وتخزين النتيجة في متغير الجمع.

    4. برنامج طباعة التسلسل العددي:

    
    section .data
        counter db 1
    section .text
    global _start
    
    _start:
    ; Print the numbers from 1 to 10
    mov al, [counter]
    
    vbnet
    Copy code
    loop_start:
        ; Write the number to stdout
        mov eax, 4
        mov ebx, 1
        mov ecx, counter
        mov edx, 1
        int 0x80
    
        ; Increment the counter
        inc byte [counter]
    
        ; Check if the counter reaches 11
        cmp byte [counter], 11
        jnz loop_start
    
    ; Exit the program
    mov eax, 1
    xor ebx, ebx
    int 0x80
    

    يقوم هذا البرنامج بطباعة التسلسل العددي من 1 إلى 10 على الشاشة.

    5. برنامج التحقق من توافق الأعداد:

    
    section .data
        number1 dd 10.5
        number2 dd 7.2
        result db 0
    section .text
    global _start
    
    _start:
    ; Load the values of number1 and number2 into registers
    fld dword [number1]
    fld dword [number2]
    
    sql
    Copy code
    ; Compare the values and store the result in the result variable
    fcomip st1, st0
    fstp st0
    mov al, 0
    jbe numbers_equal
    mov al, 1
    numbers_equal:
    mov [result], al
    
    arduino
    Copy code
    ; Exit the program
    mov eax, 1
    xor ebx, ebx
    int 0x80
    

    يقوم هذا البرنامج بالتحقق من توافق الأعداد 10.5 و 7.2 ويخزن النتيجة في متغير النتيجة.

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر