
- •По лабораторной работе №6 – «Ветвления и циклы в ассемблере»
- •1.1 Пми Ковалёв Владислав
- •Idiv Bl
- •Invoke ExitProcess,0
- •Vivod2:
- •Invoke ExitProcess,0
- •Invoke ExitProcess,0
- •Invoke ExitProcess,0
- •Invoke ExitProcess,0
- •Invoke ExitProcess,0
- •Invoke ExitProcess,0
- •Invoke ExitProcess,0
- •Idiv Bl
- •Invoke ExitProcess,0
- •Vivod2:
- •Invoke ExitProcess,0
- •Vivod2:
- •Invoke ExitProcess,0
Vivod2:
mov eax,Mas[esi]
add eax,X
print str$(eax)
print chr$(' ')
add esi,4
sub ebx,1
cmp ebx,0
jnz Vivod2
fn MessageBox,0,str$(X),"наибольший элемент равен:",MB_OK
Invoke ExitProcess,0
end start
22) Дана последовательность из 12 целых натуральных чисел. Подсчитать количество положительных, отрицательных и равных нулю членов последовательности.
include\masm32\include\masm32rt.inc
.data
Mas dd 1,-2,56,-3,67,0,12,-5,-94,75,-45,97
Null dd ?
.code
start:
mov esi,0
mov ebx,12
Vivod:
print str$(Mas[esi])
print chr$(' ')
add esi,4
sub ebx,1
cmp ebx,0
jnz Vivod
mov esi,0
mov ecx,0
mov ebx,0
mov Null,0
begin:
mov eax,Mas[esi]
cmp eax,0
jg bolshce
jl menshce
je rawno
bolshce:
add ecx,1
jmp vse
menshce:
add ebx,1
jmp vse
rawno:
add Null,1
vse:
add esi,4
mov eax,esi
cmp eax,48
jnz begin
fn MessageBox,0,str$(ecx),"количество положительных членов:",MB_OK
fn MessageBox,0,str$(ebx),"количество отрицательных членов:",MB_OK
fn MessageBox,0,str$(Null),"количество 0:",MB_OK
invoke ExitProcess,0
end start
23) Дана последовательность из 12 целых натуральных чисел. Найти сумму положительных членов последовательности и каждый положительных член сложить с полученной суммой.
include\masm32\include\masm32rt.inc
.data
Mas dd 1,-2,56,-3,67,0,12,-5,-94,75,-45,97
X dd ?
.code
start:
mov esi,0
mov ebx,12
Vivod:
print str$(Mas[esi])
print chr$(' ')
add esi,4
sub ebx,1
cmp ebx,0
jnz Vivod
print chr$(' ',10,13)
mov esi,0
mov ecx,0
begin:
mov eax,Mas[esi]
cmp eax,0
jl vse
add ecx,Mas[esi]
vse:
add esi,4
mov eax,esi
cmp eax,48
jnz begin
mov X,ecx
mov esi,0
mov ebx,12
Vivod2:
mov eax,Mas[esi]
cmp eax,0
jl kon
add eax,X
kon:
print str$(eax)
print chr$(' ')
add esi,4
sub ebx,1
cmp ebx,0
jnz Vivod2
fn MessageBox,0,str$(X),"Сумма положительных элементов:",MB_OK
invoke ExitProcess,0
end start
24) Дана последовательность из 12 целых натуральных чисел. Найти сумму отрицательных членов последовательности и каждый положительных член сложить с полученной суммой.
include\masm32\include\masm32rt.inc
.data
Mas dd 1,-2,56,-3,67,0,12,-5,-94,75,-45,97
X dd ?
.code
start:
mov esi,0
mov ebx,12
Vivod:
print str$(Mas[esi])
print chr$(' ')
add esi,4
sub ebx,1
cmp ebx,0
jnz Vivod
print chr$(' ',10,13)
mov esi,0
mov ecx,0
begin:
mov eax,Mas[esi]
cmp eax,0
jg vse
add ecx,Mas[esi]
vse:
add esi,4
mov eax,esi
cmp eax,48
jnz begin
mov X,ecx
mov esi,0
mov ebx,12