Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int main()
- {
- int a[5][5] = { { 2, 2, 3, 11, 1 },
- { 2, 2, 6, 1, 1 },
- { 7, 6, 2, 9, 1 },
- { 21, 22, 23, 100, 25 },
- { 21, 2, 2, 10, 100} };
- int b[100] = {0};
- int n = 5;
- __asm
- {
- mov esi, 0; индекс
- mov edi, n; наше n
- mov ebx, 0;
- beg:
- cmp esi, 0;
- je equal1; левый верхний
- sub edi, 1;
- cmp esi, edi;
- je equal2; правый верхний
- add edi, 1;
- mov eax, edi;
- imul n;
- sub eax, n;
- cmp eax, esi;
- je equal3; левый нижний
- add eax, n;
- sub eax, 1;
- cmp eax, esi;
- je equal4; правый нижний
- mov eax, esi;
- cdq;
- idiv edi;
- cmp edx, 0;
- je equal5; левый столбец
- cmp esi, edi;
- jl equal6; верхняя строка
- sub edi,1
- cmp edx, edi;
- je equal7; правый столбец
- add edi,1
- add eax, 1;
- cmp eax, edi;
- je equal8; нижняя строка
- jmp equal9; центр
- equal1 :
- mov ecx, esi;
- add ecx, 1;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- sub ecx, 1;
- add ecx, edi;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- jmp end_;
- equal2 :
- add edi, 1;
- mov ecx, esi;
- sub ecx, 1;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- add ecx, 1;
- add ecx, edi;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- jmp end_;
- equal3 :
- mov ecx, esi;
- add ecx, 1;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- sub ecx, 1;
- sub ecx, edi;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- jmp end_;
- equal4 :
- mov ecx, esi;
- sub ecx, 1;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- add ecx, 1;
- sub ecx, edi;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- jmp end_;
- equal5 :
- mov ecx, esi;
- add ecx, 1;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- sub ecx, 1;
- add ecx, edi;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- sub ecx, edi;
- sub ecx, edi;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- jmp end_;
- equal6 :
- mov ecx, esi;
- add ecx, 1;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- sub ecx, 1;
- add ecx, edi;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- sub ecx, edi;
- sub ecx, 1;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- jmp end_;
- equal7 :
- add edi, 1;
- mov ecx, esi;
- sub ecx, 1;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- add ecx, 1;
- add ecx, edi;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- sub ecx, edi;
- sub ecx, edi;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- jmp end_;
- equal8 :
- mov ecx, esi;
- add ecx, 1;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- sub ecx, 1;
- sub ecx, edi;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- add ecx, edi;
- sub ecx, 1;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- jmp end_;
- equal9 :
- mov ecx, esi;
- add ecx, 1;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- sub ecx, 1;
- add ecx, edi;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- sub ecx, edi;
- sub ecx, edi;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- add ecx, edi;
- sub ecx, 1;
- mov edx, a[ecx * 4];
- cmp edx, a[esi * 4];
- jg change_;
- jmp end_;
- change_ :
- mov eax, n;
- mul n;
- sub eax, 1;
- cmp esi, eax; был ли элемент самым последним
- je end_end_;
- add esi, 1;
- jmp beg;
- end_ :
- mov edx, a[esi * 4];
- mov b[ebx * 4], edx;
- add ebx, 1;
- mov eax, n;
- imul n;
- sub eax, 1;
- cmp esi, eax;
- je end_end_;
- add esi, 1;
- jmp beg;
- end_end_ :
- mov n, ebx
- }
- for (int i = 0; i < n; i++)
- cout << b[i] << " ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement