Está en la página 1de 4

REPRESENTACION DE CARDIAC

Representacin del
SIMBOLOGIA FUNCION EJEMPLO
ejemplo

0 INPUT 033 mem[33] entrada

1 LOAD 115 acc=mem[15]

2 ADD 225 acc=acc+mem[25]

3 BRANCH IF 303 If(acc<0)them pc=03

4 SHIFT 426 acc=shiftright(acc,6)

5 OUT 568 salida=mem[68]

6 STORE 617 mem[17]=acc

7 SUBTRACTION 708 acc=acc-mem[08]

8 JUMP 809 pc=09


9 STOP 900 pc=0,stop

REPRESENTACION DE URM

Simbologia Notacin Ejemplo


J(m,n,q) J(2,4,3) If(R[2]==R[4]){ir lnea 3}
T(m,n) T(3,1) R[1]=R[3]
S(n) S(3) R[3]=R[3]+1
Z(n) Z(1) R[1]=0
PASAR DEL LENGUAJE CARDIAC A URM

J(m,n,q) m=2, n=2,q=14

01:012 //mem[12]=entrada1 , a=2

02:013 //mem[13]=entrada2 , b=2

03:112 //acc=mem[12] , acc=a

04:713 //acc=acc-mem[13] , acc=2-2=0

05:700 //acc=acc-mem[0] , acc=0-1

06:314 //if(acc<0) ir linea 14 , if(-1<0)ir linea 14

T(m,n) m=2 n= -

02:013 //mem[13]=entrada ,b=2

03:113 //acc=mem[13] ,acc=b

04:612 //mem[12]=acc ,a=acc

S(n) n=2

01:012 //mem[12]= entrada , a=2

02:112 //acc=mem[12] , acc=a

03:300 //acc=acc+mem[0] , acc=a+1

04:612 //mem[12]=acc , a=3

Z(n) n=2

01:012 //mem[12] ,a=2

02:112 //acc=mem[12] ,acc=a

03:700 //acc=acc-mem[12] ,acc=acc-a

04:612 //mem[12]=acc ,a=0


PASAR DE LENGUAJE URM A CARDIAC

LOAD

1-- //acc=Mem[-], tambien se puede inlcuir aqui las operaciones 5- - , 6 - -

T(m,n) //R[n]=R[m]

ADD

2-- //acc=acc+mem[-]

01:J(2,3,5) //if(R[2]==R[3])ir linea 5


02:S(1) //R[1]+=1
03:S(3) //R[3]+=1
04:J(1,1,1) //if(R[1]==R[1])ir linea 1

TAC
3-- 310 //if(acc<0)ir linea 10
C=numero codificador, n=numero
Nmeros positivos Codificacin Nmeros negativos Codificacion
1 2 -1 1
2 4 -2 3
3 6 -3 5
.. .. .. ...
N 2c(par) -n 2c-1(impar)
01:J(1,4,8) Este programa regresara cero si el nmero de su
02:S(2) codificador es impar.
03:J(1,2,7) Y regresara el valor si es par.
04:S(2) Se puede agregar una lnea conocido su codificador
05:J(1,2,8) 08:J(1,5,10)
06:J(1,1,2)
07:Z(1)

Shift 4 - -
En nmeros enteros sin signo, el desplazamiento lgico hacia la izquierda equivale a una multiplicacin por 2 y el
desplazamiento lgico hacia la derecha equivale a una divisin por 2.
Los programadores de lenguaje ensamblador usan esta propiedad para hacer multiplicaciones y divisiones rpidas, de
enteros sin signo, por una potencia de 2, en donde n desplazamientos equivalen a multiplicar o dividir por 2 n.

acc=shift left (acc,1) // 401 acc=shift right(acc,1) // 410


01:J(1,3,6) 01:J(1,2,4)
02:S(2) 02:S(2)
03:S(3) 03:J(1,1,1)
04:S(3) 04:J(2,3,8)
05:J(1,1,1) 05:S(1)
06:T(2,1) 06:S(3)
07:J(1,1,4)

7 - - , Ejemplo //acc=acc-mem[05] , acc=3 , mem[05]=1


01:J(5,6,14) Itereaccion:0, J(5,6,14) //no son iguales
02:S(6) Itereaccion:1, S(6) //S(6)= 1
03:Z(2) Itereaccion:2, Z(2) //Z(2)=0
04:Z(3) Itereaccion:3, Z(3) //Z(3)=0
05:Z(4) Itereaccion:4, Z(4) //Z(4)=0
06:J(1,4,13) Itereaccion:5, J(1,4,13) //no son iguales
07:S(3) Itereaccion:6, S(3) //S(3)= 1
08:J(1,3,12) Itereaccion:7, J(1,3,12) //no son iguales
09:S(2) Itereaccion:8, S(2) //S(2)= 1
10:S(3) Itereaccion:9, S(3) //S(3)= 2
11:J(1,1,8) Itereaccion:10, J(1,1,8) //(son iguales) ir linea:8
12:T(2,1) Itereaccion:11, J(1,3,12) //no son iguales
13:J(1,1,1) Itereaccion:12, S(2) //S(2)= 2
Itereaccion:13, S(3) //S(3)= 3
Itereaccion:14, J(1,1,8) //(son iguales) ir linea:8
Itereaccion:15, J(1,3,12) //(son iguales) ir linea:12
Itereaccion:16, T(2,1) //Se asigna m=2 a n=2
Itereaccion:17, J(1,1,1) //(son iguales) ir linea:1
Itereaccion:18, J(5,6,14) //no son iguales
Itereaccion:19, S(6) //S(6)= 2
Itereaccion:20, Z(2) //Z(2)=0
Itereaccion:21, Z(3) //Z(3)=0
Itereaccion:22, Z(4) //Z(4)=0
Itereaccion:23, J(1,4,13) //no son iguales
Itereaccion:24, S(3) //S(3)= 1
Itereaccion:25, J(1,3,12) //no son iguales
Itereaccion:26, S(2) //S(2)= 1
Itereaccion:27, S(3) //S(3)= 2
Itereaccion:28, J(1,1,8) //(son iguales) ir linea:8
Itereaccion:29, J(1,3,12) //(son iguales) ir linea:12
Itereaccion:30, T(2,1) //Se asigna m=1 a n=1
Itereaccion:31, J(1,1,1) //(son iguales) ir linea:1
Itereaccion:32, J(5,6,14) //(son iguales) ir linea:14
Respuesta de URM:1
8--

Ejemplo:
01:802// pc=2
01:J(1,1,2) // If(R1==R1)ir linea 2
9--
Ejemplo 20:910 //pc=21, stop
20:J(1,1,21)
21:

Por lo que s puedo ir de cardiac a URM y viceversa entonces ambos lenguajes son equivalentes. El modelo es valido en
el rango de 0 a 999 para E/S

También podría gustarte