Выделите блок памяти, достаточно большой, чтобы вместить 26 элементов (каждый элемент может составлять 1 байт, 2 байта, 4 байта или столько, сколько вам нужно). Простой способ - создать этот блок памяти в разделе .bss
, используя db
/ dw
/ dd
. Каждый элемент в этом блоке будет соответствовать букве алфавита.
Теперь, когда у вас есть блок памяти, вам нужен какой-то способ индексации в нем. Здесь у вас есть две альтернативы:
Если символ находится в диапазоне ['A', 'Z']
, вычтите 'A'
, чтобы получить индекс, если символ находится в диапазоне ['a', 'z']
, вычтите 'a'
, чтобы получить индекс, в противном случае игнорируйте символ .
Преобразование прописных букв в строчные или наоборот. Если вы посмотрите на таблицу ASCII , вы увидите, что строчные буквы имеют большее значение, чем заглавные буквы. Оттуда вы сможете понять, как преобразовать символ в нижний регистр. Если у вас есть строчный символ, вычтите из него 'a'
, чтобы получить индекс.
Получив индекс, используйте его в своем блоке памяти, добавляя индекс, умноженный на размер каждого элемента, к адресу начала блока. Когда у вас есть адрес этого элемента, inc
оставьте его.
Повторяйте, пока все символы не будут прочитаны, а затем напечатайте результат. Если вам нужно написать функцию печати самостоятельно, обратите внимание, что она становится немного менее тривиальной для вывода чисел с более чем одной цифрой. Больше не нужно добавлять '0'
, чтобы получить ASCII-эквивалент этого числа для его печати.