Найти наибольшее количество цифр, идущих в ней подряд. Не могу найти ошибку - Assembler
Формулировка задачи:
Добрый день. Есть задание "Дана символьная строка. Найти наибольшее количество цифр, идущих в ней подряд.". Написал код, но он отказывается работать, кто-нибудь может подсказать в чем ошибка?
OutInt
В чем ошибка? уже голову сломал. Спасибо за помощь.
Extrn OutInt:Far data segment string db 100 dup ('$') string2 db 'Input the string!', 0dh,0ah, '$' string3 db 'Count - $' data ends code segment assume cs:code,ds:data start: mov ax, data mov ds, ax mov ah,9 lea dx,string2 int 21h mov ah,0ah lea dx,string int 21h mov ah,9 lea dx,string3 int 21h mov si,offset A mov BX,0 mov DX,0 mov CX,100 looperunda: lodsb test AL,10000000b je nosigno cmp BX,DX jnb neatral mov BX,DX xor DX,DX jmp neatral nosigno: inc DX neatral: loop looperunda mov ax, 16 Call OutInt code ends end start
Title OutInt CodeSg Segment PARA 'Code' OutInt Proc FAR Assume CS:CodeSg Public OutInt aam add ax,3030h mov dl,ah mov dh,al mov ah,02 int 21h mov dl,dh int 21h mov ah, 10h int 16h mov ax, 4c00h int 21h OutInt endp CodeSg ENDS END OutInt
Решение задачи: «Найти наибольшее количество цифр, идущих в ней подряд. Не могу найти ошибку»
textual
Листинг программы
test AL,10000000b je nosigno
Объяснение кода листинга программы
- Переменная
test
содержит значение 10000000b (10 миллионов). - Команда
je nosigno
проверяет, является ли значение переменнойtest
отрицательным числом. Если это так, то выполняется блок кода, начиная с меткиnosigno
. - Если значение переменной
test
не является отрицательным числом, то программа продолжает работу без выполнения блока кода, начиная с меткиnosigno
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д