ASM - Zapis wartości rejestru do zmiennej

ASM - Zapis wartości rejestru do zmiennej
KU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 23
0

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

Kopiuj
MOV zmienna, ax

Jak to inaczej zrobić?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
5

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

KU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 23
0

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

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
4

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

Kopiuj
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.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
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?

KU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 23
0

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

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1

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

Lektura: Memory Map oraz Detecting Memory.

KU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 23
0

Dzięki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.