kvs/jcc/короткие_переходы.квс

102 lines
4 KiB
Plaintext
Raw Normal View History

2025-10-29 13:20:30 +03:00
.глобал _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
вызов_системы