Pobranie z wejścia długiego łańcucha i zamiana na duże litery pierwszych znaków wszystkich wyrazów

0

Witajcie. Jestem nowym użytkownikiem na tym forum jak i nowych jeśli chodzi o programowanie w Asemblerze. Mój problem polega na tym, że jedyne co z nim rozumiem to przenoszenia wartości między rejestrami i wykonanie prostych operacji arytmetycznych (mul, add, sub), i wykonanie przerwań. Wiem, nie jest to dużo.... , a muszę wykonać program, który:"Pobiera z wejścia długi łańcuch znakowy zawierający wyrazy pooddzielane spacjami, a następnie zamienia pierwsze litery wyrazów na wielkie jeśli były małe i odwrotnie. Program powinien pracować na łańcuchach o zmiennej długości, wypisywać na ekranie liczbę znaków przetworzonych i powtarzać operacje do naciśnięcia klawisz Delete. Wykorzystać procedury i stos. Przewidzieć sytuacje wyjątkowe." Nie ukrywam, że to mnie trochę przeraża i chciałbym uzyskać jakieś wskazówki jak się za to wziąć. Z góry dziękuję za wszelką pomoc.

PS. Program piszę w Notepad++, pliki kompiluje w NASM, a odtwarzam za pomocą DOSBox'a (jeśli to ma jakieś znaczenie, ale chyba ma bo z tego co kojarzę np.TASM ma kilka dodatkowych elementów w kodzie)

1

jedyne co z nim rozumiem to przenoszenia wartości między rejestrami i wykonanie prostych operacji arytmetycznych (mul, add, sub), i wykonanie przerwań

I to jest prawie wszystko co w asemblerze jest i zupełnie ci to wystarczy do napisania tego kodu :) Tylko musisz to ładnie podzielić na procedury.

  1. Czytanie z wejścia łańcucha znaków to jedno przerwanie
  2. Potem iterujesz sobie po wczytanym ciągu i jak trafisz na spację to wywołujesz procedurę która sprawdza czy pierwsza literka słowa jest mała czy duża i wykonuje zamianę
  3. Na koniec wypisujesz cały ciąg, czyli znów jedno przerwanie.

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