[ASSEMBLER] Operacje na stosie

0

Witam,
dostałem następujące zadanie z Assemblera
"Użytkownik podaje jakiś ciąg znaków, następnie podaje znak. Program na wyjściu daje podciąg, który zaczyna się od 1 wystąpienia znaku w ciągu np. jak ktoś da "asdf" następnie znak "d" to na wyjściu będzie "df" ". Ogólnie mam problem gdyż nie umiem w assemblerze działać na stosie, nawet internet jakoś mi nie pomógł. Ogólnie mój pomysł był taki, żeby wpierw dać ciąg na stos, potem znowu do rejestru i znowu na stos, bo z tego co czytałem stos przyjmuje znaki od końca.
Bardzo proszę o pomoc/wskazówki etc.

0

Ja tu nie widzę specjalnie sensu zabawy ze stosem. Przecież zadanie jest proste jak budowa cepa

  1. Czytasz ciag znaków.
  2. Czytasz znak
  3. Robisz pętlę po ciągu znaków
  4. Jeśli aktualny znak jest taki sam jak ten wczytany to skaczesz do etykietki która wypisuje ci ciąg od tego znalezionego indeksu.
0

Jednak z wytycznych mam to, iż muszę wykorzystać stos...a po prostu w assemblerze nie umiem się nim posługiwać :/

1

A na pewno nie masz tego ciągu wypisywać od końca? ;]
No to jak musisz to możesz zrobić tak:

  1. Czytasz ciag znaków.
  2. Czytasz znak
  3. Robisz pętlę po ciągu znaków i wrzucasz je po kolei na stos. Nie ma tu wielkiej filozofii
mov ax, tablica[di]
push ax
  1. Robisz drugą pętlę w której sciągasz znaki ze stosu
pop ax

I jeśli wczytany ze stosu znak jest taki sam jak ten podany na wejściu to skaczesz do etykietki która zdejmuje to co pozostało na stosie i wypisuje to na ekran.

0

Niestety nie od końca :/ Dlatego nie wiem co zrobić

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