Практикум по курсу "Архитектура ЭВМ и язык ассемблера"
На факультете в рамках курса "Архитектура ЭВМ и язык ассемблера" весеннего семестра 1 курса изучаются:
- на первом потоке (группы 101-106): NASM
- на остальных: морально устаревший, 16-разрядный MASM 4.0 под MS-DOS.
MASM 4.0
Исходный код обвязки для запуска MASM 4.0 в эмуляторе
DOSBox для GNU/Linux и Windows (а скоро и плагины к текстовым редакторам для удобной работы) доступны на
GitHub.
Важно: по ссылке выше не поставляется ни сам MASM, ни Turbo Debugger по юридическим причинам.
Их можно взять
здесь (на Windows можно открыть архиватором
7-zip).
Как получить готовую сборку из исходников:
Распакуем в некоторую директорию (к примеру,
/path/to/dir):
git clone https://github.com/porrided/cmc-asm.git /path/to/dir
Доставим сами MASM и TD на место:
wget -qO - https://wiki.cs.msu.su/pub/Practicum/PracticumAssembler/capa.tar.gz | tar -xzf - -C /path/to/dir/assembler-linux
В практикумных Linux-системах MASM доступен из коробки по команде
masm.
Как пользоваться
Образец использования:
masm опции файл
Опции командной строки:
-v Подробнее описывает происходящее.
Чем больше указано опций
-v,
тем больше отладочных данных будет выведено на экран.
Вместо, к примеру, трёх
-v можно написать -vvv.
Чаще всего используется для отладки / выяснения проблем.
-d После ассемблирования запускает .exe в отладчике.
-s Только ассемблировать.
-l Только cкомпоновать.
-r Только запустить исполняемый
файл в DOSBox.
-c "Почистить" (удалить все файлы, порождённые
-s,
-l).
Если не обозначена ни одна из опций
-s,
-l,
-r, то masm предполагает полный цикл действий.
Степени разговорчивости:
| <0 |
silent |
абсолютное молчание (пока не реализован) (а кому он нужен вообще?) |
| 0 |
normal |
(только критические ошибки) |
| 1 |
dosbox |
(стандартный вывод DOSBox) |
| 2 |
dosbox_echo_on |
(DOSBox пишет на экран каждую команду DOS) |
| 3 |
paths |
(Отладочная информация: пути, описание шагов...) |
| 4 |
config |
(Конфигурация DOSBox) |
Коды ошибок:
| 0 |
успех |
| 2 |
несуществующие опции командной строки |
| 5 |
пустой или неверный конфигурационный файл DOSBox |
| 10 |
ошибка компиляции |
| 11 |
ошибка компоновки |
| 40 |
не с чем работать |
| 41 |
имя файла не распознано (по расширению) |