; ; test_tst0_berechneter_sprung.rta ; ================================ ; ; Das Programm zeigt, wie man in Assembler berechnete Sprünge programmieren kann. ; (Ein Kartennetzentwurf wird nicht gerechnet.) ; _name Berechneter~Sprung _var a ; Sprungoffset _var ini-sa ; Initiale Sprungadresse mov ini-sa sa pause Man~kann~in~Assembler~sehr~schön~Sprungadressen~berechnen~... loop: clr a input a Sprungziel~0~...~10~(5=Exit) clip a 0 10 mul a 3 ; je 3 Befehle weiterstellen, den pause, den jump und den nop mov sa ini-sa ; die Sprungadresse immer wiederherstellen add sa a ; die Sprungadresse manipulieren jump sa ; Sprung, aber nicht unbedint nach sa ... sa: pause Sprungmarke~0~erreicht jump loop nop pause Sprungmarke~1~erreicht jump loop nop pause Sprungmarke~2~erreicht jump loop nop pause Sprungmarke~3~erreicht jump loop nop pause Sprungmarke~4~erreicht jump loop nop pause Sprungmarke~5~erreicht pause Jetzt~wird~das~Programm~beendet. exit pause Sprungmarke~6~erreicht jump loop nop pause Sprungmarke~7~erreicht jump loop nop pause Sprungmarke~8~erreicht jump loop nop pause Sprungmarke~9~erreicht jump loop nop ; Da sieht man mal, wozu der nop gut ist ... pause Sprungmarke~10~erreicht jump loop _end