Заменить десятичную цифру на соответствующую букву русского алфавита - Assembler
Формулировка задачи:
Написать программу на Assembler, заменяющую все десятичные цифры в исходной строке на соответствующую букву в русском алфавите, если число больше размера алфавита, то начинать сначала.
Цифры на * меняет, а дальше мозгов не хватает:
Заранее большое спасибо.
.model small .286 .data string db '1abc234def567ghi0' len =$-string-1 .code start: mov ax,@data mov ds,ax mov es,ax mov al,'a' mov di,offset string mov cx,len l0: repne scasb mov byte ptr[di-1],'*' jcxz m1 loop l0 m1: mov ah,9 mov dx,offset string int 21h mov ah,0 int 16h mov ah,4ch int 21h end start
Решение задачи: «Заменить десятичную цифру на соответствующую букву русского алфавита»
textual
Листинг программы
ORG 100h JMP start mess DB 'ENTER STRING: $' tabl DB 'ABCDEFGHIJ' start: MOV AH,9 ; запрос на ввод.. MOV DX,mess INT 21h printf: XOR AX,AX ; читаем в AL символ с клавиатуры INT 16h CMP AL,13 ; это ENTER ? JE exit ; да - выход CMP AL,'0' ; это 0? JB skip ; пропустить, если ниже CMP AL,'9' ; это 9? JA skip ; пропустить, если выше AND AL,0Fh ;<====; наш клиент! переводим символ в цифру MOV BX,tabl ; ВХ = адрес таблицы подмены XLATB ; ищем соответствие в таблице skip: INT 29h ; и покажем её JMP printf ; ждём сл.символ.. exit: INT 20h ; выход!
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д