====== Низкоуровневое программирование ====== ==== Литература ==== * [[http://www.stolyarov.info/books/asm_unix|Программирование на языке ассемблера 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) * [[http://www.drpaulcarter.com/pcasm/pcasm-book.pdf.gz|PC Assembly Language ]] ( {{:0528.the_art_of_assembly_language.pdf|локальная копия на 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 (создание рабочей среды) ==== * [[asm:lesson1|Архитектура IBM PC (теоретический материал)]] * [[asm:nasm|Создание рабочей среды (практическое занятие)]] * [[asm:base|Краткое содержание урока]] ==== Урок 2 (отладчик gdb) ==== * [[asm:easycommands|Простейшие команды процессора x86 (теоретический материал). Команды mov, and, or, xor, not]] * [[asm:gdb|Отладчик gdb (практическое занятие)]] ==== Урок 3 ==== * [[asm:interrupts|Прерывания (теоретическое занятие)]] * [[asm:lesson5|Логика и организация программы (теоретическое занятие)]] * [[asm:int-examples|Пример использования прерываний, задание (практическое занятие)]] ==== Урок 4 ==== * [[asm:memory|Работа с памятью (теоретическое занятие)]] * [[asm:define_data|Объявление переменных (теоретическое занятие)]] ==== Урок 5 ==== * [[ams:msdos|Пишем программы для MS-DOS]] ===== 2 семестр ===== ==== Повторение ==== * [[asm:memory|Работа с памятью (повторение)]] * [[asm:define_data|Объявление переменных (повторение)]] * [[asm:memory_task|Задание]] ==== Урок 1 ==== * [[asm:c_lesson1|Язык Си]] ==== Урок 2 ==== * [[asm:c_cpp| Препроцессор языка Си]] ==== Урок 3 === * [[asm:second3|Пример гибридного программирования (теория)]] * [[asm:gcc_nasm|Реализация гибридного программирования в среде gcc и nasm]] ==== Урок 5 ==== * [[asm:ms_dos-nasm|Подготовка окружения для работы в среде DOSBox]] * [[asm:crt_task|Задание]] * [[asm:ld86|Использование линковщика ld86]] * [[asm:bcc_nasm|bcc and nasm]] ===== Материалы предыдущих лет ===== [[asm:asm0|Год 2010/2011 (1 и 2 семестры)]] ====== Вот что мы делаем с теми, кто не ходит к нам! ====== {{:star_wars_iv_11.jpg|}}