
// Посчитать длину окружности при заданном радиусе sw_i, считая, что pi = 3. Вывести результат в out_o.
// Пример: sw_i = 0...010.
// Результат вычислений: out_o = 0...01100.
// li sw_i
// li x10, 0 чтобы был 0 в x10
// bges x0, x2, exit перейти на 7 строчек вперед (000...0111) если радиус оказался меньше или равен 0
// li x3, 1 здесь будем хранить единицу
// add x10, x0, x2 circ = sw_i
// sll x10, x10, x3 circ = circ * 2
// add x10, x10, x2 после этого будет 3*circ
// sll x10, x10, x3 после этого будет 6*circ
// exit: бесконечный цикл
//J B WS ALUop RA1 RA2 const WA
0 0 10 00000000000000000000000 00010 // загружаем sw_i как в примере
0 0 00 00000000000000000000000 01010 // li x10, 0
0 1 00 11101 01010 00010 00000110 00000 // bges x0, x2, exit
0 0 00 00000000000000000000001 00011 // li x3, 1
0 0 01 00000 01010 00010 00000000 01010 // add x10, x10, x2
0 0 01 00001 01010 00011 00000000 01010 // sll x10, x10, x3
0 0 01 00000 01010 00010 00000000 01010 // add x10, x10, x2
0 0 01 00001 01010 00011 00000000 01010 // sll x10, x10, x3
1 0 00 00000 01010 00000 00000000 00000 // exit
// Пример: sw_i = 0...010.
// Результат вычислений: out_o = 0...01100.
// li sw_i
// li x10, 0 чтобы был 0 в x10
// bges x0, x2, exit перейти на 7 строчек вперед (000...0111) если радиус оказался меньше или равен 0
// li x3, 1 здесь будем хранить единицу
// add x10, x0, x2 circ = sw_i
// sll x10, x10, x3 circ = circ * 2
// add x10, x10, x2 после этого будет 3*circ
// sll x10, x10, x3 после этого будет 6*circ
// exit: бесконечный цикл
//J B WS ALUop RA1 RA2 const WA
0 0 10 00000000000000000000000 00010 // загружаем sw_i как в примере
0 0 00 00000000000000000000000 01010 // li x10, 0
0 1 00 11101 01010 00010 00000110 00000 // bges x0, x2, exit
0 0 00 00000000000000000000001 00011 // li x3, 1
0 0 01 00000 01010 00010 00000000 01010 // add x10, x10, x2
0 0 01 00001 01010 00011 00000000 01010 // sll x10, x10, x3
0 0 01 00000 01010 00010 00000000 01010 // add x10, x10, x2
0 0 01 00001 01010 00011 00000000 01010 // sll x10, x10, x3
1 0 00 00000 01010 00000 00000000 00000 // exit
Соседние файлы в папке cybercobra из