.INCLUDE lib Riscker.lib .EQU pointer rg0 .EQU size rg3 .EQU data rg1 .EQU button rg4 .EQU datanext rg5 .EQU return ra0 .EQU addr FFh ;iniciar addi size, #5 addi data, #1 ori rc, #EnableIntEXT1 addi eir1, #interrupt j #genpattern interrupt: ori button,#1 ori rc, #ResetIntEXT1 andi rc, #DisableIntTMR1 jrlw r0, ipc, #0 getnum: xor rt0 xor op lw data, rt0, #addr inc rt0 loop: lw datanext, rt0, #addr beq rt0, size, #exitsub blt data,datanext, #less great: inc rt0 j #loop less: xor data add data, datanext inc rt0 j #loop exitsub: add op, data xor button ori rc, #EnableIntEXT1 jrlw r0, return, #0 genpattern: sw data, pointer, #addr ; Memory[pointer + addr] mult data,size ; data = data << 3 inc pointer blt pointer,size, #genpattern ; jump if ( pointer - size < 0 ) xor pointer wait: addi op, #1h beq r0,button, #wait jal return, #getnum j #genpattern