45 lines
523 B
Plaintext
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:
|