Срок выполнения:
Литература здесь (книги Пильщикова и Зубкова; из Зубкова пригодятся главы 2 и 11). Там же ссылка на документацию (англ.) ассемблера GNU (as).
Документация на команды (англ.): intel.zip intel-extra.zip amd.zip
В 64-разрядной версии Linux нужно установить 32-разрядную библиотеку Си для разработчика. В Ubuntu 14.04 это пакет libc6-dev-i386.
При сборке тогда нужно указывать, что нужен 32-разрядный код: gcc -m32 <файл.s>
В 32-разрядной версии собирайте без дополнительных ключей и пакетов: gcc <файл.s>
Проверить разрядность системы можно командой uname -m
В Windows поставьте msys+mingw или cygwin (32-битные, с компилятором gcc). Всё тоже самое: и msys, и cygwin дают строку bash.
Отличие в программе: все глобальные и внешние метки должны начинаться с подчёркивания (main → _main).
Примеры
Вывод строки: say.s
Вывод числа: write-int.s
Ввод числа: simple-read-int.s read-write-int.s
Вызов из Си (для Linux): t.c
Факториал: int-fact.s
Задание
Составьте программу на ЯА (архитектура IA-32, синтаксис AT&T), решает задачу по варианту.
При умножении используйте только младшие 32 бита произведения.
Варианты, часть 1
Расчёт номера своего варианта см. на странице Успеваемость студентов.
0. (p – a) (p – b) / 2
1. (-b + d) / (2 a)
2. 2 / (k x + y)
3. k (a – b) / (c + d)
4. a b c / (a – 3)