Записать в регистр 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

Объяснение кода листинга программы

  1. Подключение необходимых заголовочных файлов: .model small .386
  2. Определение данных: k db 15
  3. Выделение стека: .stack db 255 dup(?)
  4. Начальный код программы: 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
  5. Вывод результата: mov ah,02h mov dl,al add dl,30h int 21h
  6. Завершение работы программы: mov ah,4Ch mov al,00h int 21h
  7. Определение процедуры 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
  8. Окончание кода программы: end start

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы