Читайте также:
|
|
{$l iva2.obj}
uses
crt;
const
c=15;
type
mas = array[0..c-1] of integer;
position = 0..c-1;
var a,b: mas;
i,cons: integer;
srcel,srdrob,vsego: integer;
procedure
InAsm(var cons:integer;var a:mas; var b:mas; var srcel:integer; var srdrob:integer); external;
begin
clrscr;
randomize;
writeln('Исходный массив’);
for i:=0 to c-1 do
begin
a[i]:=-5+random(10);
write(a[i]:4);
b[i]:=0; { обнуляем второй массив }
end;
cons:=c;
InAsm(cons,a,b,srcel,srdrob);
writeln;
writeln('Побочный массив');
for i:=0 to c-1 do write(b[i]:4);
writeln;
if (srcel=0) and (srdrob=0) then writeln('Нет ни единого положительного числа')
else
writeln('Среднее арифметическое: ',srcel);
readkey;
end.
{iva2.asm}
;InAsm(var cons:integer; var a:mas; var b:mas; var srcel:integer); external;
.286
public InAsm
code segment byte public; выравнивание и класс
assume cs:code; связь между сегментом и сегментным регистром
InAsm proc near
push bp
mov bp,sp
pusha
;определим минильное число и его позицию
lds si,[bp+20]
mov cx,[si]
lds si,[bp+16]
mov ax,[si]
mov di,si
mov bx,cx
@2: cmp [si],ax
jg @1
mov ax,[si]
mov bx,cx
mov di,si
@1: add si,2
loop @2
;запишем во второй массив все элементы первого за минимальным
lds si,[bp+12]
mov cx,bx
dec cx
@3: add di,2
mov ax,[di]
mov [si],ax
add si,2
loop @3
;найдем среднее арифметическое всех положительных второго массива
lds si,[bp+12]
mov cx,bx
xor ax,ax
xor bx,bx
@4: mov dx,[si]
cmp dx,0
jle @5
inc bx
add ax,[si]
@5: add si,2
loop @4
xor dx,dx
cmp ax,0
je @6
div bx
@6: lds si,[bp+8]
mov [si],ax
lds si,[bp+4]
mov [si],dx
;выходим из процедуры
popa
pop bp;извлечь из стека
ret 10;10 приб-ся к указателю стека
inasm endp
code ends
end
Дата добавления: 2015-08-02; просмотров: 115 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Дан массив из 40 символов, содержащий слова, разделенные одним пробелом. Определить, сколько раз каждое слово встречается в этом массиве. | | | Определить средн. арифм. положительных чисел, лежащих после минимального значения в массиве B[1..N]. Числа до минимального рассортировать по возрастанию. |