
- •По лабораторной работе №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
Отчёт
По лабораторной работе №6 – «Ветвления и циклы в ассемблере»
1.1 Пми Ковалёв Владислав
1)Дана последовательность из 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
mov esi,0
mov ecx,0
begin:
mov eax,Mas[esi]
mov Bl,2
Idiv Bl
cmp Ah,0
je chetno
add ecx,1
chetno:
add esi,4
mov eax,esi
cmp eax,48
jnz begin
fn MessageBox,0,str$(ecx),"Количество нечётных элементов:",MB_OK
Invoke ExitProcess,0
end start
2) Дана последовательность из 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
mov esi,0
mov ecx,0
begin:
mov eax,Mas[esi]
mov Bl,2
idiv Bl
cmp Ah,0
jnz nechetno
add ecx,1
nechetno:
add esi,4
mov eax,esi
cmp eax,48
jnz begin
fn MessageBox,0,str$(ecx),"Количество чётных элементов:",MB_OK
invoke ExitProcess,0
e
nd
start
3) Дана последовательность из 12 целых натуральных чисел. Определить количество членов последовательности кратных 3.
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 nekratno
add ecx,1
nekratno:
add esi,4
mov eax,esi
cmp eax,48
jnz begin
fn MessageBox,0,str$(ecx),"Количество элементов, кратных 3:",MB_OK
invoke ExitProcess,0
e
nd
start
4) Дана последовательность из 12 целых натуральных чисел. Определить количество членов последовательности некратных 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,5
idiv Bl
cmp Ah,0
je kratno
add ecx,1
kratno:
add esi,4
mov eax,esi
cmp eax,48
jnz begin
fn MessageBox,0,str$(ecx),"Количество элементов, некратных 5:",MB_OK
invoke ExitProcess,0
e
nd
start
5) Дана последовательность из 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
mov esi,0
mov ecx,0
begin:
mov eax,Mas[esi]
mov Bl,2
idiv Bl
cmp Ah,0
jnz nechetno
mov eax,Mas[esi]
mov Bl,4
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),"Количество удвоенных нечётных чисел:",MB_OK
invoke ExitProcess,0
end start
6) Дана последовательность из 12 целых натуральных чисел. Определить количество членов последовательности некратных 7.
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,7
idiv Bl
cmp Ah,0
je kratno
add ecx,1
kratno:
add esi,4
mov eax,esi
cmp eax,48
jnz begin
fn MessageBox,0,str$(ecx),"Количество элементов, некратных 7:",MB_OK
invoke ExitProcess,0
e
nd
start
7) Дана последовательность из 12 целых натуральных чисел. Все отрицательные члены последовательности обнулить, а положительные увеличить на 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
print chr$(' ',10,13)
mov esi,0
begin:
mov eax,Mas[esi]
cmp eax,0
jg bolshce
jl menshce
je vse
bolshce:
add eax,5
jmp vse
menshce:
mov eax,0
vse:
mov Mas[esi],eax
add esi,4
mov eax,esi
cmp eax,48
jnz begin
mov esi,0
mov ebx,12
Vivod2:
print str$(Mas[esi])
print chr$(' ')
add esi,4
sub ebx,1
cmp ebx,0
jnz Vivod2
fn MessageBox,0,"Исходный и полученный массивы:","Программа 7",MB_OK
invoke ExitProcess,0
end start
8) Дана последовательность из 12 целых натуральных чисел. Все члены последовательности большие 10 заменить на 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
print chr$(' ',10,13)
mov esi,0
begin:
mov eax,Mas[esi]
cmp eax,10
jle menshce
mov eax,5
menshce:
mov Mas[esi],eax
add esi,4
mov eax,esi
cmp eax,48
jnz begin
mov esi,0
mov ebx,12