Advertisement
altervisi0n

Untitled

Jun 11th, 2023
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.82 KB | None | 0 0
  1. Сумма
  2.  
  3. push arr
  4. call Proc
  5.  
  6. Proc:
  7. push bp
  8. mov bp,sp
  9. push si
  10. mov si,[bp+4]
  11. mov cx,word[si]
  12. xor ax,ax
  13.  
  14. .Solve:
  15. add si,2
  16. add ax,word[si]
  17. loop .Solve
  18.  
  19. pop si bp
  20. ret 2
  21.  
  22. arr db 7,1,2,3,4,5,6,7
  23.  
  24.  
  25. Минимальный элемент
  26.  
  27. push arr
  28. call Solver
  29.  
  30. Solver:
  31. push bp
  32. mov bp,sp
  33. push si
  34. mov si,[bp+4]
  35. mov cx,word[si]
  36. add si,2
  37. mov ax,word[si]
  38. dec cx
  39.  
  40. .Solve:
  41. add si,2
  42. cmp word[si],ax
  43. jge .Skip
  44. mov ax,word[si]
  45.  
  46. .Skip:
  47. loop .Solve
  48.  
  49. pop si bp
  50. ret 2
  51.  
  52. arr db 7,1,2,3,4,5,6,7
  53.  
  54.  
  55.  
  56. Инвертировать число
  57.  
  58. push [Num]
  59. Call Solver
  60.  
  61. Solver:
  62. push bp
  63. mov bp,sp
  64. mov dx,[bp+4]
  65. xor ax,ax
  66.  
  67. .SolveTask:
  68. shl ax,1
  69. shr dx,1
  70. adc ax,0
  71. test dx,dx
  72. loop .SolveTask
  73.  
  74. pop bp
  75. ret 2
  76.  
  77. Num dw 0110
  78.  
  79.  
  80. Поменять элементы каждого индекса в двух массивах
  81.  
  82. push [Num]
  83. Call Solver
  84.  
  85. Solver:
  86. push bp
  87. mov bp,sp
  88. mov dx,[bp+4]
  89. xor ax,ax
  90.  
  91. .SolveTask:
  92. shl ax,1
  93. shr dx,1
  94. adc ax,0
  95. test dx,dx
  96. loop .SolveTask
  97.  
  98. pop bp
  99. ret 2
  100.  
  101. Num dw 0110
  102.  
  103.  
  104. Заполнить массив числами n-1,n-2 и так далее
  105. push [Num]
  106. Call Solver
  107.  
  108. Solver:
  109. push bp
  110. mov bp,sp
  111. mov dx,[bp+4]
  112. xor ax,ax
  113.  
  114. .SolveTask:
  115. shl ax,1
  116. shr dx,1
  117. adc ax,0
  118. test dx,dx
  119. loop .SolveTask
  120.  
  121. pop bp
  122. ret 2
  123.  
  124. Num dw 0110
  125.  
  126. Сколько единиц в двоичке?
  127. push [Num]
  128. Call Solver
  129.  
  130. Solver:
  131. push bp
  132. mov bp,sp
  133. mov dx,[bp+4]
  134. xor ax,ax
  135.  
  136. .SolveTask:
  137. shl ax,1
  138. shr dx,1
  139. adc ax,0
  140. test dx,dx
  141. loop .SolveTask
  142.  
  143. pop bp
  144. ret 2
  145.  
  146. Num dw 0110
  147.  
  148.  
  149. количество чисел в массиве которые делятся на X
  150.  
  151. push word[Num]
  152. push arr
  153. call Solver
  154.  
  155. Solver:
  156. push bp
  157. mov bp,sp
  158. push si
  159. mov si,[bp+4]
  160. mov cx,[si]
  161. mov dl,[bp+6]
  162. xor ax,ax
  163. .SolveTask:
  164. add si,2
  165. mov ax,[si]
  166. idiv dl
  167. test ah,ah
  168. jnz .Skip
  169. inc ax
  170. .Skip:
  171. loop .SolveTask
  172.  
  173. pop si bp
  174. ret 4
  175.  
  176. arr db 5,1,2,3,4,5
  177. Num dw 4
  178.  
  179.  
  180. Две С- строки, проверить на равенство
  181.  
  182.  
  183. push str1
  184. push str2
  185. Call Solve
  186.  
  187. Solve:
  188. push bp
  189. mov bp,sp
  190. push si
  191. mov si,[bp+4] ;second string
  192. push di
  193. mov di, [bp+6] ; first string
  194. xor ax,ax
  195.  
  196. .BaseSolve:
  197. mov al,byte[si]
  198. cmp al,byte[di]
  199. jnz .Met1
  200. inc di
  201. inc si
  202. cmp byte[di],0
  203. jz .Met2
  204. cmp byte[si], 0
  205. jz .Met1
  206. jmp .BaseSolve
  207.  
  208. .Met1:
  209. xor ax,ax
  210. jmp .End
  211.  
  212. .Met2:
  213. cmp byte[si],0
  214. jnz .Met1
  215. mov ax,1
  216.  
  217. .End:
  218. pop bp
  219. ret 4
  220.  
  221.  
  222. str1 db '4785dd',0
  223. str2 db 'sdfs4f',0
  224.  
  225.  
  226. Дана С-Строка, найти количество слов в строке
  227.  
  228. push str1
  229. Call Solver
  230.  
  231. Solver:
  232. push bp
  233. mov bp,sp
  234. push si
  235. mov si,[bp+4]
  236. xor ax,ax
  237.  
  238. .SolveTask:
  239. cmp byte[si],0
  240. je .End
  241. cmp byte[si],' '
  242. jne .Met2
  243. inc si
  244. jmp .SolveTask
  245.  
  246. .Met2:
  247. inc ax
  248.  
  249. .Met3:
  250. cmp byte[si],0
  251. je .End
  252. cmp byte[si],' '
  253. je .SolveTask
  254. add si,2
  255. jmp .Met3
  256.  
  257. .End:
  258. pop si bp
  259. ret 4
  260.  
  261. str1 db ' fd fdfd fdfdfddf ', 0
  262.  
  263.  
  264. Заменить в массиве первые N элементов на -1,0,1,-1,0,1
  265. push arr
  266. push [Num]
  267. Call Solver
  268.  
  269. Solver:
  270. push bp
  271. mov bp,sp
  272. push si
  273. mov si,[bp+4]
  274. mov cx,[bp + 6]
  275. xor ax,ax
  276.  
  277. .SolveTask:
  278. add si,2
  279. mov word[si],-1
  280. dec cx
  281. cmp cx,0
  282. je .Met1
  283. add si,2
  284. mov word[si],0
  285. dec cx
  286. cmp cx,0
  287. je .Met1
  288. add si,2
  289. mov word[si],1
  290. loop .SolveTask
  291.  
  292. .Met1:
  293. pop si bp
  294. ret 4
  295.  
  296.  
  297. Num dw 6
  298. arr dw 10, 1, 2, -3, 4, 5, 33, 7, -9, 5, 5
  299.  
  300.  
  301. Посчитать количество элементов больших чем X
  302.  
  303. push arr
  304. push [num]
  305. call Solver
  306.  
  307. Solver:
  308. push bp
  309. mov bp,sp
  310. push si
  311. mov si,[bp+6]
  312. mov cx,[si]
  313. xor ax,ax
  314.  
  315. .Met1:
  316. add si,2
  317. mov ax,[si]
  318. cmp ax,[bp+4]
  319. jge .Skip
  320. inc dx
  321.  
  322. .Skip:
  323. loop .Met1
  324.  
  325. pop si bp
  326. ret 4
  327.  
  328. arr db 5, 1,2,3,4,5
  329. num dw 5
  330.  
  331.  
  332. Сумма цифр числа
  333.  
  334. push [num]
  335. Call Solver
  336.  
  337. Solver:
  338. push bp
  339. mov bp,sp
  340. mov dx,[bp+4]
  341. xor ax,ax
  342.  
  343. .SolveTask:
  344. div [ten]
  345. add ax,ah
  346. xor ah,ah
  347. test ax,ax
  348. jne .SolveTask
  349.  
  350. pop bp
  351. ret 2
  352.  
  353.  
  354. num dw 225
  355. ten db 10
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement