Низкоуровневое программирование

Литература

Питер Абель. Язык Ассемблера для IBM PC и программирования (abel.txt)- наша «Библия». Есть также в библиотеке ФМШ

Я. Белецкий. Энциклопедия языуа Си (адрес /home/courses/Teachers/Skvortsov/_Books/_Programing/C&C++)

The Art of Assembly Language 0528.the_art_of_assembly_language.pdf

!!!NEWAssembly 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 – куча технических ссылок

NEW!!!http://habrahabr.ru/company/neobit/blog/173263/ – как запустить программу без операционной системы

NEW!!!http://info.fenster.name/ – лекции по языку Си

Инструментарий

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 семестры)

Вот что мы делаем с теми, кто не ходит к нам!