45 lines
523 B
Plaintext

.pos 0
irmovq stack, %rsp
call main
halt
.align 8
# Source block
src:
.quad 0x00a
.quad 0x0b0
.quad 0xc00
# Destination block
dest:
.quad 0x111
.quad 0x222
.quad 0x333
main:
irmovq src, %rdi
irmovq dest, %rsi
irmovq $3, %rdx
call copy
ret
copy:
xorq %rax, %rax
irmovq $1, %rcx
irmovq $8, %r8
jmp test
loop:
mrmovq (%rdi), %r9
rmmovq %r9, (%rsi)
xorq %r9, %rax
addq %r8, %rdi
addq %r8, %rsi
subq %rcx, %rdx
test:
andq %rdx, %rdx
jg loop
ret
.pos 0x200
stack: