summaryrefslogtreecommitdiff
path: root/source/files/assembly/x86/perf/array.asm
blob: 8ffab7c37c65a9af9352f76e1287b64c5f0eb9a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
section .text
global _start:
  call do_work
  mov rax, 60
  mov rdi, r13
  syscall

do_work:
  mov r14, arrrrrr
  xor r15, r15
  xor r13, r13
  jmp tst
  nop
lp:
  movsxd rax, r15d
  lea rax, [r14 + rax + 0x8]
  movsx rax, byte [rax]
  mov byte [rsp + 0x18], al
  movzx rcx, al
  and ecx, 0xf
  mov rax, r13
  add eax, ecx
  inc r15
  mov r13, rax
tst:
  movsxd rax, dword [r14]
  cmp r15, rax
  jl lp
  ret

arrrrrr:
  dd 134217728
  times 134217728 db 57h