Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Indirect JMP?

wolf99

New member
Joined
Apr 16, 2007
Messages
311
Hi Folks

If I have an address stored in, say DPTR reg, how should I jump to that address?
(Its a long long while since Ive used asm so bear with me!)

Keil throws a syntax error for
Code:
LJMP DPTR
and also for
Code:
LJMP @DPTR

so.... stuck, guess Im not using LJUMP correctly??
ta
 

Atheist

Raging swede
Joined
Aug 19, 2005
Messages
8,020
Does this help?
Specifically, this bit:
Michael Podgouzov said:
If you speak about the 51th controller and you need to make a jump to an explicit 16-bit address, you may load this address into DPTR (DPH, DPL), clear your accumulator and use JMP @A+DPTR.
Michael.
 

wolf99

New member
Joined
Apr 16, 2007
Messages
311
Thanks again athiest! I'll give it a try and see what happens.

Had done similar searches in google myself, but obviously not quite got the search query wording right for google to know what I was on about!
 

wolf99

New member
Joined
Apr 16, 2007
Messages
311
Hi so that worked!
Code:
MOV A,#0
LJMP @A+DPTR
Yay, Muchos Gracias!

Two other places I need variability is in an ORG instr and a GLOBAL instr. Im not quite sure what this GLOBAL instr does... declares a global variable?

my inline asm is looking like this currently:
Code:
	#asm
		GLOBAL _ext1isr
		PSECT vectors,ovrld
		ORG 0x34
		MOV A,#0
		LJMP @A+DPTR
		PSECT text
	#endasm

I want to be able to vary the ORG address and the address used for GLOBAL
something like ORG @B and GLOBAL @DPTR...


EDIT: what I THINK might be happening in the asm code currently is that the two instr.s MOV and LJUMP are placed in code memory at the location 0x34
 
Last edited:
Top