model tiny,pascal
locals @@
.code
org 100h
sizeMas equ 20
sizeNum equ 4
begin: lea dx,dbMas
mov cx,sizeMas
cld
call OutMas,dx,cx
Call SummMas,dx,cx
jz @@01
call SetMas,dx,cx
@@01: call OutMas,dx,cx
xor ax,ax
int 16h
ret
OutMas proc a:word,b:word
uses ax,cx,si
mov al,10
int 29h
mov al,13
int 29h
mov si,a
mov cx,b
xor ax,ax
@@01: lodsb
call OutNum,ax
loop @@01
ret
OutMas endp
OutNum proc a:word
uses ax,bx,cx,dx
mov ax,a
xor cx,cx
mov bl,10
@@01: neg al
js @@01
@@02: xor ah,ah
div bl
inc cx
xchg ah,al
or al,'0'
push ax
xchg ah,al
or al,al
jnz @@02
mov ax,a
and al,80h
mov al,' '
jz @@03
mov al,'-'
@@03: inc cx
push ax
mov al,' '
cmp cx,sizeNum
jnz @@03
@@04: pop ax
int 29h
loop @@04
ret
OutNum endp
SummMas proc a:word,b:word
uses ax,bx,dx,cx,si
xor dx,dx
xor bx,bx
mov si,a
mov cx,b
xor ah,ah
@@01: lodsb
test al,01
jnz @@02
add dx,ax
jmp @@03
@@02: add bx,ax
@@03: loop @@01
@@04: neg bx
js @@04
@@05: neg dx
js @@05
mov ax,bx
sub ax,dx
ret
SummMas endp
SetMas proc a:word,b:word
uses ax,bx,cx,si,di
mov si,a
mov di,a
mov cx,b
xor bx,bx
@@01: lodsb
add ax,bx
stosb
xor bx,1
loop @@01
ret
SetMas endp
dbMas label byte
i = -10
rept sizemas
db i
i =i+1
endm
end begin
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.