Advertisement
Guest User

Untitled

a guest
May 31st, 2016
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int a[5][5] = { { 2, 2, 3, 11, 1 },
  6. { 2, 2, 6, 1, 1 },
  7. { 7, 6, 2, 9, 1 },
  8. { 21, 22, 23, 100, 25 },
  9. { 21, 2, 2, 10, 100} };
  10. int b[100] = {0};
  11. int n = 5;
  12. __asm
  13. {
  14. mov esi, 0; индекс
  15. mov edi, n; наше n
  16. mov ebx, 0;
  17. beg:
  18. cmp esi, 0;
  19. je equal1; левый верхний
  20. sub edi, 1;
  21. cmp esi, edi;
  22. je equal2; правый верхний
  23. add edi, 1;
  24. mov eax, edi;
  25. imul n;
  26. sub eax, n;
  27. cmp eax, esi;
  28. je equal3; левый нижний
  29. add eax, n;
  30. sub eax, 1;
  31. cmp eax, esi;
  32. je equal4; правый нижний
  33. mov eax, esi;
  34. cdq;
  35. idiv edi;
  36. cmp edx, 0;
  37. je equal5; левый столбец
  38. cmp esi, edi;
  39. jl equal6; верхняя строка
  40. sub edi,1
  41. cmp edx, edi;
  42. je equal7; правый столбец
  43. add edi,1
  44. add eax, 1;
  45. cmp eax, edi;
  46. je equal8; нижняя строка
  47. jmp equal9; центр
  48. equal1 :
  49. mov ecx, esi;
  50. add ecx, 1;
  51. mov edx, a[ecx * 4];
  52. cmp edx, a[esi * 4];
  53. jg change_;
  54. sub ecx, 1;
  55. add ecx, edi;
  56. mov edx, a[ecx * 4];
  57. cmp edx, a[esi * 4];
  58. jg change_;
  59. jmp end_;
  60. equal2 :
  61. add edi, 1;
  62. mov ecx, esi;
  63. sub ecx, 1;
  64. mov edx, a[ecx * 4];
  65. cmp edx, a[esi * 4];
  66. jg change_;
  67. add ecx, 1;
  68. add ecx, edi;
  69. mov edx, a[ecx * 4];
  70. cmp edx, a[esi * 4];
  71. jg change_;
  72. jmp end_;
  73. equal3 :
  74. mov ecx, esi;
  75. add ecx, 1;
  76. mov edx, a[ecx * 4];
  77. cmp edx, a[esi * 4];
  78. jg change_;
  79. sub ecx, 1;
  80. sub ecx, edi;
  81. mov edx, a[ecx * 4];
  82. cmp edx, a[esi * 4];
  83. jg change_;
  84. jmp end_;
  85. equal4 :
  86. mov ecx, esi;
  87. sub ecx, 1;
  88. mov edx, a[ecx * 4];
  89. cmp edx, a[esi * 4];
  90. jg change_;
  91. add ecx, 1;
  92. sub ecx, edi;
  93. mov edx, a[ecx * 4];
  94. cmp edx, a[esi * 4];
  95. jg change_;
  96. jmp end_;
  97. equal5 :
  98. mov ecx, esi;
  99. add ecx, 1;
  100. mov edx, a[ecx * 4];
  101. cmp edx, a[esi * 4];
  102. jg change_;
  103. sub ecx, 1;
  104. add ecx, edi;
  105. mov edx, a[ecx * 4];
  106. cmp edx, a[esi * 4];
  107. jg change_;
  108. sub ecx, edi;
  109. sub ecx, edi;
  110. mov edx, a[ecx * 4];
  111. cmp edx, a[esi * 4];
  112. jg change_;
  113. jmp end_;
  114. equal6 :
  115. mov ecx, esi;
  116. add ecx, 1;
  117. mov edx, a[ecx * 4];
  118. cmp edx, a[esi * 4];
  119. jg change_;
  120. sub ecx, 1;
  121. add ecx, edi;
  122. mov edx, a[ecx * 4];
  123. cmp edx, a[esi * 4];
  124. jg change_;
  125. sub ecx, edi;
  126. sub ecx, 1;
  127. mov edx, a[ecx * 4];
  128. cmp edx, a[esi * 4];
  129. jg change_;
  130. jmp end_;
  131. equal7 :
  132. add edi, 1;
  133. mov ecx, esi;
  134. sub ecx, 1;
  135. mov edx, a[ecx * 4];
  136. cmp edx, a[esi * 4];
  137. jg change_;
  138. add ecx, 1;
  139. add ecx, edi;
  140. mov edx, a[ecx * 4];
  141. cmp edx, a[esi * 4];
  142. jg change_;
  143. sub ecx, edi;
  144. sub ecx, edi;
  145. mov edx, a[ecx * 4];
  146. cmp edx, a[esi * 4];
  147. jg change_;
  148. jmp end_;
  149. equal8 :
  150. mov ecx, esi;
  151. add ecx, 1;
  152. mov edx, a[ecx * 4];
  153. cmp edx, a[esi * 4];
  154. jg change_;
  155. sub ecx, 1;
  156. sub ecx, edi;
  157. mov edx, a[ecx * 4];
  158. cmp edx, a[esi * 4];
  159. jg change_;
  160. add ecx, edi;
  161. sub ecx, 1;
  162. mov edx, a[ecx * 4];
  163. cmp edx, a[esi * 4];
  164. jg change_;
  165. jmp end_;
  166. equal9 :
  167. mov ecx, esi;
  168. add ecx, 1;
  169. mov edx, a[ecx * 4];
  170. cmp edx, a[esi * 4];
  171. jg change_;
  172. sub ecx, 1;
  173. add ecx, edi;
  174. mov edx, a[ecx * 4];
  175. cmp edx, a[esi * 4];
  176. jg change_;
  177. sub ecx, edi;
  178. sub ecx, edi;
  179. mov edx, a[ecx * 4];
  180. cmp edx, a[esi * 4];
  181. jg change_;
  182. add ecx, edi;
  183. sub ecx, 1;
  184. mov edx, a[ecx * 4];
  185. cmp edx, a[esi * 4];
  186. jg change_;
  187. jmp end_;
  188. change_ :
  189. mov eax, n;
  190. mul n;
  191. sub eax, 1;
  192. cmp esi, eax; был ли элемент самым последним
  193. je end_end_;
  194. add esi, 1;
  195. jmp beg;
  196. end_ :
  197. mov edx, a[esi * 4];
  198. mov b[ebx * 4], edx;
  199. add ebx, 1;
  200. mov eax, n;
  201. imul n;
  202. sub eax, 1;
  203. cmp esi, eax;
  204. je end_end_;
  205. add esi, 1;
  206. jmp beg;
  207. end_end_ :
  208. mov n, ebx
  209. }
  210. for (int i = 0; i < n; i++)
  211. cout << b[i] << " ";
  212. return 0;
  213. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement