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

assembler -zamiana liter z dużych na male i odwrotnie (procek 8080)

0 głosów
2,419 wizyt
pytanie zadane 7 listopada 2015 w Inne języki przez wanderer Gaduła (3,710 p.)
Czesc, robił ktoś z was program w assemblerze ktory zamieniał duże litery na małe i na odwrót ?  Jeśli ktoś miał z tym do czynienia to prosze o pomoc  ;)  Z tego co wiem trzeba  wykorzystać do tego tablice ASCII ale tutaj trop się urywa  :D

2 odpowiedzi

+1 głos
odpowiedź 7 listopada 2015 przez Krawiec91 Pasjonat (19,600 p.)
Witam
Znaki małych liter (a - z) są kodowane w ASCII od 61h (a) do 7Ah (z), natomiast znaki wielkich liter (A - Z) są kodowane od 41h do 5Ah.  Od 20h do 40h, 5Bh - 60h, 7Bh - &Fh masz kody cyfr, spacji, nawiasów, etc.
Zakładając, że masz jakiś łańcuch tekstowy zapisany w pamięci, na przykład "AssEmbly CoDe". Przenosisz pierwszy znak łańcucha do jednego z rejestrów bądź do akumulatora. Następnie musisz zidentyfikować, czy w ogóle jest on znakiem litery (chyba, że masz to jako pewnik, że same litery będą), a potem określić czy jest on małą czy wielką literą.
Jeśli pobrany z pamięci znak jest małą literą to jego kod ASCII jest większy bądź równy 61h i mniejszy bądź równy 7Ah. Porównujesz wczytany znak z tymi stałymi (61h oraz 71h).
Jeśli pobrany z pamięci znak jest wielką literą to jego kod ASCII jest większy bądź równy 41h i mniejszy bądź równy 5Ah. Porównujesz wczytany znak z tymi stałymi (41h oraz 5Ah)
Na podstawie stanu flag po wykonaniu instrukcji porównań (CMP, CPI) dokonujesz albo odjęcia od danego kodu znaku 20h (zamiana małej litery na wielką) lub dodajesz 20h (zamiana wielkiej litery na małą).
To samo musisz zrobić, dla reszty liter z łańcucha tekstowego.
0 głosów
odpowiedź 7 listopada 2015 przez Damian11131 Stary wyjadacz (13,470 p.)
Kod ASCII wielkiej litery to kod małej litery+ 32 np. kod 'a' to 65, aby otrzymać wielką literę to dodajesz 32, czyli 65+32=97.
komentarz 7 listopada 2015 przez wanderer Gaduła (3,710 p.)
zasade działania ASCII znam, chodzi tutaj jak to wpisac w kod assemblera ;)

Podobne pytania

0 głosów
0 odpowiedzi 454 wizyt
pytanie zadane 4 listopada 2019 w Assembler przez Michu98 Nowicjusz (120 p.)
+2 głosów
4 odpowiedzi 34,019 wizyt
pytanie zadane 4 maja 2015 w Inne języki przez Szymon Szendzielorz Obywatel (1,560 p.)
0 głosów
1 odpowiedź 608 wizyt
pytanie zadane 4 stycznia 2019 w Assembler przez niezalogowany

93,720 zapytań

142,648 odpowiedzi

323,266 komentarzy

63,270 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...