section .data
    char_A      db 'A'
    msg_hello   db "Hello", 0
    msg_hi      db "Hi!", 0xa
    len_hi      equ $ - msg_hi

section .bss
    digit_buf   resb 1

section .text
    global _start


; ЗАДАЧА 1

task_1:
    mov rax, 1
    mov rdi, 1
    mov rsi, char_A
    mov rdx, 1
    syscall
    ret


; ЗАДАЧА 2

task_2:
    mov rax, 7
    add al, 48
    mov [digit_buf], al

    mov rax, 1
    mov rdi, 1
    mov rsi, digit_buf
    mov rdx, 1
    syscall
    ret


; ЗАДАЧА 3

task_3:
    mov rax, 3
    add rax, 4
    add rax, 5
    ret


; ЗАДАЧА 4

task_4:
    mov rax, 7
    mov rbx, 6
    imul rax, rbx
    ret


; ЗАДАЧА 5

task_5:
    mov rax, 15
    mov rbx, 27
    cmp rax, rbx
    jge .done
    mov rax, rbx
.done:
    ret


; ЗАДАЧА 6

task_6:
    mov rax, 13
    shl rax, 1
    ret


; ЗАДАЧА 7

task_7:
    xor rax, rax
    mov rcx, 10
.loop:
    add rax, rcx
    sub rcx, 2
    jnz .loop
    ret


; ЗАДАЧА 8

task_8:
    mov rsi, msg_hello
    xor rcx, rcx
.count_loop:
    cmp byte [rsi + rcx], 0
    je .done
    inc rcx
    jmp .count_loop
.done:
    mov rax, rcx
    ret


; ЗАДАЧА 9

task_9:
    mov rcx, 2
.print_loop:
    push rcx
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_hi
    mov rdx, len_hi
    syscall
    pop rcx
    dec rcx
    jnz .print_loop
    ret


; ЗАДАЧА 10

task_10:
    mov rax, 2
    mov rcx, 4
.pow_loop:
    shl rax, 1
    dec rcx
    jnz .pow_loop
    ret


; ТОЧКА ВХОДА

_start:
    xor rax, rax        ; по умолчанию код выхода = 0

    ; --- Задачи с выводом на экран ---
    call task_1         ; выведет A
    ; call task_2       ; выведет 7
    ; call task_9       ; выведет Hi! дважды

    ; --- Задачи с проверкой через Exit code (результат попадет в rax) ---
    ; call task_3       ; Exit code: 12
    ; call task_4       ; Exit code: 42
    ; call task_5       ; Exit code: 27
    ; call task_6       ; Exit code: 26
    ; call task_7       ; Exit code: 30
    ; call task_8       ; Exit code: 5
    ; call task_10      ; Exit code: 32

    ; Завершение программы с кодом из rax
    mov rdi, rax
    mov rax, 60
    syscall

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: