fix jmp rel again

This commit is contained in:
janis 2026-06-04 07:44:45 +02:00
parent 855893ee09
commit a9d96063f6
Signed by: janis
SSH key fingerprint: SHA256:bB1qbbqmDXZNT0KKD5c2Dfjg53JGhj7B3CFcLIzSqq8

View file

@ -78,7 +78,7 @@
# cmp rax, 0 # cmp rax, 0
48 83 f8 00 48 83 f8 00
# jle die # jle die
0f 8e a8 00 00 00 0f 8e b0 00 00 00
## (162) ## (162)
# ; end = r8 # ; end = r8
# mov r8, rax # mov r8, rax
@ -98,32 +98,37 @@
# cmp r9, r8 # cmp r9, r8
4d 39 c1 4d 39 c1
# jge .L3 # jge .L3
0f 8d 67 00 00 00 0f 8d 6f 00 00 00
# (190) # (190)
# #
# ; if (*pos == '#') { # ; if (*pos == '#') {
# mov al , byte [r9] # mov al , byte [r9]
41 8a 41 00 41 8a 41 00
# cmp al, '\n'
3c 0a
# je .L2.1:
0f 84 15 00 00 00
# (202)
# cmp al, '#' # cmp al, '#'
3c 23 3c 23
# jne .L1 # jne .L1
0f 85 15 00 00 00 0f 85 15 00 00 00
# (202) # (210)
# ; while (*pos != '\n') pos++; # ; while (*pos != '\n') pos++;
# ; .L2: (202) # ; .L2: (210)
# inc r9 # inc r9
49 ff c1 49 ff c1
# cmp byte [r9], '\n' # cmp byte [r9], '\n'
41 80 39 0a 41 80 39 0a
# jne .L2 # jne .L2
0f 85 f3 ff ff ff 0f 85 f3 ff ff ff
# (215) # .L2.1: (223)
# inc r9 # inc r9
49 ff c1 49 ff c1
# jmp .L0 # jmp .L0
e9 d6 ff ff ff e9 ce ff ff ff
# (223) # (231)
# ; .L1: (223) # ; .L1: (231)
# ; convert *pos to high word # ; convert *pos to high word
# mov al, byte [r9] # mov al, byte [r9]
41 8a 01 41 8a 01
@ -173,13 +178,13 @@ c0 e0 04
# cmp byte [r9], '\n' # cmp byte [r9], '\n'
41 80 39 0a 41 80 39 0a
# je .L0 # je .L0
0f 84 95 ff ff ff 0f 84 8d ff ff ff
## (288) ## (296)
# jmp .L1 ; - 293 # jmp .L1 ;
e9 ba ff ff ff e9 ba ff ff ff
## (293) ## (301)
# ; } # ; }
# .L3: (293) # .L3: (301)
# ; write the decoded bytes to stdout # ; write the decoded bytes to stdout
# mov rax, 1 (sys_write) # mov rax, 1 (sys_write)
48 c7 c0 01 00 00 00 48 c7 c0 01 00 00 00
@ -195,11 +200,11 @@ e9 ba ff ff ff
48 29 f2 48 29 f2
# syscall # syscall
0f 05 0f 05
# jmp .READ ; 130 - 330 = -200 = 0xffffffffffffff38 # jmp .READ ;
e9 38 ff ff ff e9 30 ff ff ff
## (330) ## (338)
# #
# die: (330) # die: (338)
# mov rax, 60 (sys_exit) # mov rax, 60 (sys_exit)
48 c7 c0 3c 00 00 00 48 c7 c0 3c 00 00 00
# xor rdi, rdi # xor rdi, rdi