Неделя | Что делаем |
---|---|
20 марта | c: bit_0 .. bit_5, cpu |
27 марта | c: pdp_rw, pdp_load. Эмулятор: читать данные из файла (а не с клавиатуры). Положить код в репозиторий |
3 апреля | pdp11: установка программ. суммирование 2 чисел. Эмулятор: загрузить программу суммирования двух чисел, напечатать адреса, значения по ним и названия команд mov, add, halt (см. пример под таблицей) |
10 апреля | pdp11: Суммирование массива чисел (длиной в машинное слово) известной длины. Эмулятор: сложение 2 чисел. |
29 фев | pdp: Условные операторы. Суммирование массива переменной длины, оканчивающегося нулем. c: cpu |
7 мар | pdp: if (R0 < 0) R1 = 5; else R1 = 2; (без сложения/вычитания!!!). c: pdp_rw |
14 мар | системы контроля версий, настройка среды разработки дома. c: pdp_load |
21 мар | с: работа с файлами, аргументы командной строки, функции от переменного количества аргументов (читаем из файла, чье имя указано в командной строке, ключ вкл/выкл трассировки) |
28 мар | pdp: кодирование команд c: Программа из нескольких файлов. Находим и печатаем имена команд (только для команд из теста суммирования двух чисел sum.pdp). При выполнении команды halt печатать содержимое всех регистров. |
4 апр | pdp: режимы адресации c: разбор аргументов типа ss и dd, реализация 0-2 моды адресации. Работа теста sum.pdp |
11 апр | с: реализация условных операторов. Работа теста на суммирование массива, оканчивающегося 0. |
18 апр | pdp: ввод и вывод. Hello, world! c: Реализация ввода и вывода. Дописываем моды адресации, которые встречаются в тесте. |
25 апр | pdp: подпрограммы, написание и использование подпрограмм putc, puts c: реализация команд rts, jsr. Дописываем моды адресации, которые встречаются в тесте. |
2 мая | pdp: печать числа в бинарном виде. c: Реализация недостающих функций (в форме зачета) |
9 мая | pdp: печать числа в восьмеричном или шестнадцатеричном виде виде. c: Реализация недостающих функций (в форме зачета) |
16 мая | c: Реализация недостающих функций для произвольных тестов (в форме зачета) |
Приложение 1.
Сложение 2 чисел. Этот код мы выполняем0200 000c c0 15 02 00 c1 15 03 00 01 60 00 00
001000: 012700 MOV 001002: 000002 unknown 001004: 012701 MOV 001006: 000003 unknown 001010: 060001 ADD 001012: 000000 HALT
001000 : 012700 MOV #2 R0 001004 : 012701 MOV #3 R1 001010 : 060001 ADD R0 R1 001012 : 000000 HALT