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.