Консультация № 172904
05.10.2009, 00:49
25.00 руб.
0 2 0
Здраствуйте,
Мне нужно написать программу, которая выведет количество букв в строке, т.е. если строка "d565hvfrd1cvv2c1x2x" то программа должна вывести: 12. В приложении код, только как реализовать вывод числа больше 9 я незнаюпомогите исправить кусок кода после otpechatovat: чтобы если в регистре cx будет 7C то на экран отпечаталобы 124, желательно кусок кода.
Заранее спасибо.
С Уважением, Станислав :)

Приложение:
.model small
.Stack 100h
.Data

Buff db 'dk654j6546sd5f46sd5g4ds6fkld$'


.Code

mov ax,@data ;
mov ds,ax ; Init data segment
xor cx,cx ; set CX = 0
lea si,buff ; get offset to BUFF

programa:
lodsb
cmp al, '$'
je pabaiga
cmp al, 91
jb pervyi_interval
cmp al, 96
ja vtoroj_interval
inc cx
jmp programa
pervyi_interval:
cmp al, 65
jb programa
inc cx
jmp programa
vtoroj_interval:
cmp al, 122
ja programa
inc cx
jmp programa
konec:
or cx, cx
jz Exit
call otpechatovat
Exit:
mov ah, 4Ch
int 21h


otpechatovat:
push ax ; save AX
push dx ; save DX
mov Dl,cl ; get counter
add dl,'0' ; convert digit to symbol
mov ah, 02h ; print it
int 21h
jmp exitprint_numb


exitprint_numb:
pop dx ; restore DX
pop ax ; restore AX
ret
END

Обсуждение

Неизвестный
05.10.2009, 07:57
общий
используйте поиск вопрос поднимался много раз
URL >>172065
давно
Посетитель
7438
7205
05.10.2009, 10:00
общий
Станислав:
Пробуйте, если не получится, пишите, подправим...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа