-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathekwa_info.txt
79 lines (62 loc) · 1.61 KB
/
ekwa_info.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
1 байт - Тип
4 байта - Длина
4 байта - Указатель на данные
Массив - 3 Элемента int
(-2-+--3 * pointer_size--+-Address-)
|
|----------> (-3-+--4--+-Address-)
| |
| +----------------> Value
|
|----------> (-3-+--4--+-Address-)
| |
| +----------------> Value
|
+----------> (-3-+--4--+-Address-)
|
+----------------> Value
Хранение данных в .rodata:
{Длина(4 байта)}{Контент}
EKWA_STRING = 0x00
EKWA_BOOL = 0x01
EKWA_ARRAY = 0x02
EKWA_INT = 0x03
EKWA_FLOAT = 0x04
EKWA_FUNC = 0x01
EKWA_FARG = 0x02
EKWA_VAR = 0x03
EKWA_SHOW = 0x04
EKWA_RET = 0x05
EKWA_VAL = 0x06
EKWA_CALL = 0x07
EKWA_JMP = 0x08
EKWA_FSET = 0x09
EKWA_WRT = 0x0a
EKWA_BUFF = 0x0b
EKWA_PBUF = 0x0c
EKWA_IFE = 0x0d
EKWA_IFNE = 0x0e
EKWA_IFS = 0x0f
EKWA_IFB = 0x10
EKWA_INFO = 0x11
EKWA_RMV = 0x12
EKWA_CAT = 0x13
EKWA_EXIT = 0x14
EKWA_ARG = 0x15
EKWA_ARGL = 0x16
EKWA_ADD = 0x17
EKWA_SUB = 0x19
EKWA_DIV = 0x19
EKWA_MOD = 0x1a
EKWA_MUL = 0x1b
EKWA_SAL = 0x1c
EKWA_SAR = 0x1d
// tokens for array add
EKWA_AADD
EKWA_ALEN // Длина массива
EKWA_ARM // Удаление элемента
EKWA_ARW // Перезапись элемента
EKWA_ABUF // Добавление элемента в буфер из массива, array, {position}
EKWA_I2F // Int to float
EKWA_F2I // Float to int
EKWA_END = 0x1e