TINY
(x-y)/3
(4-1)/3
read x;
read y;
m:=(x-y)/3;
write m
0: LD 6,0(0)
1: ST 0,0(0)
2: IN 0,0,0
3: ST 0,0(5)
4: IN 0,0,0
5: ST 0,1(5)
6: LD 0,0(5)
7: ST 0,0(6)
8: LD 0,1(5)
9: LD 1,0(6)
10: SUB 0,1,0
11: ST 0,0(6)
12: LDC 0,3(0)
13: LD 1,0(6)
14: DIV 0,1,0
15: ST 0,2(5)
16: LD 0,2(5)
17: OUT 0,0,0
18: HALT 0,0,0
reg[0] | 0 |
---|---|
reg[1] | 0 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 0 |
reg[7] | 0 |
dMem[0] | 1023 |
---|---|
dMem[1] | 0 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 0 |
INICIANDO
reg[0] | 0 |
---|---|
reg[1] | 0 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 1023 |
---|---|
dMem[1] | 0 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 0 |
0: LD 6,0(0)
LD r,d(s) reg[r] = dMem[d+reg[s]] (carga indirecta)
LD 6,0(0) reg[6] = dMem[0+reg[0]]
reg[0] | 0 |
---|---|
reg[1] | 0 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 0 |
---|---|
dMem[1] | 0 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 0 |
1: ST 0,0(0)
ST r,d(s) dMem[d+reg[s]] = reg[r] (almacena)
ST 0,0(0) dMem[0+reg[0]] = reg[0]
reg[0] | 4 |
---|---|
reg[1] | 0 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 0 |
---|---|
dMem[1] | 0 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 0 |
2: IN 0,0,0
IN r,s,t reg[r] <-- Lectura del valor entero desde teclado
IN 0,0,0 reg[r] = 4
reg[0] | 4 |
---|---|
reg[1] | 0 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 0 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 0 |
3: ST 0,0(5)
ST r,d(s) dMem[d+reg[s]] = reg[r] (almacena)
ST 0,0(5) dMem[0+reg[5]] = reg[0]
reg[0] | 1 |
---|---|
reg[1] | 0 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 0 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 0 |
4: IN 0,0,0
IN r,s,t reg[r] <-- Lectura del valor entero desde teclado
IN 0,0,0 reg[r] = 1
reg[0] | 1 |
---|---|
reg[1] | 0 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 1 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 0 |
5: ST 0,1(5)
ST r,d(s) dMem[d+reg[s]] = reg[r] (almacena)
ST 0,1(5) dMem[1+reg[5]] = reg[0]
reg[0] | 4 |
---|---|
reg[1] | 0 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 1 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 0 |
6: LD 0,0(5)
LD r,d(s) reg[r] = dMem[d+reg[s]] (carga indirecta)
LD 0,0(5) reg[0] = dMem[0+reg[5]]
reg[0] | 4 |
---|---|
reg[1] | 0 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 1 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 4 |
7: ST 0,0(6)
ST r,d(s) dMem[d+reg[s]] = reg[r] (almacena)
ST 0,0(6) dMem[0+reg[6]] = reg[0]
reg[0] | 1 |
---|---|
reg[1] | 0 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 1 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 4 |
8: LD 0,1(5)
LD r,d(s) reg[r] = dMem[d+reg[s]] (carga indirecta)
LD 0,1(5) reg[0] = dMem[1+reg[5]]
reg[0] | 1 |
---|---|
reg[1] | 4 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 1 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 4 |
9: LD 1,0(6)
LD r,d(s) reg[r] = dMem[d+reg[s]] (carga indirecta)
LD 1,0(6) reg[1] = dMem[0+reg[6]]
reg[0] | 3 |
---|---|
reg[1] | 4 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 1 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 4 |
10: SUB 0,1,0
SUB r,s,t reg[r] = reg[s] - reg[t]
SUB 0,1,0 reg[0] = reg[1] - reg[0]
reg[0] | 3 |
---|---|
reg[1] | 4 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 1 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 3 |
11: ST 0,0(6)
ST r,d(s) dMem[d+reg[s]] = reg[r] (almacena)
ST 0,0(6) dMem[0+reg[6]] = reg[0]
reg[0] | 3 |
---|---|
reg[1] | 4 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 1 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 3 |
12: LDC 0,3(0)
LDC r,d(s) reg[r] = d (carga constante directamente en r)
LDC 0,3(0) reg[0] = 3
reg[0] | 3 |
---|---|
reg[1] | 3 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 1 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 3 |
13: LD 1,0(6)
LD r,d(s) reg[r] = dMem[d+reg[s]] (carga indirecta)
LD 1,0(6) reg[1] = dMem[0+reg[6]]
reg[0] | 1 |
---|---|
reg[1] | 3 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 1 |
dMem[2] | 0 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 3 |
14: DIV 0,1,0
SUB r,s,t reg[r] = reg[s] / reg[t]
SUB 0,1,0 reg[0] = reg[1] / reg[0]
reg[0] | 1 |
---|---|
reg[1] | 3 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 1 |
dMem[2] | 1 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 3 |
15: ST 0,2(5)
ST r,d(s) dMem[d+reg[s]] = reg[r] (almacena)
ST 0,2(5) dMem[2+reg[5]] = reg[0]
reg[0] | 1 |
---|---|
reg[1] | 3 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 1 |
dMem[2] | 1 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 3 |
16: LD 0,2(5)
LD r,d(s) reg[r] = dMem[d+reg[s]] (carga indirecta)
LD 0,2(5) reg[0] = dMem[2+reg[5]]
reg[0] | 1 |
---|---|
reg[1] | 3 |
reg[2] | 0 |
reg[3] | 0 |
reg[4] | 0 |
reg[5] | 0 |
reg[6] | 1023 |
reg[7] | 0 |
dMem[0] | 4 |
---|---|
dMem[1] | 1 |
dMem[2] | 1 |
dMem[3] | 0 |
dMem[4] | 0 |
dMem[5] | 0 |
.. | .. |
.. | .. |
dMem[1023] | 3 |
17: OUT 0,0,0
LD r,s(t) reg[r] --> (La salida estándar)
LD 0,0(0) Se displaya el valor de reg[r]
18: HALT 0,0,0
Se detiene la ejecución y finaliza el programa
FIN
TINY
By Nicanor Quispe Cuadros
TINY
- 459