Не могу вывести значение в консоль (tasm) - Assembler

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

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

Привет, коллеги. У меня есть код на tasm:
Листинг программы
  1. .8086
  2. .model small
  3. .stack 100h
  4. .data
  5. mass db 1,4,5,3,6
  6. summ dw 0
  7. s db 'Значение = $'
  8. medium db 0
  9. modd db 0
  10. .code
  11. proc_1 proc
  12. mov cx, 5
  13. lea si, [mass]
  14. mov al, byte ptr[mass]
  15. l1:
  16. mov bl,[si+1]
  17. add ax, bx
  18. inc si
  19. loop l1
  20. mov summ, ax
  21. mov dl, 5
  22. div dl
  23. add medium, al
  24. add modd, ah
  25. ret 12
  26. proc_1 endp
  27. start:
  28. mov ax, @data
  29. mov ds, ax
  30. xor ax, ax
  31. xor bx, bx
  32. call proc_1
  33. ;вывод на экран
  34. xor ax,ax
  35. xor dl,dl
  36. mov al,medium
  37. aam
  38. add ax, 3030h
  39. mov dl, ah
  40. mov dh, al
  41. mov ah,02
  42. int 21h
  43. mov dl, dh
  44. int 21h
  45. exit:
  46. mov ax, 4C00h
  47. int 21h
  48. end start
Не получается вывести значение среднего арифметического чисел (medium) в консоль. Подскажите, плиз...

Решение задачи: «Не могу вывести значение в консоль (tasm)»

textual
Листинг программы
  1. lea si,mass
  2.     go:        
  3.     lodsw
  4.     add bx,ax
  5.     loop go
  6.     mov ax,bx

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

  1. lea si,mass - в данном коде используется инструкция LEA (Load Effective Address), которая загружает в регистр SI адрес переменной mass.
  2. go: - это метка, к которой происходит переход в начале цикла.
  3. lodsw - это инструкция LOD (Load String), которая загружает в регистры AX и BX два байта данных из памяти по адресу, который находится в регистре SI.
  4. add bx,ax - происходит сложение содержимого регистра BX и AX. Результат будет записан в регистр BX.
  5. loop go - это цикл, который будет выполняться до тех пор, пока не будет выполнено условие (результат сравнения в регистре BX не станет равным нулю).
  6. mov ax,bx - происходит копирование содержимого регистра BX в регистр AX.

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


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

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

10   голосов , оценка 4.2 из 5

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

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

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