112 lines
4.1 KiB
Plaintext
112 lines
4.1 KiB
Plaintext
.глобал _start
|
||
.текст
|
||
|
||
_start:
|
||
; ===== ГРУППА 1: Без операндов (реализованные) =====
|
||
нет_операции
|
||
вызов_системы
|
||
вернуться
|
||
|
||
; ===== ГРУППА 2: PUSH/POP =====
|
||
втолкнуть раикс
|
||
втолкнуть р8
|
||
вытолкнуть раикс
|
||
вытолкнуть р8
|
||
|
||
; ===== ГРУППА 3: Регистр-регистр =====
|
||
переместить раикс, рбикс
|
||
переместить р8, р9
|
||
|
||
сравнить раикс, рбикс
|
||
сравнить р8, р9
|
||
|
||
проверить раикс, рбикс
|
||
проверить р8, р9
|
||
|
||
прибавить раикс, рбикс
|
||
прибавить р8, р9
|
||
|
||
вычесть раикс, рбикс
|
||
вычесть р8, р9
|
||
|
||
и раикс, рбикс
|
||
и р8, р9
|
||
|
||
или раикс, рбикс
|
||
или р8, р9
|
||
|
||
исключающее_или раикс, рбикс
|
||
исключающее_или р8, р9
|
||
|
||
; ===== ГРУППА 4: INC/DEC =====
|
||
увеличить раикс
|
||
увеличить р8
|
||
увеличить еаикс
|
||
|
||
уменьшить раикс
|
||
уменьшить р8
|
||
уменьшить еаикс
|
||
|
||
; ===== ГРУППА 5: NOT/NEG =====
|
||
инвертировать раикс
|
||
инвертировать еаикс
|
||
отрицать раикс
|
||
отрицать еаикс
|
||
|
||
; ===== ГРУППА 6: MUL/DIV =====
|
||
переместить_имм раикс, 10
|
||
переместить_имм рбикс, 5
|
||
умножить рбикс
|
||
|
||
переместить_имм раикс, 100
|
||
переместить_имм рбикс, 7
|
||
разделить рбикс
|
||
|
||
умножить_знаковое рбикс
|
||
разделить_знаковое рбикс
|
||
|
||
; ===== ГРУППА 7: Битовые операции =====
|
||
сдвиг_влево раикс, 2
|
||
сдвиг_вправо раикс, 2
|
||
сдвиг_арифметический_вправо раикс, 2
|
||
вращать_влево раикс, 2
|
||
вращать_вправо раикс, 2
|
||
|
||
; ===== ГРУППА 8: Переходы =====
|
||
переход метка_длинная
|
||
|
||
переход_если_равно метка_длинная
|
||
переход_если_неравно метка_длинная
|
||
переход_если_меньше метка_длинная
|
||
переход_если_больше метка_длинная
|
||
переход_если_меньше_или_равно метка_длинная
|
||
переход_если_больше_или_равно метка_длинная
|
||
переход_если_перенос метка_длинная
|
||
переход_если_нет_переноса метка_длинная
|
||
|
||
короткий_переход метка_короткая
|
||
|
||
короткий_переход_если_равно метка_короткая
|
||
короткий_переход_если_неравно метка_короткая
|
||
короткий_переход_если_меньше метка_короткая
|
||
короткий_переход_если_больше метка_короткая
|
||
короткий_переход_если_меньше_или_равно метка_короткая
|
||
короткий_переход_если_больше_или_равно метка_короткая
|
||
короткий_переход_если_перенос метка_короткая
|
||
короткий_переход_если_нет_переноса метка_короткая
|
||
|
||
цикл метка_короткая
|
||
вызвать метка_длинная
|
||
|
||
метка_длинная:
|
||
нет_операции
|
||
нет_операции
|
||
нет_операции
|
||
|
||
метка_короткая:
|
||
нет_операции
|
||
|
||
; Выход
|
||
переместить_имм раикс, 60
|
||
переместить_имм рдикс, 0
|
||
вызов_системы |