docs(README): Добавлены материалы

This commit is contained in:
Mark Zheleznyakov
2024-09-07 14:19:58 +03:00
parent 93ea438f05
commit cfee580da4

View File

@ -2,9 +2,9 @@
## Лабораторный практикум ## Лабораторный практикум
### Что в здесь находится ### Что здесь находится
В данном репозитории находятся "отчеты" к лабам - авторское описание порядка действий для решения лабы. Все, что не является исходником программы будет лежать в формате .md файла. В данном репозитории находятся "отчеты" к лабам - авторское описание порядка действий для решения лабы. Все, что не является исходником программы будет лежать в формате `.md` файла.
### Используемое ПО ### Используемое ПО
@ -12,7 +12,7 @@
Если вы находитесь под крылышком у Милицына, то вам нужен следующий набор: Если вы находитесь под крылышком у Милицына, то вам нужен следующий набор:
- Windows XP: операционная система. Вам он ее даст в виде установочного образа и на ней вы найдете все остальные программы - Windows XP: операционная система. Есть готовый образ ([WinXPCompArch.ova](https://static.inkling.su/CompArch2024/WinXPCompArch.ova), 1.8 GB) для VirtualBox со всем необходимым софтом
- Borland C for DOS - лежит в каталоге BIN папки BORLAND под названием BC - Borland C for DOS - лежит в каталоге BIN папки BORLAND под названием BC
- Turbo Debugger - Можно вызвать из под Borland C for DOS при помощи нажатия на зачем-то оставшуюся там букву Ё. - Turbo Debugger - Можно вызвать из под Borland C for DOS при помощи нажатия на зачем-то оставшуюся там букву Ё.
@ -22,7 +22,7 @@
Пока что автора только 2, но может в будущем поменяется, это надо учитывать Пока что автора только 2, но может в будущем поменяется, это надо учитывать
--> -->
У данного репозитория 2 автора примерно одинаковой степени извращенства, поэтому сразу стоит отметить, что если вы заглядываете сюда для того чтобы получить самые простые решения - можно разворачиваться и уходить. Да и методичка впринципе написана вполне понятно У данного репозитория 2 автора примерно одинаковой степени извращенства, поэтому сразу стоит отметить, что если вы заглядываете сюда для того чтобы получить *самые простые решения - **можно разворачиваться и уходить***. Да и методичка впринципе написана вполне понятно
Для тех кто остался, поясняем. Из используемого ПО: Для тех кто остался, поясняем. Из используемого ПО:
@ -33,9 +33,9 @@
#### Комментарии #### Комментарии
Кого-то заинтересуте вопрос, почему именно такой набор: Кого-то заинтересует вопрос - а почему именно такой набор:
У Винды, Линукса и Мака есть свои особенности по части выполнения действий в ассемблере. Например отличаются таблицы системных вызовов, а также у винды гораздо шире стандартная библиотека Win32. Про мак ничего сказать не могу - не работал. Выбор пал на линукс, потому что лично мне он привычнее и у него не столь хтоническая коллекция системных вызовов. У Винды, Линукса и Мака есть свои особенности по части выполнения действий в ассемблере. Например, отличаются таблицы системных вызовов, а также у винды гораздо шире стандартная библиотека Win32. На маках - свои решения, например Core Foundation для низкоуровневой разработки на C, помимо которого поддерживается POSIX (Unix же). Выбор пал на линукс, потому что лично мне он привычнее и у него не столь хтоническая коллекция системных вызовов.
Выбор же ассемблера менее принципиален, просто так случилось, что под линукс работают nasm, yasm и gasm. Я предпочитаю работать с nasm, так как по нему немного больше документации и она даже продолжает поддерживаться. И пусть выбор ассемблера не принципиален, я буду по возможности работать с nasm, хотя во время вставок ассемблера в C возможно придется обратиться и к другим ассемблерам Выбор же ассемблера менее принципиален, просто так случилось, что под линукс работают nasm, yasm и gasm. Я предпочитаю работать с nasm, так как по нему немного больше документации и она даже продолжает поддерживаться. И пусть выбор ассемблера не принципиален, я буду по возможности работать с nasm, хотя во время вставок ассемблера в C возможно придется обратиться и к другим ассемблерам
@ -51,6 +51,13 @@ GDB - это классический гнушный (и немного душн
Поскольку пусть ассемблера тяжел, а мы с вами вряд ли когда-нибудь будем писать ассемблер лучше компилятора. Даже умные дяди не всегда пишут код лучше компилятора. В связи с этим предлагаю сразу же сдаться и узнать, что у GCC есть опция `-S`, которая заставит его компильнуть код до ассемблера. При этом использоваться будет Gasm. Также есть возможность воспользоваться [Compiler Explorer'ом](https://godbolt.org/). Он приятен тем, что выдает ассемблер в синтаксисе intel, а не AT&T. Хотя и это можно настроить на самом деле Поскольку пусть ассемблера тяжел, а мы с вами вряд ли когда-нибудь будем писать ассемблер лучше компилятора. Даже умные дяди не всегда пишут код лучше компилятора. В связи с этим предлагаю сразу же сдаться и узнать, что у GCC есть опция `-S`, которая заставит его компильнуть код до ассемблера. При этом использоваться будет Gasm. Также есть возможность воспользоваться [Compiler Explorer'ом](https://godbolt.org/). Он приятен тем, что выдает ассемблер в синтаксисе intel, а не AT&T. Хотя и это можно настроить на самом деле
### Материалы
- Образ WinXP с готовым окружением - [WinXPCompArch.ova](https://static.inkling.su/CompArch2024/WinXPCompArch.ova) (1.8 GB)
- Инструменты из образа (`asmtool`, `borlandc`) - [Tools.zip](https://static.inkling.su/CompArch2024/Tools.zip) (23 MB)
- Каталог с примерами программ - [CompArch2024/templates](https://git.inkling.su/CompArch2024/templates)
- Книги - [CompArch2024/books](https://git.inkling.su/CompArch2024/books)
### Лабораторные работы ### Лабораторные работы
> **Обозначения** > **Обозначения**
@ -69,5 +76,3 @@ GDB - это классический гнушный (и немного душн
- [8. Отладчик](08-debugging/README.md) - [8. Отладчик](08-debugging/README.md)
- [9. Обмен ЭВМ с клавиатурой](09-keyboard/README.md) - [9. Обмен ЭВМ с клавиатурой](09-keyboard/README.md)
- [10. Мультизадачность](10-multitasking/README.md) - [10. Мультизадачность](10-multitasking/README.md)