Registry X, Y a Z

Z MAM wiki

(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(co je X, Y, Z)
(priklad)
 
Řádka 4: Řádka 4:
*Y=R29:R28, adresování RAM
*Y=R29:R28, adresování RAM
*X=R27:R26, adresování RAM
*X=R27:R26, adresování RAM
 +
 +
 +
Kdybychom například chtěli vynásobit byte uložený v paměti na šestnáctibitové adrese R23:R22 druhým bytem na adrese R25:R24 a součin vrátit také v R25:R24, jde to nějak takhle:
 +
 +
<pre>
 +
movw R30, R22      ; lze psat i movw R31:R30, R23:R22
 +
ld R0, Z            ; cteni z adresy R31:R30
 +
movw R30, R24
 +
ld R1, Z
 +
mul R0, R1          ; R1:R0 = R0 * R1
 +
movw R24, R0
 +
</pre>

Aktuální verze z 28. 6. 2012, 18:36

Tyto šestnáctibitové registry jsou ve skutečnosti jen jinak pojmenované dvojice osmibitových pracovních registrů R s nejvyššími čísly:

  • Z=R31:R30, používaný k adresování datové paměti RAM i programové paměti FLASH
  • Y=R29:R28, adresování RAM
  • X=R27:R26, adresování RAM


Kdybychom například chtěli vynásobit byte uložený v paměti na šestnáctibitové adrese R23:R22 druhým bytem na adrese R25:R24 a součin vrátit také v R25:R24, jde to nějak takhle:

movw R30, R22       ; lze psat i movw R31:R30, R23:R22
ld R0, Z            ; cteni z adresy R31:R30
movw R30, R24
ld R1, Z
mul R0, R1          ; R1:R0 = R0 * R1
movw R24, R0
Osobní nástroje