Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб 4.Отчет.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2.59 Mб
Скачать

Отчет по лабораторной работе №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

  1. Задайте массив 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

  1. Задайте массив 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