Заменить десятичную цифру на соответствующую букву русского алфавита - 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           ; выход!

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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