Преобразование выходной строки в нижний/верхний регистр на языке ассемблера

Я попробовал этот простой ассемблерный код, который принимает и печатает введенную строку. Интересно, как я собираюсь преобразовать строку в нижний регистр, если я ввожу строку в верхнем регистре или наоборот. Я новичок в языке ассемблера, коды которого часто меня смущают. Спасибо.

вот код:

org 100h  

mov dx, offset question1
mov ah, 09
int 21h

mov dx, offset temp1
mov ah,0ah
int 21h  

mov dx, offset msg
mov ah, 09
int 21h  

mov dx, offset msg1
mov ah, 09
int 21h 

mov dx, (offset temp1)+2
mov ah,09
int 21h   


ret
question1 db 10,13, "Enter your Name: $" 
temp1 db 20,0, 21 dup ('$')

msg db 10,13, "$" 
msg1 db 10,13, "You Are: $" 

person user2123999    schedule 21.02.2014    source источник


Ответы (1)


По сути, от начала строки до конца, чтобы преобразовать в нижний регистр, если значение находится между 65 и 90 (десятичное), добавьте к нему 32.

Чтобы преобразовать в верхний регистр, если значение символа находится между 97 и 122, вычтите из него 32.

От 1-го символа и длины входной строки (пока вы не нажмете «$», сделайте свое сравнение.

person Brian Wren    schedule 21.02.2014