Найти сумму элементов массива (tasm) - Assembler
Формулировка задачи:
Добрый вечер.
Задача: найти сумму элементов массива.
Не могу найти ошибку,после запуска зависает сразу,не выводя ничего на экран и не реагирует.
Заранее спасибо
lab1 segment assume cs:lab1, ds:lab1, es:lab1, ss:lab1 org 100h begin: jmp main m db 1, 23, 10 db 6, 43, 78 db 4, 3, 45 s dw 0 afis db 0,0,0,0,0,'$' str0 label byte max0 db 6 real0 db ? date0 db 6 dup (0) cit label byte max1 db 1 real1 db ? date1 db 0 mes0 db 0Ah, 0Dh, '$' mes4 db 'Rezult: $' num_ASCII proc xor bh, bh mov bl, 10 lea si, afis+4 e_p1: xor dx, dx cmp ax, 0 je e_p2 div bx add dx, 30h mov [si], dl dec si jmp e_p1 e_p2:ret num_ASCII endp main: lea bx,m mov cx,3 ; кол-во строк m1: push cx mov cx,3 ; кол-во столбцов mov si,0 m2: xor cx,cx mov al,[bx+si] add s,ax inc si loop m2 add bx,6 pop cx loop m1 ;вывод call num_ASCII mov ah, 9 lea dx, mes0 int 21h lea dx, mes4 int 21h lea dx, afis int 21h mov ah, 0Ah lea dx, cit int 21h ret lab1 ends end begin
Решение задачи: «Найти сумму элементов массива (tasm)»
textual
Листинг программы
mov cx,3 ; кол-во строк m1: push cx mov cx,3 ; кол-во столбцов mov si,0 m2: xor cx,cx;зачем сбрасываете mov al,[bx+si] add s,ax inc si loop m2;У Вас получается три очень долгих цикла гы-гы add bx,6;у Вас три элемента по пойту pop cx loop m1
Объяснение кода листинга программы
- mov cx,3 ; кол-во строк
- push cx
- mov cx,3 ; кол-во столбцов
- mov si,0
- xor cx,cx;зачем сбрасываете
- mov al,[bx+si]
- add s,ax
- inc si
- loop m2;У Вас получается три очень долгих цикла гы-гы
- add bx,6;у Вас три элемента по пойту
- pop cx
- loop m1
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д