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
|
|||
|
|
вызов_системы
|