
- •По лабораторной работе №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
Invoke ExitProcess,0
end start
16) Дана последовательность из 12 целых натуральных чисел. Найти сумму членов последовательности кратных 9.
include\masm32\include\masm32rt.inc
.data
Mas dd 1,-2,56,-3,67,0,12,-5,-94,75,-45,97
.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
begin:
mov eax,Mas[esi]
mov Bl,9
idiv Bl
cmp Ah,0
jnz nekratno
add ecx,Mas[esi]
nekratno:
add esi,4
mov eax,esi
cmp eax,48
jnz begin
fn MessageBox,0,str$(ecx),"сумма элементов, кратных 9:",MB_OK
invoke ExitProcess,0
end start
17) Дана последовательность из 12 целых натуральных чисел. Найти количество членов последовательности кратных 3 и не кратных 5.
include\masm32\include\masm32rt.inc
.data
Mas dd 1,-2,56,-3,67,0,12,-5,-94,75,-45,97
.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
begin:
mov eax,Mas[esi]
mov Bl,3
idiv Bl
cmp Ah,0
jnz nechetno
mov eax,Mas[esi]
mov Bl,5
idiv Bl
cmp Ah,0
je nechetno
add ecx,1
nechetno:
add esi,4
mov eax,esi
cmp eax,48
jnz begin
fn MessageBox,0,str$(ecx),"Количество элементов кратных 3 и не кратных 5:",MB_OK
invoke ExitProcess,0
end start
18) Дана последовательность из 12 целых натуральных чисел. Вывести четные члены последовательности.
include\masm32\include\masm32rt.inc
.data
Mas dd 1,-2,56,-3,67,0,12,-5,-94,75,-45,97
.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
begin:
mov eax,Mas[esi]
mov Bl,2
idiv Bl
cmp Ah,0
jnz nechetno
print str$(Mas[esi])
print chr$(' ')
nechetno:
add esi,4
mov eax,esi
cmp eax,48
jnz begin
fn MessageBox,0,"Исходный массив и его чётные элементы:","Программа 18",MB_OK
invoke ExitProcess,0
e
nd
start
19) Дана последовательность из 12 целых натуральных чисел. Вывести нечетные члены последовательности.
include\masm32\include\masm32rt.inc
.data
Mas dd 1,-2,56,-3,67,0,12,-5,-94,75,-45,97
.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
begin:
mov eax,Mas[esi]
mov Bl,2
idiv Bl
cmp Ah,0
je chetno
print str$(Mas[esi])
print chr$(' ')
chetno:
add esi,4
mov eax,esi
cmp eax,48
jnz begin
fn MessageBox,0,"Исходный массив и его нечётные элементы:","Программа 19",MB_OK
invoke ExitProcess,0
end start
20) Дана последовательность из 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 edx,Mas[0]
begin:
mov eax,Mas[esi]
cmp eax,edx
jge bolshce
mov edx,Mas[esi]
bolshce:
add esi,4
mov eax,esi
cmp eax,48
jnz begin
mov X,edx
mov esi,0
mov ebx,12
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
21) Дана последовательность из 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 edx,Mas[0]
begin:
mov eax,Mas[esi]
cmp eax,edx
jle menshce
mov edx,Mas[esi]
menshce:
add esi,4
mov eax,esi
cmp eax,48
jnz begin
mov X,edx
mov esi,0
mov ebx,12