Записать в регистр AL количество двухзначных десятичных чисел (от 10 до 99), сумма цифр которых равна k - Assembler
Формулировка задачи:
Пусть k – байтовая переменная со значением от 1 до 18. Записать в регистр AL количество двухзначных десятичных чисел (от 10 до 99), сумма цифр которых равна k.
Решение задачи: «Записать в регистр AL количество двухзначных десятичных чисел (от 10 до 99), сумма цифр которых равна k»
textual
Листинг программы
.model small .386 .data k db 15 .stack db 255 dup(?) .code start: mov ax,@data mov ds,ax xor al,al mov cx,10 search: push cx call crack cmp dl,k jne skip inc al skip: inc cx cmp cx,100 jne search mov ah,02h mov dl,al add dl,30h int 21h mov ah,4Ch mov al,00h int 21h crack proc push bp mov bp,sp push ax mov ax,[bp+4] mov bl,10 div bl add al,ah mov dl,al pop ax pop bp retn 2 crack endp end start
Объяснение кода листинга программы
- Подключение необходимых заголовочных файлов: .model small .386
- Определение данных: k db 15
- Выделение стека: .stack db 255 dup(?)
- Начальный код программы: start: mov ax,@data mov ds,ax xor al,al mov cx,10 search: push cx call crack cmp dl,k jne skip inc al skip: inc cx cmp cx,100 jne search
- Вывод результата: mov ah,02h mov dl,al add dl,30h int 21h
- Завершение работы программы: mov ah,4Ch mov al,00h int 21h
- Определение процедуры crack: crack proc push bp mov bp,sp mov ax,[bp+4] mov bl,10 div bl add al,ah mov dl,al pop ax pop bp retn 2 crack endp
- Окончание кода программы: end start
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д