Re: LZ: JR/opcode $18
[Prev][Next][Index][Thread]
i can't believe that you people can program in HEX!!! you must be pretty
damn good at programming!! i was just pretty amazed that people could do
such a thing....
-greg
>
> >
> > okay, latley I've learned how to program in Hex using the
Compiler
> > program on my ti-85. learning to program in Hex is really convienent
for
> > small programs. I don't have to goto my comp all the time and assemble
them.
> > It also has me hung up on one instruction, JR. I know the opcode for JR
is
> > $18 and the next byte following it is how many bytes to jump foward or
back.
> > But what has me confused is the two's compliment (what does that
mean?!) and
> > in what format the next byte should be in (e.g. F8 = jump 8 bytes back
in
> > the stack and 02 = jump four bytes foward) but how do I decide what to
put
> > in there?(I know thats where to put the size of the jump!:))And in
mnemonic
> > terms jump 8 bytes back is JR $F6+2 (which obviously equals and jump
back 8
> > bytes, right?) I also know that $ equals "the current address". SO I
think
> > my question is "how do i use the $18 XX opcode" and "what should I put
in
> > XX?" AND "How do I two's compliment somthing?"
>
> You can think of two's compliment as a binary version of your car's
> odometer. If your odometer is at 0 and you go backwards 1 mile, it's
> now at 99999. That's -1 in 10's compliment. If you have 0 in a byte
> then it's $00 in hex and if you subtract 1 it becomes $FF. That's -1
> in 2's compliment. $FE is -2. That's really all there is to it.
>
> But in a JR you have to start your calculation from the next
instruction,
> not the current one. That's because the JR is really an add or subtract
to
> the PC and the PC is pointing at the next instruction. That means you
have
> to know the length of the current instruction so you can calculate the
> address of the next instruction. In this case, the length of the current
> instruction is 2 so that's easy.
>
> Barry
Follow-Ups:
References: