Программа работает. Только надо результат записать в текстовый файл. А вот с этим проблемы. Никак не могу разобраться!!!( Если кто-то знает ассемблер, то пожалуйста помогите с выводом.
Вот сама программа (1. Задан одномерный массив двухбайтовых знаковых чисел. Необходимо разработать программу для подсчета суммы положительных элементов массива.)
.stack 100h
.data
filename db 'resultat.txt',0 ;sozdanie file
handle dw ?
result db "Resultat: $"
len equ 10 ; kol-vo elementov v mas
mas dw 0,0, 4, -5, -3, 6, -2, -4, 6,1
sum dw 0
.code
mov ax,@dat
mov ds,ax
mov cx, len ; kol-vo elementov massiva - chislo povtoreniy cikla
mov si, offset mas
m1:
lodsw ;test flagov (test)
or ax, ax ;logichensko ili (bit 1)
js m2 ; perexod
add sum, ax ;proverka nyly (dobovlyaem)
m2:
loop m1 ; cick
mov ax, sum
xor ax, ax ;index i, numeracia s 0
mov ax, sum
outInt proc
test ax, ax ; proverka flagov
jnc oi1 ; perexod
mov cx, ax
mov ah, 02h
mov dl, '_'
int 21h
mov ax, cx
neg ax ;kolvo cifr derghitsa v CX
oi1:
xor cx, cx
mov bx, 10 ;osnovanie cc. 10 dly desyterchnoy
;proverka na chentost
oi2:
xor dx, dx ;prisvaivanie resultata (ne ravno <>)
div bx ;delenie
push dx ;razmechenie znachenie v steke +4
inc cx
test ax, ax ; proverka flagov
jnz oi2 ; perexod
mov ah, 02h ; vyvod, esli ...
;proverka na nechetnost
oi3:
pop dx ; razmechenie znachenie v steke -4
cmp dl, 9 ;sravnenie chisel
jbe oi4 ; perexod
add dl,7
oi4:
add dl, '0'
int 21h ; vyvod
loop oi3 ; cikl
OutInt endp
mov ax,4c00h
int 21h ; vozvrat
end