;массив из 10 эл-тов
.model small
.stack 100h
.data
mas db 15,1,3,0,2,4,0,2,4,1
pro dw 0,"$" ;произведение
max db 0,"$"
frs db 0
sec db 0
mes db "Error",13,10"$"
.code
start:
mov ax,@data
mov ds,ax
xor cx,cx
xor ax,ax
mov si,0
;-----------------------поиск максимального эл-та--------
pmax: cmp mas[si],max
js maxel
;-----------------------поиск нулей, контроль индекса----
a: cmp mas[si],0
jz nul
cmp si,9
inc si
jnz pmax
jz vmax
;------------------------запись максимального эл-та------
maxel: mov max,mas[si]
jmp a
;-------------------------установка нулей----------------
nul: cmp frs,sec
jz 1n
jnz 2n
1n: mov frs,si
2n: mov sec,si
inc si
jmp pmax
;------------------------вывод макс знач-----------------
vmax: mov dx,offset max
mov ah,09h
int 21h
;------------------------проверка нулей------------------
cmp frs,sec
jz err
inc frs
cmp frs,sec
dec frs
jz err
jnz end
err: mov dx,offset mes
mov ah,09h
int21
end start
|end: mov si,frs
| inc si
| mov al,mas[si]
| mov cl,
| mul cl
|
|end start
Tasm, не могу довести до ума
Добрый день, уважаемые. Хотел бы попросить помочь мне дописать программу. С ассемблером пока не очень, привык к языкам типа С и Pascal. Проблема в том что вроде все сделано логически верно, но не были использованы регистры(все действия проводил с переменными). Ну и конечный блок, где нужно найти произведение не доведен до ума.
блиин самое главное забыл! Задание: найти произведение чисел, находящихся между крайними нулями, а также найти самое большое число.