Составители:
Рубрика:
45
IN_STR db 80, ?, 82 dup (?) ; буфер ввода
OUT_STR db 0Dh, 0Ah, ?,’-‘,?, ?,’$’ ; буфер вывода
data ends
code segment
assume cs:code, ds:data
START: mov ax, data
mov ds, ax ; Загрузить сегментный адрес данных
; Ввод строки
lea dx, IN_STR
mov ah, 0ah
int 21h
; Обработка
xor ah, ah ; обнуление старшего байта AX
lea bx, IN_STR+2 ; адрес начала введённой строки
xor cx, cx
mov cl, IN_STR+1 ; количество введенных символов
ВВ: mov al, [BX] ; очередной символ строки
cmp al,’0’ ; код символа меньше чем код нуля?
jb NC ; да, не цифра
cmp al, ‘9’ ; код символа больше чем код
девяти
ja NC ; да, не цифра
; символ - десятичная цифра
sub al, ‘0’ ; преобразуем ASCII код в число
mov si, ax ; индекс в массиве счетчиков COUNT
inc COUNT[si] ; увеличиваем счетчик цифр
NC: inc bx ; получить очередной символ строки
loop BB
; Вывод результатов
IN_STR db 80, ?, 82 dup (?) ; буфер ввода OUT_STR db 0Dh, 0Ah, ?,’-‘,?, ?,’$’ ; буфер вывода data ends code segment assume cs:code, ds:data START: mov ax, data mov ds, ax ; Загрузить сегментный адрес данных ; Ввод строки lea dx, IN_STR mov ah, 0ah int 21h ; Обработка xor ah, ah ; обнуление старшего байта AX lea bx, IN_STR+2 ; адрес начала введённой строки xor cx, cx mov cl, IN_STR+1 ; количество введенных символов ВВ: mov al, [BX] ; очередной символ строки cmp al,’0’ ; код символа меньше чем код нуля? jb NC ; да, не цифра cmp al, ‘9’ ; код символа больше чем код девяти ja NC ; да, не цифра ; символ - десятичная цифра sub al, ‘0’ ; преобразуем ASCII код в число mov si, ax ; индекс в массиве счетчиков COUNT inc COUNT[si] ; увеличиваем счетчик цифр NC: inc bx ; получить очередной символ строки loop BB ; Вывод результатов 45
Страницы
- « первая
- ‹ предыдущая
- …
- 43
- 44
- 45
- 46
- 47
- …
- следующая ›
- последняя »