Add files via upload
This commit is contained in:
commit
1cd040ef8e
15
привет.квс
Normal file
15
привет.квс
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
.глобал _start
|
||||||
|
.текст
|
||||||
|
_start:
|
||||||
|
переместить_имм рвх, 1
|
||||||
|
переместить_имм рди, 1
|
||||||
|
переместить_имм рис, привет_мир
|
||||||
|
переместить_имм рдх, длина_строки
|
||||||
|
вызов_системы
|
||||||
|
переместить_имм рвх, 60
|
||||||
|
переместить_имм рди, 0
|
||||||
|
вызов_системы
|
||||||
|
.данные
|
||||||
|
привет_мир:
|
||||||
|
.строка "Привет мир!\n"
|
||||||
|
.константа длина_строки 23
|
||||||
153
тест.квс
Normal file
153
тест.квс
Normal file
|
|
@ -0,0 +1,153 @@
|
||||||
|
.текст
|
||||||
|
.глобал _start
|
||||||
|
|
||||||
|
_start:
|
||||||
|
; ========== БАЗОВЫЕ ИНСТРУКЦИИ ==========
|
||||||
|
переместить раикс, рбикс
|
||||||
|
переместить рсипи, рдиай
|
||||||
|
переместить р8, р9
|
||||||
|
|
||||||
|
переместить_имм раикс, 0x12345678
|
||||||
|
переместить_имм еаикс, 0x1234
|
||||||
|
переместить_имм аикс, 0x12
|
||||||
|
переместить_имм ал, 0x42
|
||||||
|
|
||||||
|
прибавить раикс, рбикс
|
||||||
|
вычесть рсипи, рдиай
|
||||||
|
|
||||||
|
вызвать some_function
|
||||||
|
вернуться
|
||||||
|
|
||||||
|
вызов_системы
|
||||||
|
|
||||||
|
; ========== СРАВНЕНИЯ И ПЕРЕХОДЫ ==========
|
||||||
|
сравнить раикс, рбикс
|
||||||
|
сравнить32 еаикс, ебикс
|
||||||
|
сравнить_байт ал, бл
|
||||||
|
|
||||||
|
переход loop
|
||||||
|
переход_если_равно loop
|
||||||
|
переход_если_неравно loop
|
||||||
|
переход_если_ноль loop
|
||||||
|
переход_если_не_ноль loop
|
||||||
|
переход_если_перенос loop
|
||||||
|
переход_если_нет_переноса loop
|
||||||
|
переход_если_меньше loop
|
||||||
|
переход_если_больше loop
|
||||||
|
переход_если_меньше_или_равно loop
|
||||||
|
переход_если_больше_или_равно loop
|
||||||
|
;короткий_переход loop
|
||||||
|
|
||||||
|
; ========== АРИФМЕТИКА ==========
|
||||||
|
прибавить_непосредственно раикс, 100
|
||||||
|
вычесть_непосредственно рбикс, 50
|
||||||
|
|
||||||
|
увеличить раикс
|
||||||
|
уменьшить рбикс
|
||||||
|
увеличить ал
|
||||||
|
уменьшить бл
|
||||||
|
|
||||||
|
умножить раикс
|
||||||
|
умножить_знаковое рбикс
|
||||||
|
разделить рсикс
|
||||||
|
разделить_знаковое рдикс
|
||||||
|
|
||||||
|
отрицать раикс
|
||||||
|
инвертировать рбикс
|
||||||
|
|
||||||
|
; ========== ЛОГИЧЕСКИЕ ОПЕРАЦИИ ==========
|
||||||
|
и раикс, рбикс
|
||||||
|
или рсипи, рдиай
|
||||||
|
исключающее_или р8, р9
|
||||||
|
|
||||||
|
проверить раикс, рбикс
|
||||||
|
очистить раикс
|
||||||
|
|
||||||
|
; ========== СДВИГИ И ВРАЩЕНИЯ ==========
|
||||||
|
;сдвиг_влево раикс, 4
|
||||||
|
;сдвиг_вправо рбикс, 2
|
||||||
|
;сдвиг_арифметический_влево рсикс, 1
|
||||||
|
;сдвиг_арифметический_вправо рдикс, 3
|
||||||
|
;вращать_влево р8, 5
|
||||||
|
;вращать_вправо р9, 6
|
||||||
|
|
||||||
|
; ========== СТЕК И ПАМЯТЬ ==========
|
||||||
|
втолкнуть раикс
|
||||||
|
втолкнуть рбикс
|
||||||
|
втолкнуть_из_памяти [рсипи]
|
||||||
|
|
||||||
|
вытолкнуть рдиай
|
||||||
|
вытолкнуть_в_память [рбипи]
|
||||||
|
|
||||||
|
загрузить раикс, [рсипи]
|
||||||
|
сохранить [рдиай], рбикс
|
||||||
|
|
||||||
|
загрузить_адрес раикс, some_data
|
||||||
|
|
||||||
|
; ========== 8-БИТНЫЕ ОПЕРАЦИИ ==========
|
||||||
|
переместить_имм ал, 0xAA
|
||||||
|
прибавить_байт ал, бл
|
||||||
|
вычесть_байт бл, кл
|
||||||
|
сравнить_байт дл, бл
|
||||||
|
сохранить_байт [раикс], ал
|
||||||
|
сохранить_в_адрес [рбикс], ал
|
||||||
|
|
||||||
|
; ========== РАСШИРЕНИЕ РЕГИСТРОВ ==========
|
||||||
|
переместить_с_нулями раикс, ал
|
||||||
|
переместить_со_знаком рбикс, бл
|
||||||
|
|
||||||
|
; ========== ОБМЕН ==========
|
||||||
|
обменять раикс, рбикс
|
||||||
|
;обменять_с_памятью [рсипи], рдиай
|
||||||
|
|
||||||
|
; ========== ФЛАГИ ==========
|
||||||
|
установить_перенос
|
||||||
|
сбросить_перенос
|
||||||
|
установить_направление
|
||||||
|
сбросить_направление
|
||||||
|
втолкнуть_флаги
|
||||||
|
вытолкнуть_флаги
|
||||||
|
|
||||||
|
; ========== СТРОКОВЫЕ ОПЕРАЦИИ ==========
|
||||||
|
переместить_байт
|
||||||
|
переместить_слово
|
||||||
|
сравнить_байты
|
||||||
|
сканировать_байт
|
||||||
|
|
||||||
|
; ========== СПЕЦИАЛЬНЫЕ КОМАНДЫ ==========
|
||||||
|
идентифицировать_процессор
|
||||||
|
прочитать_счетчик
|
||||||
|
получить_управление
|
||||||
|
отладка
|
||||||
|
прервать 0x80
|
||||||
|
|
||||||
|
; ========== ВВОД-ВЫВОД ==========
|
||||||
|
ввод_байта 0x60
|
||||||
|
вывод_байта 0x61
|
||||||
|
|
||||||
|
; ========== ЦИКЛЫ ==========
|
||||||
|
цикл loop
|
||||||
|
|
||||||
|
; ========== .БАЙТ ДИРЕКТИВА ==========
|
||||||
|
.байт 0x90 0x90 0x90 ; NOP-ы для выравнивания
|
||||||
|
|
||||||
|
loop:
|
||||||
|
; Метка для переходов
|
||||||
|
нет_операции
|
||||||
|
остановить
|
||||||
|
|
||||||
|
some_function:
|
||||||
|
вернуться
|
||||||
|
|
||||||
|
.данные
|
||||||
|
some_data: .строка "Test data"
|
||||||
|
;constant_value: .константа 0xDEADBEEF
|
||||||
|
|
||||||
|
; ========== РАЗНЫЕ ТИПЫ ДАННЫХ ==========
|
||||||
|
byte_array: .байт 0x01 0x02 0x03 0x04
|
||||||
|
string_data: .строка_нуль "Null terminated"
|
||||||
|
wide_string: .строка "Wide string test"
|
||||||
|
|
||||||
|
; Глобальная константа
|
||||||
|
;.глобал global_var
|
||||||
|
;global_var: .константа 42
|
||||||
Loading…
Reference in a new issue