PUSH: MACRO (ra) st ra,r30,0 sub r30,r30,4 ENDMACRO POP: MACRO (ra) add r30,r30,4 ld ra,r30,0 ENDMACRO CALL: MACRO (eti) bsr 1 ;Se calcula en r1 la direccion add r1,r1,16 ;de retorno, PUSH (r1) ;se carga en la pila y bsr eti ;se salta a la subrutina. ENDMACRO RET: MACRO (ra) POP (ra) jmp (ra) ENDMACRO ;PROGRAMA PRINCIPAL PROGR_PPAL: addu r30,r0,10000 add r4,r0,2 ;Paso del parámetro k PUSH (r4) CALL (AK) POP (r4) stop ;Instrucción q AK: PUSH (r3) ld r3,r30,12 ;Instruccion p or r2,r0,r0 cmp r1,r3,0 bb1 2,r1,FIN_AK sub r3,r3,1 PUSH (r3) CALL (AK) add r30,r30,4 add r2,r2,1 mak r2,r2,0<1> ;Se desplaza r2 un bit a la izquierda ;añadiendo 0 por la derecha. FIN_AK: POP (r3) RET (r1)