Содержание
Низкоуровневое программирование
Литература
www-ресурсы
Инструментарий
1 семестр
Урок 1 (создание рабочей среды)
Урок 2 (отладчик gdb)
Урок 3
Урок 4
Урок 5
2 семестр
Повторение
Урок 1
Урок 2
Урок 3
Урок 5
Материалы предыдущих лет
Вот что мы делаем с теми, кто не ходит к нам!
Низкоуровневое программирование
Литература
Программирование на языке ассемблера NASM для ОС Unix
, А. В. Столяров
Питер Абель. Язык Ассемблера для IBM PC и программирования (
abel.txt
)- наша «Библия». Есть также в библиотеке ФМШ
Я. Белецкий. Энциклопедия языуа Си (адрес /home/courses/Teachers/Skvortsov/_Books/_Programing/C&C++)
The Art of Assembly Language
0528.the_art_of_assembly_language.pdf
Assembly Language Step By Step: Programming With Linux (3rd edition) (адрес на диске: /home/courses/Teachers/Rabusov/asm.pdf)
PC Assembly Language
(
локальная копия на wiki.nsunc.com
)
www-ресурсы
http://wasm.ru/
(например
http://www.wasm.ru/forum/viewtopic.php?pid=176649
– про начальную загрузку)
http://www.ibm.com/developerworks/ru/library/l-gas-nasm/
– отличия
nasm
от поставляемого с ОС Linux
gas
http://asm.sourceforge.net/
http://rflinux.blogspot.com/2008/03/linux-syscalls-linux.html
– статья посвящена системным вызовам в Linux.
http://gownos.blogspot.com/
– пример достаточно сложного низкоуровнего программирования.
http://www.opennet.ru/docs/RUS/nasm/nasm-prog.html.gz
– справочник по nasm.
ftp://ftp.micronet-rostov.ru/linux-support/programming/Assembler/
– подборка книг по ассемблеру.
http://ozark.hendrix.edu/~burch/csbsju/cs/350/handouts/x86.html
– ассемблер для MINIX.
http://minix1.woodhull.com/faq/program.html
– программирование в MINIX.
http://habrahabr.ru/post/108658/
– Основы Mercurial.
http://habrahabr.ru/post/155201/
– Makefiles
http://habrahabr.ru/post/133808/
– ARM и ассемблер
http://ru.osdev.wikia.com/wiki/
Архитектура_ARM – ARM
http://www.ctyme.com/rbrown.htm
– куча технических ссылок
http://habrahabr.ru/company/neobit/blog/173263/
– как запустить программу без операционной системы
http://info.fenster.name/
– лекции по языку Си
NEW!!!
http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf
– ман по x86_64
Инструментарий
NASM (Сайт проекта
http://www.nasm.us/
, исходники
http://www.nasm.us/pub/nasm/releasebuilds/2.11.06/nasm-2.11.06.tar.gz
)
Qemu (Сайт проекта
http://wiki.qemu.org/Main_Page
, исходный код
http://wiki.qemu.org/download/qemu-1.0.tar.gz
)
1 семестр
Урок 1 (создание рабочей среды)
Архитектура IBM PC (теоретический материал)
Создание рабочей среды (практическое занятие)
Краткое содержание урока
Урок 2 (отладчик gdb)
Простейшие команды процессора x86 (теоретический материал). Команды mov, and, or, xor, not
Отладчик gdb (практическое занятие)
Урок 3
Прерывания (теоретическое занятие)
Логика и организация программы (теоретическое занятие)
Пример использования прерываний, задание (практическое занятие)
Урок 4
Работа с памятью (теоретическое занятие)
Объявление переменных (теоретическое занятие)
Урок 5
Пишем программы для MS-DOS
2 семестр
Повторение
Работа с памятью (повторение)
Объявление переменных (повторение)
Задание
Урок 1
Язык Си
Урок 2
Препроцессор языка Си
Урок 3
Пример гибридного программирования (теория)
Реализация гибридного программирования в среде gcc и nasm
Урок 5
Подготовка окружения для работы в среде DOSBox
Задание
Использование линковщика ld86
bcc and nasm
Материалы предыдущих лет
Год 2010/2011 (1 и 2 семестры)
Вот что мы делаем с теми, кто не ходит к нам!