Добавил:
владимир Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

cybercobra из / task18

.txt
Скачиваний:
0
Добавлен:
17.11.2025
Размер:
1.66 Кб
Скачать
reg[1] <- a[2:0] // загрузить константу a[2:0] в регистр 1
reg[2] <- sw_i // загрузить значение с входа sw_i в регистр 2
reg[3] <- 0 // загрузить константу '0' в регистр 3
reg[4] <- 30
reg[5] <- 1
reg[6] <- 2
reg[7] <- 0 ответ

if reg[3] < 30
if (reg[3] << reg[4] - reg[3]) >> reg[3] == a[2:0])
reg[7] <- reg[7] + 1
reg[3] <- reg[3] + 2
reg[3] <- reg[3] + reg[5]
PC <- PC - 8

out_o = reg[7], PC <- PC + reg[0]

0 000000000010 00000 000 00001 0010011 // reg[1] <- a[2:0]
4 000011010101 00000 000 00010 0010011 // reg[2] <- sw_i
8 000000000000 00000 000 00011 0010011 // reg[3] <- 0
C 000000011110 00000 000 00100 0010011 // reg[4] <- 30
10 000000000001 00000 000 00101 0010011 // reg[5] <- 1
14 000000000010 00000 000 00110 0010011 // reg[6] <- 2
18 000000000000 00000 000 00111 0010011 // reg[7] <- 0
1C 0000000 00100 00011 100 01000 1100011 // if reg[3] < 30
20 00000010010000000000 01111 1101111 // else
0100000 00011 00100 000 01010 0110011
24 0000000 00011 00010 101 01001 0110011 // if (a[2:0] | (reg[2] >> reg[3])) == (reg[2] >> reg[3])
28 0000000 01001 00001 110 01010 0110011 // if (a[2:0] | (reg[2] >> reg[3])) == (reg[2] >> reg[3])
2C 0000000 01001 01010 000 01000 1100011 // if (a[2:0] | (reg[2] >> reg[3])) == (reg[2] >> reg[3])
30 00000000110000000000 01111 1101111 // else
34 0000000 00101 00111 000 00111 0110011 // reg[7] <- reg[7] + 1
38 0000000 00110 00011 000 00011 0110011 // reg[3] <- reg[3] + 2
3C 0000000 00101 00011 000 00011 0110011 // reg[3] <- reg[3] + reg[5]
40 000000011100 00000 000 01111 1100111 // PC <- PC - 28 (10)
44 00000000000000000000 01111 1101111 // out_o = reg[7], PC <- PC + reg[0]
Соседние файлы в папке cybercobra из