¿Qué significa $, $-1;$-5 en asm?

#1
Hola, buenas noches recién he visto un programa que tenía una instrucción:

GOTO $ ;REPITE EL BUCLE INDEFINIDAMENTE, O ALGO ASÍ..........

ah, o cuando usé el enlace que dejaron por ahí para hacer retardos en asm, el generador de retardos, por ejemplo:

; Delay = 0.5 seconds
; Clock frequency = 4 MHz

; Actual delay = 0.5 seconds = 500000 cycles
; Error = 0 %

cblock
d1
d2
d3
endc

;499994 cycles
movlw 0x03
movwf d1
movlw 0x18
movwf d2
movlw 0x02
movwf d3
Delay_0
decfsz d1, f
goto $+2
decfsz d2, f
goto $+2
decfsz d3, f
goto Delay_0

;6 cycles
goto $+1
goto $+1
goto $+1

¿Qué es esa notación de $ y el número que sigue, y cuando no sigue número sino sólo $?
¿Es para ,marcar el número de líneas de salto, hacía adelante en el código +, y/o hacía atrás-?

Gracias por ayudarme.
 
Última edición:
#2
Es para el contador de programa.

$ se queda ahí mismo
$+1 se va 1 posición adelante , si pones $+5 se va 5 lineas adelante.
$-1 se va 1 posición atras

Pruebalo en el simulador :D y te quitas de dudas.

Por el tipo de instrucciones noto que se trata de un pic.
Ten cuidado al usar ese tipo de saltos si tu programa es largo por los cambios de página.

;6 cycles
goto $+1
goto $+1
goto $+1
La instrucción goto ocupa 2 ciclos de reloj, como ves en el comentario marca 6 correctamente.

Eso esa estructurado +- asi

Linea de programa

Al llegar aquí el contador de programa esta direccionando en 09
CP |
09 | goto $+1 , ir a contador de programa +1 ; , por lo tando 09+1 = A
0A | goto $+1 ; 0A+1=0B
0B | goto $+1 ; 0B+1=0C
0C | sigue programa-------- bla bla
Saludos!
 
Última edición:
Arriba