Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %include "io.inc"
- section .bss
- dp resd 1500
- n resd 1
- k resd 1
- tmp resd 1
- on resd 1
- tw resd 1
- section .data
- ans dd 0
- section .text
- global CMAIN
- CMAIN:
- GET_DEC 4, n
- GET_DEC 4, k
- mov ecx, 32 * 32 * 4
- ;mov dword[dp], 1
- .l1:
- mov dword[dp + ecx], 1
- sub ecx, 4
- cmp ecx, 0
- jne .l1
- mov ecx, 32 * 32 * 4
- mov dword[dp], 1
- .l2:
- mov dword[dp + ecx], 1
- sub ecx, 128
- cmp ecx, 0
- jne .l2
- mov ecx, 128
- .l3:
- mov ebx, 4
- .l4:
- add ecx, ebx
- mov edx, dword[dp + ecx - 132]
- add edx, dword[dp + ecx - 128]
- mov dword[dp + ecx], edx
- sub ecx, ebx
- add ebx, 4
- cmp ebx, 128
- jne .l4
- add ecx, 128
- cmp ecx, 128 * 32
- jne .l3
- ; mas created
- mov ecx, 0
- mov ebx, 0
- mov eax, dword[n]
- mov esi, dword[k]
- mov edx, 0
- inc eax
- mov ebx, 1
- mov ecx, 31
- sal ebx, 31
- .l5:
- mov dword[on], eax
- mov dword[tw], ebx
- test eax, ebx
- jg .b1
- mov eax, dword[on]
- mov ebx, dword[tw]
- sar ebx, 1
- dec ecx
- jmp .l5
- .b1:
- mov dword[tmp], ecx
- dec ecx
- .l6:
- mov dword[on], ecx
- mov dword[tw], esi
- imul ecx, 4 * 32
- imul esi, 4
- add ecx, esi
- add edx, dword[dp + ecx]
- mov dword[ans], edx
- mov ecx, dword[on]
- mov esi, dword[tw]
- dec ecx
- cmp ecx, esi
- jge .l6
- mov dword[ans], edx
- ;PRINT_DEC 4, ans
- ;NEWLINE
- mov ecx, dword[tmp]
- .l7:
- sar ebx, 1
- dec ecx
- cmp ebx, 0
- je .end
- cmp dw
- cmp esi, 0
- je .end
- test ebx, eax
- jnz .l8
- dec esi
- jmp .l7
- .l8:
- mov dword[on], ecx
- mov dword[tw], esi
- dec esi
- cmp esi, ecx
- jg .l9
- imul ecx, 128
- imul esi, 4
- add ecx, esi
- add edx, dword[dp + ecx]
- mov dword[ans], edx
- .l9:
- mov ecx, dword[on]
- mov esi, dword[tw]
- jmp .l7
- .end:
- PRINT_DEC 4, ans
- xor eax, eax
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement