Я ненавижу арм64 чисто иза сускалов
Мне одному так кажется что сускалы уебанские?:bloberika_blush:
Для примера возьмем ПРОСТУЮ ПРОГРАММУ на arm64 (для linux)
global _start
section .text
_start:
mov x8, 64
mov x0, 1
ldr x1, =msg
mov x2, len
svc 0
mov x8, 93
mov x0, 0
svc 0
section .data
msg: db "Hello, world!", 10
len: equ $ - msgВы нихуя не поняли?
Я тоже:noooo:
А теперь для x86_64:
global _start
section .text
_start:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, len
syscall
mov rax, 60
mov rdi, 0
syscall
section .data
msg: db "Hello, world!", 10
len: equ $ - msgТут я уже что то могу разобрать!:cat_is_blob_and_melt:
rax это номер сускала, rdi это файловый дескриптор (если я правильно помню) куда писать, rsi это сообщение, rdx это длина (он делает вид что типа умный)
А с 60 сускалом история другая, здесь rdi это с каким кодом завершить программу.
Хотя программу можно сократить до:
global _start
section .text
_start:
mov rax, 1
mov rdi, 1
mov rsi, "Hello, world!"
mov rdx, 10
syscall
mov rax, 60
mov rdi, 0
syscallЕсли я правильно помню
Но вы скажите:
"Бля, пиши на питоне, си, си++ или другом языке где не надо думать 'А под каким блять номером сускалл для открытия файла?'"
Ну тут вы будете правы, я просто шизик.
КСТАТИ, НОМЕР СУСКАЛА ДЛЯ ОТКРЫТИЯ ЭТО 2!!!:catbonk:
Мне одному так кажется что сускалы уебанские?:bloberika_blush:
Для примера возьмем ПРОСТУЮ ПРОГРАММУ на arm64 (для linux)
global _start
section .text
_start:
mov x8, 64
mov x0, 1
ldr x1, =msg
mov x2, len
svc 0
mov x8, 93
mov x0, 0
svc 0
section .data
msg: db "Hello, world!", 10
len: equ $ - msgВы нихуя не поняли?
Я тоже:noooo:
А теперь для x86_64:
global _start
section .text
_start:
mov rax, 1
mov rdi, 1
mov rsi, msg
mov rdx, len
syscall
mov rax, 60
mov rdi, 0
syscall
section .data
msg: db "Hello, world!", 10
len: equ $ - msgТут я уже что то могу разобрать!:cat_is_blob_and_melt:
rax это номер сускала, rdi это файловый дескриптор (если я правильно помню) куда писать, rsi это сообщение, rdx это длина (он делает вид что типа умный)
А с 60 сускалом история другая, здесь rdi это с каким кодом завершить программу.
Хотя программу можно сократить до:
global _start
section .text
_start:
mov rax, 1
mov rdi, 1
mov rsi, "Hello, world!"
mov rdx, 10
syscall
mov rax, 60
mov rdi, 0
syscallЕсли я правильно помню
Но вы скажите:
"Бля, пиши на питоне, си, си++ или другом языке где не надо думать 'А под каким блять номером сускалл для открытия файла?'"
Ну тут вы будете правы, я просто шизик.
КСТАТИ, НОМЕР СУСКАЛА ДЛЯ ОТКРЫТИЯ ЭТО 2!!!:catbonk:
1