У вещественной матрицы А размерности nxn найти произведение элементов, принадлежащих отрезку [1, 10] - Assembler
Формулировка задачи:
У вещественной матрицы А размерности nxn найти произведение элементов, принадлежащих отрезку [1, 10].
Организовать ввод-вывод элементов матрицы. На экран выводить исходную матрицу и значение произведения.
Ввод-вывод сделал, а вот с произведением траблы.
P.S. help
Решение задачи: «У вещественной матрицы А размерности nxn найти произведение элементов, принадлежащих отрезку [1, 10]»
textual
Листинг программы
;------------------------ extrn vvod:near,disp:near Dseg segment para public 'data' mas db 10 dup (?) sum db 5 dup(0) mes1 db 'n=$' mes2 db 'm=$' mes3 db 'mas[$' mes4 db ',$' mes5 db ']=$' mes6 db 'Исходный массив$' mes7 db 10,13,'$' mes9 db ' $' mes10 db 'Полученный вектор$' n dw ? m dw ? Dseg ends ;------------------------------ Sseg segment para stack 'stack' db 30 dup(0) Sseg ends ;----------------------------- Cseg segment para public 'code' osn proc near assume cs:cseg,ds:dseg,ss:sseg mov ax,dseg mov ds,ax ;---------------------------- ;---------------------------- ; ввод элементов массива ; ввод n lea dx,mes1 mov ax,0900h int 21h call vvod mov n,bx ; ввод m lea dx,mes2 mov ax,0900h int 21h call vvod mov m,bx ; ввод самих элементов mov cx,n ;число для внешнего цикла по строкам mov si,0 ;строки в матрице mov bx,offset mas ;строки в матрице (смещение ; адреса переменной внутри сегмента) zikl_i: push cx ;сохраняем содержимое р-ра cx в стеке mov cx,m ;число для внутреннего цикла ; (по столбцам) mov di,0 ;столбцы в матрице zikl_j: lea dx,mes3 ;mas[ mov ax,0900h int 21h mov ax,si call disp ; вывод значения на экран ; mov ah,02h ;ф-я вывода значения из dx на экран ; mov dx,si ; add dx,0030h ;преобразование числа в символ ; int 21h lea dx,mes4 ; , mov ax,0900h int 21h mov ax,di call disp lea dx,mes5 ;]= mov ax,0900h int 21h push bx call vvod mov dl,bl pop bx mov mas[bx][di],dl ;первый способ обращения к элементам двумерного массива inc di loop zikl_j pop cx add bx,m ;увеличиваем на кол-во эл-тов в строке inc si loop zikl_i ;---------------------------- ; вывод элементов массива lea dx,mes6 ;Исходная матрица mov ax,0900h int 21h lea dx,mes7 ;перевод курсора на начало строки mov ax,0900h int 21h mov cx,n ;число для внешнего цикла по строкам mov si,0 ;строки в матрице mov bx,offset mas ;строки в матрице (смещение адреса переменной внутри сегмента) zikl_i1: push cx ;сохраняем содержимое р-ра cx в стеке mov cx,m ;число для внутреннего цикла (по столбцам) mov di,0 ;столбцы в матрице zikl_j1: mov al,[bx][di] ;второй способ обращения к эл-там двумерного массива cbw call disp lea dx,mes9 ;пробел mov ax,0900h int 21h inc di loop zikl_j1 pop cx add bx,m ;увеличиваем на кол-во эл-тов в строке inc si lea dx,mes7 ;перевод курсора на начало новой строки mov ax,0900h int 21h loop zikl_i1 ;---------------------------- mov EBX,0 mov al,n cbw imul n sub al,1 mov ECX,al cycl: cmp al,a ; завершение программы mov ax,4c00h int 21h osn endp Cseg ends end osn
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д