; сложный тест0.квс ; Тест: один переход и один мусорный сегмент .текст .глобал _start _start: ; Инициализация регистра переместить_имм раикс, 10 ; rax = 10 (не ноль) ; ПЕРВЫЙ ПЕРЕХОД: короткий_переход_если_не_ноль ; ZF=0 (так как rax=10), значит jnz сработает ; Прыгаем к метке 'вывести_сообщение', пропуская мертвый_код_1 короткий_переход_если_не_ноль вывести_сообщение ; --- МЕРТВЫЙ КОД 1 --- ; Этот код НЕ должен выполниться переместить_имм раикс, 1 переместить_имм рдиай, 1 переместить_имм рсиай, msg_dead_1 переместить_имм рдикс, len_msg_dead_1 вызов_системы ; --------------------- ; --- КОД ОШИБКИ (на всякий случай) --- ; Если мы сюда попали, значит переход НЕ сработал (ошибка) переместить_имм раикс, 1 переместить_имм рдиай, 1 переместить_имм рсиай, msg_fail переместить_имм рдикс, len_msg_fail вызов_системы ; --- ВЫВОД ЦЕЛЕВОГО СООБЩЕНИЯ --- вывести_сообщение: переместить_имм раикс, 1 переместить_имм рдиай, 1 переместить_имм рсиай, msg_success переместить_имм рдикс, len_msg_success вызов_системы ; --- ЗАВЕРШЕНИЕ --- переместить_имм раикс, 60 переместить_имм рдиай, 0 вызов_системы .данные ; Перемешиваем строки и константы msg_success: .строка_нуль "Успех!\n" .константа len_msg_success = 13 msg_dead_1: .строка_нуль "Мертвый код 1!" .константа len_msg_dead_1 = 14 msg_fail: .строка_нуль "Ошибка: переход не сработал!" .константа len_msg_fail = 28