У нас вы можете посмотреть бесплатно Почему CALLSTACK так важен? Учебник по ассемблеру для начинающих | Программирование архитектуры x... или скачать в максимальном доступном качестве, видео которое было загружено на ютуб. Для загрузки выберите вариант из формы ниже:
Если кнопки скачивания не
загрузились
НАЖМИТЕ ЗДЕСЬ или обновите страницу
Если возникают проблемы со скачиванием видео, пожалуйста напишите в поддержку по адресу внизу
страницы.
Спасибо за использование сервиса ClipSaver.ru
;########################
;# КОД ДЛЯ КОПИРОВАНИЯ И ВСТАВКИ:
;#######################
.intel_syntax noprefix
.global _start
.text
_start:
lea r15, [resume_here]
jmp print_hello
resume_here:
jmp exit
exit:
mov rax, 60 ;# код системного вызова для выхода
xor rdi, rdi ;# обнуление rdi
syscall ;# выполнение системного вызова
print_hello:
mov rax, 1 ;# запись
mov rdi, 1 ;# вывод на терминал
lea rsi, [hello] ;# начало строки
lea rdx, [hello_len] ;# длина строки
syscall ;# выполнить/вызвать ядро
lea r15, [resume_hello]
jmp print_goodbye
resume_hello:
jmp r15
print_goodbye:
mov rax, 1
mov rdi, 1
lea rsi, [goodbye]
lea rdx, [goodbye_len]
системный вызов
jmp r15
.data
hello: .ascii "привет, мир!
"
hello_len = . - hello
goodbye: .ascii "до свидания!
"
goodbye_len = . - до свидания
;# КОНЕЦ КОДА
;########################
Ссылка на эмулятор: https://x64.halb.it
Следующее видео: • IF STATEMENTS & Loops in Assembly | Condit...
ПЕРВОЕ видео курса: • Learn Assembly For Beginners | Introductio...
ПРЕДЫДУЩЕЕ видео курса: • How to Make Functions in Assembly: The JMP...
00:00 Почему функции не работают без стека вызовов?
01:09 Бесконечный цикл!
02:24 Как работают стеки вызовов
5:54 Проблема бесконечного цикла в коде
7:27 Кодирование стека вызовов на ассемблере
18:13 Использование настоящего стека вызовов
22:30 Команды стека: PUSH и POP