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

Литература

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

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

The Art of Assembly Language 0528.the_art_of_assembly_language.pdf

PC Assembly Language ( локальная копия на wiki.nsunc.com)

www-ресурсы

http://wasm.ru/ (в частности статья http://wasm.ru/article.php?article=asm_linux_for_c)

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

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

NASM (Сайт проекта http://www.nasm.us/, исходники http://www.nasm.us/pub/nasm/releasebuilds/2.10.09/nasm-2.09.10.tar.bz2)

Qemu (Сайт проекта http://wiki.qemu.org/Main_Page, исходный код http://wiki.qemu.org/download/qemu-1.0.tar.gz)

1 семестр

Урок 1 (создание рабочей среды)

Архитектура IBM PC (теоретический материал)

Создание рабочей среды (практическое занятие)

Краткое содержание урока

Урок 2

Простейшие команды процессора x86 (теоретический материал). Команды mov, and, or, xor, not

Отладчик gdb (практическое занятие)

Урок 3

Прерывания (теоретическое занятие)

Логика и организация программы (теоретическое занятие)

Пример использования прерываний, задание (практическое занятие)

Урок 4

Работа с памятью (теоретическое занятие)

Объявление переменных (теоретическое занятие)

Урок 5

Пишем программы для MS-DOS

2 семестр

Урок 1

Работа с памятью (повторение)

Объявление переменных (повторение)

Задание

Урок 5

Подготовка окружения для работы в среде DOSBox

Задание

Использование линковщика ld86

bcc and nasm

Материалы предыдущих лет

Год 2010/2011 (1 и 2 семестры)

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