2013-07-31 12:51 PM
example:
btjt PB_IDR, #1, PC-1; need it, not working.label btjt PB_IDR, #1, label; not need it, workingplease help...2013-07-31 09:18 PM
BTJT PB_IDR, #1,*
2013-08-01 01:08 AM
thank you,
please answer:how to used records: *2013-08-01 01:52 AM
Hello user75!
Page 23 (section 4.3.6 - operands) of the ST Assembler-Linker User Manual that is distributed with STVD explains the meaning and some uses of the symbol '*'. In my opinion, * should be used only in inline-loops as in your example. As regards the other uses, it's always better to use labels.2013-08-01 02:02 AM
whether correctly I wrote down?
btjt PB_IDR, #1, {*-1}2013-08-01 02:03 AM
example PC-1 ?
2013-08-01 02:06 AM
I agree, but sometimes happens more convenient PC-N
2013-08-01 02:10 AM
you from what country?
I from Russia2013-08-01 02:11 AM
thank you, BR!
2013-08-01 02:28 AM
user75,
consider * as a label which the assembler updates *before* translating the current instruction. For this reason, the instruction:BTJT PB_IDR,#0,*
works, because * is the address of the first byte (of five bytes) that the assembler emits when it process this line.
When you use {*-1} (I suggest you to use the curly brackets to avoid assembler errors), you avoid the assembler assistance in computing a valid jump destination.
When your computation is wrong, there are no assembling errors, but only execution errors (if you are luky) or a strange behaviour which are difficult to debug.
Why one should not use the assembler label feature to avoid these nasty errors?