Bubo
Bubo

Reputation: 808

Assembly Language Syntax Confusion

I'm working with an Infineon Tricore processor and I'm coming across an addressing mode that I've not seen before, then referring to a register in some of the instructions that I am confused by the following:

jz16.t d15:2, loc_6749A

Now from what I understand this instruction checks one bit to determine if the branch is taken or not (that's from the .t extension on the opcode). But what does d15:2 mean? I've only seen that used for ranges of bits, could it mean the second bit of d15?

It is important to know that d15 contains a status register.

Upvotes: 1

Views: 337

Answers (1)

Michael
Michael

Reputation: 58427

The instruction set reference from Infineon uses the syntax jz.t d15, n, label, but as you guessed yourself it checks the n:th bit of d15 (though bit 2 is the 3rd bit, not the 2nd) and jumps if the bit is zero.

Quoting from the manual:

If bit n of register D[15] is equal to zero, then add the value specified by disp4, zero-extended and multiplied by 2, to the contents of PC and jump to that address.

Upvotes: 1

Related Questions