Tasm, przeniesienie wartosci ze zmiennej to rejestru indeksowego

Tasm, przeniesienie wartosci ze zmiennej to rejestru indeksowego
  • Rejestracja: dni
  • Ostatnio: dni
0

Chciałbym po prostu podnieść wartość wybranego elementu tablicy o 1 - nie mogę podać elementu bezposrednio, musi byc ze zmiennej

Kopiuj
tab   db 100 dup(0)
num db ?

...

mov byte ptr [num], 3
mov bl, num
mov es:[si], bl
inc tab[si]
Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Chcesz zrobić tab[num]++? Wylicz po prostu adres pola w tablicy, wstaw ten adres do si i tyle ;]

Kopiuj
mov si, offset tab
xor bx, bx
mov bl, byte ptr [num]
add si, bx
inc ds:[si]

Albo jeśli ta ostatnia linijka nie pójdzie pod twoim asemblerem to zamiast niej coś w stylu:

Kopiuj
mov ah, byte ptr ds:[si]
inc ah
mov byte ptr ds:[si], ah
  • Rejestracja: dni
  • Ostatnio: dni
0

no i git :), a ostatnia linijka faktycznie nie działała, 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.