Язык ассемблера
Ассемблер транслирует мнемоники кодов в шестнадцатиричные машинные коды.
Язык ассемблера доступен для всех модельных машин.
Модель машины нужно задать первой директивой .cpu, как и для файлов в машинных
кодах.
Для использования языка ассемблера нужно использовать
директиву .asm вместо директивы .code.
modelmachine asm FILENAME- ассемблировать файл;modelmachine run FILENAME- выполнить ассемблерный файл;modelmachine debug FILENAME- отладить ассемблерный файл, отладчик выводит исходный текст программы на ассемблере рядом с текущим состоянием памяти; при изменении состояния памяти исходный текст не меняется.
Ассемблер нечувствителен к регистру. В том числе метки нечувствительны к регистру. Директивы ассемблера начинаются с точки.
Директивы верхнего уровня:
.cpu- задает модель машины;.input,.output- могут принимать не только адрес, но и метку; в остальном работают так же, как для машинных кодов;.enter- работает так же, как для машинных кодов;.asm- секция кода на ассемблере;.code- секции машинного кода также разрешены;
В секции .asm находится код программы на языке ассемблера, он состоит из:
op r1, label[r2]- код операции с использоваем регистров (отr0доrf) и меток;- расчет адресов происходит автоматически;
.imm(10)- при необходимости можно всесто метки-операнда записать число директивой.imm;
label:- объявление метки; имя метки состоит из латинских букв, цифр,_и., начинается не с цифры;.label- локальная метка;.word список_чисел- список чисел в памяти, каждое число занимает столько ячеек, сколько требуется для арифметической операции на данной машине;