Вывод кодов ascii каждого символа строки - Assembler

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

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

Вводится строка символов (буквы, цифры). Нужно вывести их коды ascii, а не сами символы (как в этом примере)
  .stack 100h
.data 
string db 161 dup ('$')
dlina db 10 dup (0)  
n db ?
    ;vivod  
    enter db 'enter:', 0Dh, 0Ah, '$'
    newstring db 0Dh, 0Ah, '$'
    result db 'result:', 0Dh, 0Ah, '$'
.code      
start:
mov ax, data
mov ds, ax
mov es, ax  
;vvod
 
    mov ah,09h
    mov dx, offset enter
    int 21h
    mov ah,0ah
    mov dx, offset string
    int 21h  
;vivod
    mov ah,09h
    mov dx, offset newstring
    int 21h
    mov ah,09h
    mov dx, offset result
    int 21h
    mov ah,09h
    lea dx, string+2
    int 21h   
 
;konec
mov ah, 4ch
int 21h  
code ends
end start

Решение задачи: «Вывод кодов ascii каждого символа строки»

textual
Листинг программы
    mov ah,2
    mov dl,al
    int 21h

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

  1. Загружается значение регистра ah с константой 2, которая указывает, что программа будет выполнять функцию вывода символа.
  2. Регистру dl присваивается значение регистра al, которое, вероятно, содержит ASCII-код символа, который нужно вывести.
  3. Вызывается прерывание 21h, которое вызывает сервис DOS для вывода символа, находящегося в регистре dl.

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

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