ASM - Zapis wartości rejestru do zmiennej

0

Cześć,
Jak w asemblerze zapisać wartość rejestru do zmiennej?
NASM wywala błąd przy

MOV zmienna, ax

Jak to inaczej zrobić?

5

Zmienna jest konceptem wysokopoziomowym i nie ma ich bezpośrednio w Assemblerze - masz w zamian dostęp do rejestrów oraz pamięci.

0

No to jak zapisać wartość do pamięci i do jakich sektorów RAMu można, a w jakich jest BIOS, itp.

4

Jeśli ta twoja "zmienna" określa komórkę w pamięci, to NASM wymaga nawiasów kwadratowych.

MOV [zmienna], ax

Dla NASMa zmienna jest adresem. [zmienna] jest wartością w pamięci pod adresem zmienna.
W przeciwieństwie do innych asemblerów x86, składnia NASM konsekwentnie trzyma się tego rozróżnienia.

0

No to jak zapisać wartość do pamięci i do jakich sektorów RAMu można, a w jakich jest BIOS, itp.

Spokojnie, komputer nie pozwoli Ci arbitralnie mazać po pamięci ;-)

Na jakim systemie odpalasz swój kod?

0

@Patryk27: Bez systemu. Temu programowi musi wystarczyć BIOS :)

1

W takim wypadku faktycznie możesz bazgrać prawie tam, gdzie Ci się podoba :-)

Lektura: Memory Map oraz Detecting Memory.

0

Dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1