Найти сумму элементов массива (tasm) - Assembler

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

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

Добрый вечер. Задача: найти сумму элементов массива. Не могу найти ошибку,после запуска зависает сразу,не выводя ничего на экран и не реагирует.
Листинг программы
  1. lab1 segment
  2. assume cs:lab1, ds:lab1, es:lab1, ss:lab1
  3. org 100h
  4. begin: jmp main
  5. m db 1, 23, 10
  6. db 6, 43, 78
  7. db 4, 3, 45
  8. s dw 0
  9. afis db 0,0,0,0,0,'$'
  10. str0 label byte
  11. max0 db 6
  12. real0 db ?
  13. date0 db 6 dup (0)
  14. cit label byte
  15. max1 db 1
  16. real1 db ?
  17. date1 db 0
  18. mes0 db 0Ah, 0Dh, '$'
  19. mes4 db 'Rezult: $'
  20. num_ASCII proc
  21. xor bh, bh
  22. mov bl, 10
  23. lea si, afis+4
  24. e_p1:
  25. xor dx, dx
  26. cmp ax, 0
  27. je e_p2
  28. div bx
  29. add dx, 30h
  30. mov [si], dl
  31. dec si
  32. jmp e_p1
  33. e_p2:ret
  34. num_ASCII endp
  35. main:
  36. lea bx,m
  37. mov cx,3 ; кол-во строк
  38. m1:
  39. push cx
  40. mov cx,3 ; кол-во столбцов
  41. mov si,0
  42. m2:
  43. xor cx,cx
  44. mov al,[bx+si]
  45. add s,ax
  46. inc si
  47. loop m2
  48. add bx,6
  49. pop cx
  50. loop m1
  51. ;вывод
  52. call num_ASCII
  53. mov ah, 9
  54. lea dx, mes0
  55. int 21h
  56. lea dx, mes4
  57. int 21h
  58. lea dx, afis
  59. int 21h
  60. mov ah, 0Ah
  61. lea dx, cit
  62. int 21h
  63. ret
  64. lab1 ends
  65. end begin
Заранее спасибо

Решение задачи: «Найти сумму элементов массива (tasm)»

textual
Листинг программы
  1.     mov cx,3 ; кол-во строк
  2. m1:
  3.     push cx
  4.     mov cx,3 ; кол-во столбцов
  5.     mov si,0
  6.  
  7. m2:
  8.     xor cx,cx;зачем сбрасываете
  9.     mov al,[bx+si]
  10.     add s,ax
  11.     inc si
  12.     loop m2 Вас получается три очень долгих цикла гы-гы
  13.    
  14. add bx,6 Вас три элемента по пойту
  15. pop cx
  16. loop m1

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

  1. mov cx,3 ; кол-во строк
  2. push cx
  3. mov cx,3 ; кол-во столбцов
  4. mov si,0
  5. xor cx,cx;зачем сбрасываете
  6. mov al,[bx+si]
  7. add s,ax
  8. inc si
  9. loop m2;У Вас получается три очень долгих цикла гы-гы
  10. add bx,6;у Вас три элемента по пойту
  11. pop cx
  12. loop m1

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


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

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

13   голосов , оценка 4.538 из 5

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

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

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