Колличество русских букв в массиве (TASM) - Assembler
Формулировка задачи:
Решение задачи: «Колличество русских букв в массиве (TASM)»
.286 .MODEL SMALL .STACK 100h .DATA mass db 'аывпПрцЙИАмаву' .CODE START: lea si, mass xor cx, cx cycle: mov al, [si] or al, al jz short end_ inc si cmp al, 80h jb short cycle cmp al, 0AFh ja short cycle2 inc cx jmp short cycle cycle2: cmp al, 0E0h jb short cycle cmp al, 0EFh ja short cycle inc cx jmp short cycle end_: mov dx, cx mov ah, 09h int 21h END START
Объяснение кода листинга программы
Выполняемый код на ассемблере отвечает на вопрос: Сколько русских букв в строке?
В данном случае в переменной mass
содержится строка аывпПрцЙИАмаву
.
Код проходит по каждому символу строки. Если символ является русской буквой, то увеличивается счётчик cx
.
Операция jz short end_
проверяет, является ли текущий символ пустым символом. Если это так, то выполнение программы переходит к метке end_
.
Операции jb short cycle
и ja short cycle
проверяют, является ли текущий символ русской буквой. Если это так, то выполнение программы переходит на внутренний цикл.
Внутренний цикл также проверяет, является ли текущий символ русской буквой. Если это так, то увеличивается счётчик cx
.
Операция mov dx, cx
копирует значение счётчика cx
в регистр dx
.
Операция mov ah, 09h
устанавливает регистр ah
равным 9.
Операция int 21h
выводит значение счётчика dx
и значение регистра ah
(что соответствует выводу числа и символа ' ' (пробел))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д