Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1 .global supersum | 1 | | |
- 2 | 2 |----------------------|-------|
- 3 supersum: | 3 | **Time limit:** | `1 s` |
- 4 xor %edx, %edx // буфер для промежуточной суммы | 4 | **Real time limit:** | `5 s` |
- 5 cmp %esi, %edi | 5 | **Memory limit:** | `64M` |
- 6 jle swap | 6
- 7 mov %eax, %ecx | 7
- 8 mov $-1, %eax | 8 ### Problem sm02-5: asm/algorithms/dlinko
- 9 | 9
- 10 loop: |10 Напишите функцию supersum складывающую беззнак
- 11 inc %eax |11
- 12 cmp %eax, %edi |12 В регистре eax передается указатель на число A
- 13 jg add_remain |13
- 14 addw (%ecx, %eax, 1), %dx |14 В esi лежит размер числа A, в edi размер числа
- 15 addw (%ebx, %eax, 1), %dx |15
- 16 mov %dl, (%ecx, %eax, 1) |16 Программа возвращает 1 + индекс последнего нен
- 17 mov %dh, %dl |17 размер числа C).
- 18 xor %dh, %dh |18
- 19 jmp loop |19 Размер числа 0 - 0.
- 20 |20
- 21 swap: |21 Гарантируется, что размер буфера C > max(разме
- 22 xchg %eax, %ebx |22
- 23 xchg %esi, %edi |23 Не забывайте сохранять значения регистров, кот
- 24 jmp supersum |24
- 25 |25 Инструкции pushf и popf выглядят надежными и к
- 26 add_remain: |26
- 27 addw (%ecx, %eax, 1), %dx |27 Входные числа могут содержать старшие нулевые
- 28 mov %dl, (%ecx, %eax, 1) |28
- 29 mov %dh, %dl |29 Вы можете протестировать функцию со [следующим
- 30 xor %dh, %dh |30 файлами](https://gist.github.com/ObjatieGroba/
- 31 cmp $0, %dl |31
- 32 jnz loop |32 ### Examples
- 33 |33
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement