• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dodawanie wartości zmiennej do rejestru ESI w nasm.

Cloud VPS
0 głosów
276 wizyt
pytanie zadane 3 lutego 2018 w Assembler przez KubenQPL Maniak (62,840 p.)

Próbując iterować przez litery "Stringa" dodawanie do rejestru esi nie działa gdy próbuję to zrobić za pomocą zmiennej, i końcowo nie zostaje wypisane nic:

    mov esi, txt
    add esi, num

Jednak gdy robię to za pomocą hardcode'wanej wartości 1 to wszystko działa ok i zostaje wypisany drugi znak ciągu znaków.

    mov esi, txt
    add esi, 1

Tutaj podsyłam cały kod:

section .text
    global _start
_start:
    mov esi, txt
    add esi, 1

    mov edx, 1
    mov ecx, esi
    mov ebx, 1
    mov eax, 4
    int 80h
    mov eax, 1
    int 80h

section .data
    txt db 'abcdefg',0xa
    num db 1

Jak mogę wybierać który znak z ciągu ma zostać wypisany za pomocą zmiennej?

Mógłbym to zrobić w pętli i poprostu dodawać co 1 ale chodzi mi o możliwość wyboru za pomocą zmiennej w wypadku gdybym nie chciał iterować przez cały ciąg znaków.

1 odpowiedź

0 głosów
odpowiedź 1 maja 2018 przez akasei Obywatel (1,620 p.)
edycja 3 maja 2018 przez akasei

Zastanów się dlaczego do esi dodajesz adres zmiennej num, a nie zachowaną w niej wartość.

W sumie to długo już czekasz na odpowiedź, zatem proszę:

1. prawdopodobnie istnieje błąd logiczny, zmienna num powinna być minimum rozmiaru word, a w twoim przypadku najlepiej dword

2. następnie dodawanie zawartości zmiennej do wskaźnika ESI wykonujesz za pomocą:

section .text
 add	esi,	dword [num]

[...]

section .data
 num	dd	1

 

Podobne pytania

0 głosów
1 odpowiedź 259 wizyt
+1 głos
1 odpowiedź 956 wizyt
pytanie zadane 5 listopada 2018 w Assembler przez DeBos123 Nałogowiec (44,950 p.)
0 głosów
1 odpowiedź 342 wizyt
pytanie zadane 27 sierpnia 2018 w Assembler przez Cixo Gaduła (4,070 p.)

93,460 zapytań

142,454 odpowiedzi

322,724 komentarzy

62,837 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...