Замена согласных строчных букв в строке на заглавные - Assembler
Формулировка задачи:
замена всех букв на заглавные понимаю как, а вот как именно только согласные не доходит.
подскажите что нужно сделать.
TITLE CHANGE ;--------------------------------------------------------------------------------------- DATASG SEGMENT PARA MYTEXT DB 'absolute victory' ,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 PUSH AX MOV AX, DATASG MOV DS, AX LEA BX, MYTEXT MOV CX, 10H MT1: MOV AH, [BX] CMP AH, 61H JB MT2 CMP AH, 7AH JA MT2 CALL COR MT2: INC BX LOOP MT1 LEA DX, MYTEXT MOV AH, 09H INT 21H RET BEGIN ENDP COR PROC NEAR NOP AND AH, 0DFH MOV [BX], AH RET COR ENDP CODESG ENDS END BEGIN
Решение задачи: «Замена согласных строчных букв в строке на заглавные»
textual
Листинг программы
mov bx,offset эталонная_строка_для_подмены mov si,offset исходная_строка mov di,offset строка_для_результата mov cx,sizeof(исходная_строка) @@: lodsb xlat stosb loop @b
Объяснение кода листинга программы
- В начале кода, с помощью инструкции mov, в регистр BX записывается смещение (offset) от начала сегмента данных до эталонной строки для подмены.
- Следующая инструкция mov записывает смещение (offset) от начала сегмента данных до исходной строки в регистр SI.
- В регистр DI записывается смещение (offset) от начала сегмента данных до строки, в которую будут записаны результаты.
- В регистр CX записывается размер исходной строки в байтах, включая завершающий нулевой символ.
- Далее следует цикл, который выполняется до тех пор, пока в регистре CX не станет равным нулю.
- Внутри цикла происходит чтение байта из исходной строки с помощью инструкции lodsb и перевод его в верхний регистр с помощью инструкции xlat.
- Записанный в верхний регистр байт затем записывается в целевую строку с помощью инструкции stosb.
- После выполнения цикла, управление возвращается в начало программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д