Записать в регистр AL количество двухзначных десятичных чисел (от 10 до 99), сумма цифр которых равна k - Assembler

Узнай цену своей работы

Формулировка задачи:

Пусть k – байтовая переменная со значением от 1 до 18. Записать в регистр AL количество двухзначных десятичных чисел (от 10 до 99), сумма цифр которых равна k.

Решение задачи: «Записать в регистр AL количество двухзначных десятичных чисел (от 10 до 99), сумма цифр которых равна k»

textual
Листинг программы
  1. .model small
  2. .386
  3.  
  4. .data
  5. k db 15
  6.  
  7. .stack
  8. db 255 dup(?)
  9.  
  10. .code
  11. start:
  12. mov ax,@data
  13. mov ds,ax
  14.  
  15. xor al,al
  16. mov cx,10
  17. search:
  18. push cx
  19.  
  20. call crack
  21.  
  22. cmp dl,k
  23. jne skip
  24.  
  25. inc al
  26.  
  27. skip:
  28. inc cx
  29.  
  30. cmp cx,100
  31. jne search
  32.  
  33. mov ah,02h
  34. mov dl,al
  35. add dl,30h
  36. int 21h
  37.  
  38. mov ah,4Ch
  39. mov al,00h
  40. int 21h
  41.  
  42. crack proc
  43. push bp
  44. mov bp,sp
  45.  
  46. push ax
  47.  
  48. mov ax,[bp+4]
  49. mov bl,10
  50. div bl
  51.  
  52. add al,ah
  53. mov dl,al
  54.  
  55. pop ax
  56. pop bp
  57.  
  58. retn 2
  59. crack endp
  60. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы