Вывод кодов 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
Объяснение кода листинга программы
- Загружается значение регистра
ahс константой2, которая указывает, что программа будет выполнять функцию вывода символа. - Регистру
dlприсваивается значение регистраal, которое, вероятно, содержит ASCII-код символа, который нужно вывести. - Вызывается прерывание
21h, которое вызывает сервис DOS для вывода символа, находящегося в регистреdl.