DJNZ fr,addr |
|
Description: | Decrement fr , jump if not zero |
Operation: | -- fr == 0 ? PC = addr |
Flags affected: | none |
Registers affected: | fr PC |
Sources referenced: | fr |
Cycles: | 2 * |
Opcode: | |
Actually compiles to: | decsz fr; jmp addr |
Microchip PIC syntax: | DECFSZ fr,1; GOTO addr |
Notes: |
Guenther says:
DJNZ fr, addr is a so-called "compound" statement, i.e. the SX does not "understand" it directy. Instead, the Assembler generates two subsequent instructions as replacement:DECSZ fr
JMP addrIn case you specify $ for addr, the Assembler is clever enough to replace $ with the address of the DECSZ instruction, and not with the address of the JMP instruction which would not make too much sense.
The same is true for an argument like $-2, IOW, the Assembler always replaces $ with the address of the first instruction of a compound statement.
BTW, a good method to test the behavior of certain instructions is writing a simple program, and then single-stepping it with the debugger to see what happens.
file: /Techref/scenix/inst/djnzfraddr.htm, 2KB, , updated: 2004/10/8 12:45, local time: 2024/8/15 00:00,
18.226.181.54:LOG IN
|
©2024 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions? <A HREF="http://massmind.org/techref/scenix/inst/djnzfraddr.htm"> SX Instruction DJNZ fr,addr</A> |
Did you find what you needed? |
Welcome to massmind.org! |
Welcome to massmind.org! |
.