kvs/jcc/короткие_переходы.квс
2025-10-29 13:20:30 +03:00

102 lines
4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.глобал _start
.текст
_start:
; Подготовка: раикс = 5, рбикс = 5 → сравнение → ZF=1
переместить_имм раикс, 5
переместить_имм рбикс, 5
сравнить раикс, рбикс
; короткий_переход_если_равно
короткий_переход_если_равно метка_je
; Ошибка (не должно сработать)
переместить_имм рдиай, 1
переместить_имм раикс, 60
вызов_системы
метка_je:
переместить_имм раикс, 10
переместить_имм рбикс, 20
сравнить раикс, рбикс
; короткий_переход_если_меньше
короткий_переход_если_меньше метка_jl
переместить_имм рдиай, 2
переместить_имм раикс, 60
вызов_системы
метка_jl:
; короткий_переход_если_больше
переместить_имм раикс, 30
переместить_имм рбикс, 20
сравнить раикс, рбикс
короткий_переход_если_больше метка_jg
переместить_имм рдиай, 3
переместить_имм раикс, 60
вызов_системы
метка_jg:
; короткий_переход_если_меньше_или_равно
переместить_имм раикс, 15
переместить_имм рбикс, 15
сравнить раикс, рбикс
короткий_переход_если_меньше_или_равно метка_jle
переместить_имм рдиай, 4
переместить_имм раикс, 60
вызов_системы
метка_jle:
; короткий_переход_если_больше_или_равно
переместить_имм раикс, 100
переместить_имм рбикс, 50
сравнить раикс, рбикс
короткий_переход_если_больше_или_равно метка_jge
переместить_имм рдиай, 5
переместить_имм раикс, 60
вызов_системы
метка_jge:
; короткий_переход_если_перенос
переместить_имм раикс, 5
переместить_имм рбикс, 10
сравнить раикс, рбикс
короткий_переход_если_перенос метка_jc
переместить_имм рдиай, 6
переместить_имм раикс, 60
вызов_системы
метка_jc:
; короткий_переход_если_нет_переноса
переместить_имм раикс, 10
переместить_имм рбикс, 5
сравнить раикс, рбикс
короткий_переход_если_нет_переноса метка_jnc
переместить_имм рдиай, 7
переместить_имм раикс, 60
вызов_системы
метка_jnc:
; короткий_переход_если_неравно
переместить_имм раикс, 1
переместить_имм рбикс, 2
сравнить раикс, рбикс
короткий_переход_если_неравно метка_jne
переместить_имм рдиай, 8
переместить_имм раикс, 60
вызов_системы
метка_jne:
; короткий_переход (безусловный)
короткий_переход метка_done
; Ошибка — сюда не должны попасть
переместить_имм рдиай, 9
переместить_имм раикс, 60
вызов_системы
метка_done:
; Успешный выход
переместить_имм рдиай, 0
переместить_имм раикс, 60
вызов_системы