'Hello 1World23'
.....................
mov cx, [bx + 1]
SL:
mov di, cx
cmp mess [di + 1], 60h
jl nextSL
sub mess [di + 1], 20h
nextSL:
loop SL
Маленькие буквы стают большими буквами. Но как сделать из больших букв - маленькие буквы?
Перестановка "60h" & "20h" приводит к хаосу и крякозябрам в консоли..(
Очевидно, что перестановка чисел в неравенстве код буквы < 96 не может дать желаемого результата.
1) В каком диапазоне кодов находятся буквы 'A'..'Z'. 2) В каком диапазоне кодов находятся буквы 'a'..'z'. 3) Как определить принадлежит конкретная буква диапазону 'A'..'Z', 'a'..'z', либо ни к тому ни к другому?
1) [41..5A] // hex 2) [61..7A] // hex 3) ну, сделать проверку, если символ не попадает ни туда, ни туда
Соответственно, чтобы из больших букв получить маленькие, надо к их кодам прибавить 20h. Чтобы получить из маленьких букв большие, надо вычесть из их кодов 20h. Но операции надо делать только для тех символов, которые входят в нужный диапазон. P.S. А еще лучше - использовать вместо ADD и SUB логические операторы AND и OR.
Посмотри биты у ASCII кодов
тогда уже XOR, при условии что входит в один из диапазонов
@chamum вроде хочет сделать маленькие буквы - большими.
Обсуждают сегодня