Нужно сделать первую букву заглавной, а последующие - строчными - Assembler

Узнай цену своей работы

Формулировка задачи:

До этого переводила все буквы из заглавных в строчные,а теперь нужно как то подкорректировать данный код под новое задание. Сделать первые буквы в словах заглавной, а последнующие строчные
DATASG SEGMENT PARA
    MYTEXT DB   'MY NAME IVANOV IVAN' ,13,10, '$'
DATASG ENDS
 
STACKSG SEGMENT 'Stack'     
    DB 12 DUP(?)
STACKSG ENDS
 
CODESG SEGMENT PARA 'Code'
    
BEGIN PROC FAR
    ASSUME SS:STACKSG, CS:CODESG, DS:DATASG
    PUSH DS             ; сохраняем сегмент данных в стек
    SUB AX, AX          ; Обнуляем AX
    PUSH AX             ; сохраняем содержимое АХ в стек
    MOV AX, DATASG      ; заносим в сегментный
    MOV DS, AX          ; регистр DS адрес сегмента данных
    LEA BX, MYTEXT      ; заносим в BX адрес начального символа переменной Mytext
    MOV CX, 19H         ; Вносим в СХ значение 17Н - параметр цикла
    
    MOV AH, 09H             ;
    MOV DX, OFFSET MYTEXT   ;
    INT 21H                 ; вывода на экран
 
    MT1:    
        MOV AH, [BX]    ; Метка1: заносим в АН код первого символа переменной Mytext
        CMP AH, 41H     ; Сравниваем значения регистра AH и кода символа 41Н (символа A)
        JB MT2          ; преход к метке 2 если код, лежащий в AH больше 41H (символ старше A в таблице ASCII)
        CMP AH, 5AH     ; Сравниваем значения регистра AH и кода символа 5АН (символа Z)
        JA MT2          ; преход к метке 2 если код, лежащий в AH меньше 5АH (символ младше Z в таблице ASCII)
        CALL COR        ; вызов процедуры COR
 
    MT2:
        INC BX          ; Метка 2: увеличиваем значение в BX на 1
        LOOP MT1        ; Цикл с параметром, лежащим в СХ, передающий управление коду под меткой 1.
        LEA DX, MYTEXT  ; Заносим в DX адрес переменной MYTEXT для вывода на экран
        MOV AH, 09H     ; оформляем функцию DOS
        INT 21H         ; вывода на экран
        RET             ; воврат
        
BEGIN ENDP
 
COR PROC NEAR           ; Начало процедуры COR
    NOP                 ; пауза
    ADD AH, 20H         ; прибавляем к коду символа смещение 20H по таблице ASCII
    MOV [BX], AH        ; занесение в ячейку с адресом, лежащим в BX, кода символа из AH
    RET                 ; воврат 
COR ENDP                ; завершение процедуры
 
CODESG ENDS
END BEGIN
Помогите пожалуйста не очень разобралась ещё в данном языке)))

Решение задачи: «Нужно сделать первую букву заглавной, а последующие - строчными»

textual
Листинг программы
  mov ax,@data
  mov ds,ax

Объяснение кода листинга программы

  1. Переменная ax используется как регистр для хранения данных
  2. Переменная ds используется как регистр для хранения сегмента данных
  3. Команда mov используется для копирования значения из регистра ax в переменную ds

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы