
Отчет по лабораторной работе №4 студента 1 курса 1.1.ПМиИ Грековой Александры.
Задание 1.
include\masm32\include\masm32rt.inc
.data
Simvol db ?
Prosto_Tak db 0
Stroka db "Грекова Александра Андреевна",0
.code
start:
mov eax,offset Stroka
fn MessageBox,0,eax,"Моё полное имя",MB_OK
lea esi,Stroka
mov edi,-1
telo:
mov Al,[esi]
add esi,1
add edi,1
cmp Al,' '
jnz telo
mov al,[esi]
mov Stroka[edi],42
mov Simvol,al
mov ebx, offset Simvol
fn MessageBox,0,ebx,"Первая буква имени",MB_OK
telo1:
mov Al,[esi]
add esi,1
add edi,1
cmp Al,' '
jnz telo1
mov al,[esi]
mov Stroka[edi],42
mov Simvol,al
mov ebx, offset Simvol
fn MessageBox,0,ebx,"Первая буква отчества",MB_OK
mov eax,offset Stroka
fn MessageBox,0,eax,"Мои Ф.И.О.",MB_OK
invoke ExitProcess,0
end start
Результат
Задание 2.
Пример 1
Задайте массив 12 целых чисел. Сложите три числа с номерами 0,6,9. include \masm32\include\masm32rt.inc
.data
a dd 23,16,261,28,547,78,76,12,13,80,24,97
.code
start:
mov eax,a[0]
add eax,a[24]
add eax,a[36]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 0,6 и 9",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 2
Задайте массив 12 целых чисел. Сложите три числа с номерами 3,7,11.
include \masm32\include\masm32rt.inc
.data
a dd 15,16,21,28,57,7,76,34,13,802,50,97
.code
start:
mov eax,a[12]
add eax,a[28]
add eax,a[44]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 3,7 и 11",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 3
Задайте массив 12 целых чисел. Сложите три числа с номерами 2,6,7
include \masm32\include\masm32rt.inc
.data
a dd 23,167,21,8,47,78,76,2,3,90,24,997
.code
start:
mov eax,a[8]
add eax,a[24]
add eax,a[28]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 2,6 и 7",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 4
Задайте массив 12 целых чисел. Сложите три числа с номерами 1,3,9.
include \masm32\include\masm32rt.inc
.data
a dd 236,17,219,87,7,78,76,2,39,70,4,97
.code
start:
mov eax,a[4]
add eax,a[12]
add eax,a[36]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 1,3 и 9",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 5
Задайте массив 12 целых чисел. Сложите три числа с номерами 1,5,9.
include \masm32\include\masm32rt.inc
.data
a dd 31,16,21,28,47,78,78,126,143,80,24,97
.code
start:
mov eax,a[4]
add eax,a[20]
add eax,a[36]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 1,5 и 9",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 6
Задайте массив 12 целых чисел. Сложите три числа с номерами 4,5,9
include \masm32\include\masm32rt.inc
.data
a dd 1,161,21,2,47,781,78,12,143,8,24,97
.code
start:
mov eax,a[16]
add eax,a[20]
add eax,a[36]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 4,5 и 9",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 7
Задайте массив 12 целых чисел. Сложите три числа с номерами 3,6,8.
include \masm32\include\masm32rt.inc
.data
a dd 13,11,21,22,47,71,8,126,13,18,84,9
.code
start:
mov eax,a[12]
add eax,a[24]
add eax,a[32]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 3,6 и 8",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 8
Задайте массив 12 целых чисел. Сложите три числа с номерами 7,8,10.
include \masm32\include\masm32rt.inc
.data
a dd 163,131,251,22,45,751,87,16,13,18,84,95
.code
start:
mov eax,a[28]
add eax,a[32]
add eax,a[40]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 7,8 и 10",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 9
Задайте массив 12 целых чисел. Сложите три числа с номерами 2,6,7.
include \masm32\include\masm32rt.inc
.data
a dd 163,11,51,223,45,751,847,196,137,180,84,95
.code
start:
mov eax,a[8]
add eax,a[24]
add eax,a[28]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 2,6 и 7",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 10
Задайте массив 12 целых чисел. Сложите три числа с номерами 0,3,5.
include \masm32\include\masm32rt.inc
.data
a dd 13,11,51,23,45,751,87,96,17,10,4,995
.code
start:
mov eax,a[0]
add eax,a[12]
add eax,a[20]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 0,3 и 5",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 11
Задайте массив 12 целых чисел. Сложите три числа с номерами 1,3,8.
include \masm32\include\masm32rt.inc
.data
a dd 1,161,221,2,47,711,728,121,143,83,24,97
.code
start:
mov eax,a[4]
add eax,a[12]
add eax,a[32]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 1,3 и 8",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 12
Задайте массив 12 целых чисел. Сложите три числа с номерами 5,6,9.
include \masm32\include\masm32rt.inc
.data
a dd 15,16,21,2,47,11,78,11,13,834,24,975
.code
start:
mov eax,a[20]
add eax,a[24]
add eax,a[36]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 5,6 и 9",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 13
Задайте массив 12 целых чисел. Сложите три числа с номерами 4,7,11.
include \masm32\include\masm32rt.inc
.data
a dd 159,196,2,22,7,81,758,151,3,8,24,75
.code
start:
mov eax,a[16]
add eax,a[28]
add eax,a[44]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 4,7 и 11",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 14
Задайте массив 12 целых чисел. Сложите три числа с номерами 0,2,10.
include \masm32\include\masm32rt.inc
.data
a dd 159,19666,25,52,7,81,78,11,34,83,24,75
.code
start:
mov eax,a[0]
add eax,a[8]
add eax,a[40]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 0,2 и 10",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 15
Задайте массив 12 целых чисел. Сложите три числа с номерами 4,6,8.
include \masm32\include\masm32rt.inc
.data
a dd 159,166,25,52,0,81,0,11,0,83,24,75
.code
start:
mov eax,a[16]
add eax,a[24]
add eax,a[32]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 4,6 и 8",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 16
Задайте массив 12 целых чисел. Сложите три числа с номерами 1,2,3.
include \masm32\include\masm32rt.inc
.data
a dd 23,16,21,28,57,78,876,12,13,80,24,797
.code
start:
mov eax,a[4]
add eax,a[8]
add eax,a[12]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 1,2 и 3",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 17
Задайте массив 12 целых чисел. Сложите три числа с номерами 5,6,2.
include \masm32\include\masm32rt.inc
.data
a dd 159,16,235,522,176,1,60,11,40,83,24,75
.code
start:
mov eax,a[20]
add eax,a[24]
add eax,a[8]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 5,6 и 2",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 18
Задайте массив 12 целых чисел. Сложите три числа с номерами 11,6,1.
include \masm32\include\masm32rt.inc
.data
a dd 15,186,235,542,76,16,606,117,4,3,24,75
.code
start:
mov eax,a[44]
add eax,a[24]
add eax,a[4]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 11,6 и 1",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 19
Задайте массив 12 целых чисел. Сложите три числа с номерами 10,2,3.
include \masm32\include\masm32rt.inc
.data
a dd 15,86,35,542,7,176,60,17,54,34,524,75
.code
start:
mov eax,a[40]
add eax,a[8]
add eax,a[12]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 10,2 и 3",MB_OK
invoke ExitProcess,0
end start
Результат
Пример 20
Задайте массив 12 целых чисел. Сложите три числа с номерами 0,7,11.
include \masm32\include\masm32rt.inc
.data
a dd 12,26,5,42,7,116,60,17,1454,324,3524,75
.code
start:
mov eax,a[0]
add eax,a[28]
add eax,a[44]
fn MessageBox,0,str$(eax),"Сумма элементов под номерами 0,7 и 11",MB_OK
invoke ExitProcess,0
end start
Результат
Задание 3
Пример 1
Задайте двумерный массив 4*5 целых чисел. Сложите два числа: первое – из строки 3, столбца 2; второе - из строки 4, столбца 5.
include/masm32/include/masm32rt.inc
.data
mas dd 23,45,2,69,32,56,83,1,654,89,32,76,13,90,47,24,85,38,37,21
i=4
j=5
el_size=1
.code
start:
lea esi,mas
add esi,44
mov eax,[esi]
add esi,32
add eax,[esi]
fn MessageBox,0,str$(eax),"summa",MB_OK
Invoke ExitProcess,0
end start
Результат
Пример 2
Задайте двумерный массив 4*5 целых чисел. Сложите два числа: первое – из строки 2, столбца 3; второе - из строки 3, столбца 4.
include/masm32/include/masm32rt.inc
.data
mas dd 23,45,2,69,32,56,83,1,654,89,32,76,13,90,47,24,85,38,37,21
i=4
j=5
el_size=1
.code
start:
lea esi,mas
add esi,28
mov eax,[esi]
add esi,24
add eax,[esi]
fn MessageBox,0,str$(eax),"summa",MB_OK
Invoke ExitProcess,0
end start
Результат
Пример 3
Задайте двумерный массив 4*5 целых чисел. Сложите два числа: первое – из строки 4, столбца 4; второе - из строки 2, столбца 3.
include/masm32/include/masm32rt.inc
.data
mas dd 23,45,21,639,32,56,83,15,64,89,32,76,13,90,47,24,85,38,37,21
i=4
j=5
el_size=1
.code
start:
lea esi,mas
add esi,72
mov eax,[esi]
sub esi,44
add eax,[esi]
fn MessageBox,0,str$(eax),"summa",MB_OK
Invoke ExitProcess,0
end start
Результат
Пример 4
Задайте двумерный массив 4*5 целых чисел. Сложите два числа: первое – из строки 3, столбца 5; второе - из строки 4, столбца 2.
include/masm32/include/masm32rt.inc
.data
mas dd 23,45,21,639,32,56,83,15,64,89,32,76,13,90,47,24,85,38,37,21
i=4
j=5
el_size=1
.code
start:
lea esi,mas
add esi,56
mov eax,[esi]
add esi,8
add eax,[esi]
fn MessageBox,0,str$(eax),"summa",MB_OK
Invoke ExitProcess,0
end start
Результат
Пример 5
Задайте двумерный массив 4*5 целых чисел. Сложите два числа: первое – из строки 2, столбца 5; второе - из строки 3, столбца 1.
include/masm32/include/masm32rt.inc
.data
mas dd 23,45,21,639,32,56,83,15,64,89,32,76,13,90,47,24,85,38,37,21
i=4
j=5
el_size=1
.code
start:
lea esi,mas
add esi,36
mov eax,[esi]
add esi,4
add eax,[esi]
fn MessageBox,0,str$(eax),"summa",MB_OK
Invoke ExitProcess,0
end start
Результат
Пример 6
Задайте двумерный массив 4*5 целых чисел. Сложите два числа: первое – из строки 4, столбца 4; второе - из строки 2, столбца 5.
include/masm32/include/masm32rt.inc
.data
mas dd 23,45,21,639,32,56,83,15,64,89,32,76,13,90,47,24,85,38,37,21
i=4
j=5
el_size=1
.code
start:
lea esi,mas
add esi,72
mov eax,[esi]
sub esi,36
add eax,[esi]
fn MessageBox,0,str$(eax),"summa",MB_OK
Invoke ExitProcess,0
end start
Результат
Пример 7
Задайте двумерный массив 4*5 целых чисел. Сложите два числа: первое – из строки 3, столбца 3; второе - из строки 4, столбца 4.
include/masm32/include/masm32rt.inc
.data
mas dd 8,455,215,6,36,50,8,86,73,76,23,87,12,68,43,8,45,465,7,53
i=4
j=5
el_size=1
.code
start:
lea esi,mas
add esi,48
mov eax,[esi]
add esi,24
add eax,[esi]
fn MessageBox,0,str$(eax),"summa",MB_OK
Invoke ExitProcess,0
end start
Результат
Пример 8
Задайте двумерный массив 4*5 целых чисел. Сложите два числа: первое – из строки 2, столбца 5; второе - из строки 3, столбца 3.
include/masm32/include/masm32rt.inc
.data
mas dd 8,455,215,6,36,50,8,86,73,76,23,87,12,68,43,8,45,465,7,53
i=4
j=5
el_size=1
.code
start:
lea esi,mas
add esi,36
mov eax,[esi]
add esi,12
add eax,[esi]
fn MessageBox,0,str$(eax),"summa",MB_OK