Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 5 Следующий »

Срок выполнения: 5–19 ноября

Литература здесь (книги Пильщикова и Зубкова; из Зубкова пригодятся главы 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

Примеры

Копирование символов: 01-copy.zip

Удаление пробельных символов: 02-remove-space.zip   03-remove-space-tab.zip

Замена цепочки пробелов на один: 04-filter-space.zip

Вывод слов на букву "p": p-words.zip

Вывод строки: say.s

Вывод числа: write-int.s

Ввод числа: simple-read-int.s     read-write-int.s

Вызов из Си (для Linux): t.c

Факториал: int-fact.s

Задание

Составьте программу на ЯА (архитектура IA-32, синтаксис AT&T), которая по алгоритму из работы 1.1 вычисляет i-ый элемент последовательности.
Номер i получайте со стандартного ввода.
При умножении используйте только младшие 32 бита произведения.
Полученное значение выведите на стандартный выход программы.

Варианты

Расчёт номера своего варианта см. на странице Успеваемость студентов.

0. (1 ; 2 ; 1+2=3 ; 2+3=5 ; 3+5=8 ; ...)

1. (1 ; 1+22 ; 1+22+32 ; 1+22+32+42 ; 1+22+32+42+52 ; ...)

2. (1 ; 1+2 ; 1+2+22 ; 1+2+22+23 ; 1+2+22+23+24 ; ...)

3. (1 ; 1+32 ; 1+32+52 ; 1+32+52+72 ; 1+32+52+72+92 ; ...)

4. (1 ; 1+32 ; 1+32–52 ; 1+32–52+72 ; 1+32–52+72–92 ; ...)

5. (1 ; 1+2 ; 1+2–22 ; 1+2–22+23 ; 1+2–22+23–24 ; ...)

 

  • Нет меток