Je faisais des recherches sur l'application «fausse» de Brandon W pour le ti-84 pour voir comment cela fonctionnait. (http://brandonw.net/calculators/fake/) En parcourant le code, j'ai remarqué plusieurs étiquettes et instructions de saut que je n'ai pas comprises. Je voudrais apprendre comment il utilise ces signes dollar et sauts. Mes questions sont posées dans l'extrait de code suivant: (Tout le code est de fausse application open source de Brandon W!)Comprendre les signes et les étiquettes du dollar Z80
resetKeys:
xor a
ld (de),a
$$: ld a,(MenuCurrent) ;How is this label two dollar signs? What does this mean?
cp 02h
jr nz,$F ;Are we jumping to the instruction at 0xF or to one of these dollar sign labels?
ld hl,sFakeAppVar
rst 20h
B_CALL ChkFindSym
jr c,$F ;If we are jumping to 0xF, what are the dollar signs used for?
ld a,b
or a
jr nz,$F
inc de
inc de
ld a,(de)
cp 25h
jr z,ignoreAppsKeys
cp 26h
jr z,ignoreAppsKeys
cp 27h
jr z,ignoreAppsKeys
$$: pop af ;Here's another
ld b,a
ld a,(cxCurApp)
cp 45h
jr nz,$F
ld a,b
cp kCapS
jr nz,$F
D'après ce que j'ai fait des recherches, le signe dollar est utilisé lorsque signifiant hex ou le compteur de l'emplacement actuel. Corrigez-moi si j'ai tort, s'il-vous plait. Toute aide serait très appréciée!
Si je devais hasarder une hypothèse '$ f' signifie trouver le prochain (' F'orward) '' $$ étiquette et la branche/jmp à elle. Je pense que "$$" agit comme une étiquette temporaire. Il est tout à fait possible que '$ B' irait' B'ackward à l'étiquette '$$' précédente. Ceci est juste une supposition basée sur la syntaxe de certains autres assembleurs. –
@MichaelPetch Merci beaucoup! – MentalFrostbyte
'jr c, $ F' est un saut relatif si le drapeau de report est un. Donc si 'carry flag == 1' alors' PC = PC + 0x0F'. N'oubliez pas que PC pointera déjà sur l'instruction suivante, donc juste pour être clair, c'est "PC = address_of_next_instruction + 0x0F". – GabrielOshiro