; Mini-gerador de formas de onda: atendimento das interrupções ; /INT0: passa à onda anterior - /INT1: passa à onda seguinte extrn data(onda,valact,ascend,descend) cseg at 3 jmp extint0 cseg at 13h jmp extint1 cseg at 0Bh jmp tc0int extint0 segment code rseg extint0 push acc mov a,onda cjne a,#ascend,decrementa ; serra ascendente é a que tem o código mais baixo mov onda,#descend jmp fimint0 decrementa: dec onda fimint0: pop acc reti extint1 segment code rseg extint1 push acc mov a,onda cjne a,#descend,incrementa ; serra descendente é a que tem o código mais alto mov onda,#ascend jmp fimint1 incrementa: inc onda fimint1: pop acc reti tc0int segment code rseg tc0int push acc mov a,onda cjne a,#ascend,sdes sasc: inc valact jmp segue sdes: dec valact segue: mov a,valact movx @dptr,a pop acc reti end