Skip to content

Commit 863bd2f

Browse files
committed
More asm docs
1 parent 36e3fed commit 863bd2f

1 file changed

Lines changed: 12 additions & 10 deletions

File tree

docs/assembler.md

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,36 @@
1010
Для использования языка ассемблера нужно использовать
1111
директиву `.asm` вместо директивы `.code`.
1212

13-
- `modelmachine asm FILENAME` - ассемблировать файл
14-
- `modelmachine run FILENAME` - ассемблировать и выполнить файл
15-
- `modelmachine debug FILENAME` - ассемблировать и отладить файл
13+
- `modelmachine asm FILENAME` - ассемблировать файл;
14+
- `modelmachine run FILENAME` - выполнить ассемблерный файл;
15+
- `modelmachine debug FILENAME` - отладить ассемблерный файл,
16+
отладчик выводит исходный текст программы на ассемблере
17+
рядом с текущим состоянием памяти;
1618

1719
Ассемблер нечувствителен к регистру.
20+
В том числе метки нечувствительны к регистру.
1821
Директивы ассемблера начинаются с точки.
1922

20-
Доступные директивы верхниего уровня:
23+
Директивы верхнего уровня:
2124

2225
- `.cpu` - задает модель машины;
2326
- `.input`, `.output` - могут принимать не только адрес, но и метку;
2427
в остальном работают так же, как для машинных кодов;
2528
- `.enter` - работает так же, как для машинных кодов;
26-
- `.code` - обчные секции машинного кода разрешены;
27-
- `.asm` - секция кода программы;
29+
- `.asm` - секция кода на ассемблере;
30+
- `.code` - секции машинного кода также разрешены;
2831

29-
Внутри секции asm находится код программы на языке ассемблера, он состоит из:
32+
В секции `.asm` находится код программы на языке ассемблера, он состоит из:
3033

3134
- `op r1, label[r2]` - код операции с использоваем регистров (от `r0` до `rf`)
3235
и меток;
33-
- расчет относительных адресов для команд условного перехода в `mm-0`
34-
происходит автоматически;
36+
- расчет адресов происходит автоматически;
3537
- `.imm(10)` - при необходимости можно всесто метки-операнда записать число
3638
директивой `.imm`;
3739
- `label: ` - объявление метки; имя метки состоит из латинских букв, цифр,
3840
`_` и `.`, начинается не с цифры;
3941
- `.label` - локальная метка;
40-
- `.word список_чисел` - список чисел в памяти как есть, каждое
42+
- `.word список_чисел` - список чисел в памяти, каждое
4143
число занимает столько ячеек, сколько требуется для арифметической операции
4244
на данной машине;
4345

0 commit comments

Comments
 (0)