Sub-routines in PDP-11 assembly -


so i'm writing program assembly , , i'm trying use sub-routines, have problem. i'v written routine resembles switch case . reads input , , based on it's value , writes reserved address in stack address of following sub-routine.

it looks this:

1000    jsr r5,switchcase     // let return address 1004 1004    jsr r5,@0(sp) 

the first jsr goes switch case, writes first address in stack. second 1 jumps address.

i'm using simulator , , every time reaches line stops. don't know goes wrong :/

any appreciated.

the instruction jsr r5,@0(sp) pushes old r5 onto stack , puts current r7 (pc) r5. therefore program not jump address on stack, address stored in r5, wharever is.
in example 1st jsr instruction writes r5 onto stack, , assigns 1004 r5.
edit: when program returns rts, restores old value of r5 stack.
2nd jsr instruction pushes again value onto stack, , jumps address, since on top of stack (distance 0).
if subroutine called 1st jsr indeed leaves subroutine address on top of stack, , 2nd jsr should jump there, 1 had use jsr r5,@2(sp) instead. consider else programming style.
hope got right time...


Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -