[Ru]
+------------------------------------------------------------------------------+
|                                 Проект gasm                                  |
+------------------------------------------------------------------------------+
|                            Ассемблер для Gentee                              |
+------------------------------------------------------------------------------+
| Алексей Кривоногов ( gentee )                                                |
| Сергей Курганов    ( pretorian )                                             |
+------------------------------------------------------------------------------+
Файлы проекта:
 test.asm - набор ассемблерных инструкций для компиляции
 compl.g  - компилятор ассемблерных инструкций в машинный код
 lexasm.g - константы и данные gasm для синтаксического анализатора
 main.g   - пример разбора команд ассемблера синтаксическим анализатором
 gasm.gt  - лексическая таблица gasm для синтаксического анализатора
 lexasm.lex - unknown
 readme.txt - этот файл

                              
...gasm...

reg32 - регистры eax,ebx,ecx,edx,esp,ebp,esi,edi
num32 - 32 разрядное число

Разбираемые команды:

NOP - пустая команда;

CLC - установка флага CF=0;
STC - установка флага CF=1;
CLD - установка флага DF=0;
STD - установка флага DF=1;
CLI - установка флага IF=0;
STI - установка флага IF=1;

LAHF - загрузка регистра AH из регистра флагов: устанавливает биты 7, 6, 4, 2 и
       0 по значениям флагов SF ZF AF PF CF;

SAHF - запись регистра AH в регистр флагов: устанавливает флаги SF ZF AF PF CF
       по битам 7, 6, 4, 2 и 0 регистра AH;

INC   reg32 - увеличить на 1
DEC   reg32 - уменьшить на 1

PUSH  reg32/num32 - положить в стек
POP   reg32 - вытащить из стека

MUL   reg32 - ЕАХ умножается на источник, результат в EDX:EAX;
DIV   reg32 - EDX:EAX делит на источник;

NEG   reg32 - вычитается из 0 и заменяется;
NOT   reg32 - "переворачивает" каждый бит источника;

Компилятор разбирает данные выше команды и переносит их в манный код. Данная
разработка пока не задействована в Gentee т.к. еще предстоит написать интерфейс
взаимосвязи с языком.

