I am trying to write assembly to detect if the present interrupt happened between two particular instructions.
I think I have it, but it's not easy for me to test, so if someone could verify I would very much appreciate it.
LDR R0, =INSTR_A ;address of first instruction
CMP LR, R0 ;are we ahead of the first?
BLO NOPE
LDR R0, =INSTR_B ;yes, address of second instr
CMP LR, R0 ;are we ahead of second?
{YEP}LO ;no, so we're between, do {stuff}LO
{MORE STUFF}LO
Does that look right?
My concern is that I should be using LS
instead of LO
?
LR_IRQ is always address+4 of the instruction that was interrupted.
ie:
I hope you can figure out what's wrong with your code now :)