Практикум по курсу "Архитектура ЭВМ и язык ассемблера"
На факультете в рамках курса "Архитектура ЭВМ и язык ассемблера" весеннего семестра 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 |
имя файла не распознано (по расширению) |