Go to the source code of this file.
|
| int | run (struct pdp_11_t *, int, char **) |
| | Главный цикл выполнения команд эмулятора.
|
| |
◆ run()
| int run |
( |
struct pdp_11_t * |
pdp, |
|
|
int |
argc, |
|
|
char ** |
argv |
|
) |
| |
Главный цикл выполнения команд эмулятора.
Функция реализует полный цикл работы процессора:
- Инициализация внутренних структур данных через pdp_create.
- Парсинг имени файла и загрузка образа программы в память.
- Установка указателя инструкции (PC) на начальный адрес (01000).
- Бесконечный цикл выборки и выполнения команд через do_command.
- Parameters
-
| [in,out] | pdp | Указатель на структуру контекста эмулятора PDP-11. |
| [in] | argc | Количество аргументов командной строки. |
| [in] | argv | Массив аргументов (используется для поиска входного файла). |
- Returns
- Статус завершения. На данный момент всегда возвращает 0.
- Note
- Программа жестко закодирована на старт с восьмеричного адреса 01000.
- Warning
- Цикл
while(1) предполагает, что остановка системы происходит внутри do_command (например, по инструкции HALT или ошибке).
- Todo:
- Реализовать корректный выход из цикла при получении сигнала прерывания или выполнении специфических инструкций процессора.
Точка входа в программу по умолчанию: 01000 (восьмеричная система)
Исполнительный цикл (Fetch-Decode-Execute).
40{
41
43
44
46
47
49
54
55
58
59
60 *ptr_pc = addr;
61
65 while (1) {
66
68 }
69
70
72
73 return 0;
74}
word_t * do_command(struct pdp_11_t *, struct command_t **, const address_word_t)
Выполняет одну машинную команду по указанному адресу.
Definition pdp_11.c:190
byte_t * pdp_parse_filename(int argc, char **argv)
Разбирает аргументы командной строки для поиска имени файла.
Definition pdp_11.c:156
void pdp_destroy(struct pdp_11_t *)
Освобождает ресурсы, связанные с экземпляром PDP-11.
Definition pdp_11.c:60
void pdp_load_data(struct pdp_11_t *pdp, byte_t *filename)
Загружает данные в PDP-11 из файла или терминала.
Definition pdp_11.c:130
void pdp_create(struct pdp_11_t *)
Инициализирует компоненты PDP-11 (память, устройства ввода-вывода, регистры, команды).
Definition pdp_11.c:37
word_t * PC
Definition pdp_11_p.h:16
struct command_t ** command
Definition pdp_11_p.h:8
unsigned char byte_t
Definition types.h:6
unsigned short int word_t
Definition types.h:7
unsigned int address_word_t
Definition types.h:11