Today I've written the assembly code that is used for printing the debug string in this pattern:
"rax = 1 rbx = -2 rcx = 3 rdx = -4 rsi = 5 rdi = -6 r8 = 7 r9 = -8 r10 = 9 r11 = 0 r12 = 11 r13 = -12 r14 = 13 r15 = -14"
But to test this code I just wrote it repeatedly like this:
call _getDebugString
mov r9, debugString
call _printTextSafe
call _getDebugString
mov r9, debugString
call _printTextSafe
mov r11, -24
call _getDebugString
mov r9, debugString
call _printTextSafe
call _getDebugString
mov r9, debugString
call _printTextSafe
call _exit
In my subroutine _getDebugString I push all used registers to safe them. But there's problem with register r11. After a subroutine completed its always 582.
You can check this out, here's the respond:
rax = 1 rbx = -2 rcx = 3 rdx = -4 rsi = 5 rdi = -6 r8 = 7 r9 = -8 r10 = 9 r11 = 0 r12 = 11 r13 = -12 r14 = 13 r15 = -14
rax = 1 rbx = -2 rcx = 3 rdx = -4 rsi = 5 rdi = -6 r8 = 7 r9 = 4202678r10 = 9 r11 = 582 r12 = 11 r13 = -12 r14 = 13 r15 = -14
rax = 1 rbx = -2 rcx = 3 rdx = -4 rsi = 5 rdi = -6 r8 = 7 r9 = 4202678r10 = 9 r11 = -24 r12 = 11 r13 = -12 r14 = 13 r15 = -14
rax = 1 rbx = -2 rcx = 3 rdx = -4 rsi = 5 rdi = -6 r8 = 7 r9 = 4202678r10 = 9 r11 = 582 r12 = 11 r13 = -12 r14 = 13 r15 = -14
Insights what would it be? Maybe I don't know smth about this register and there's a mystery about number 582?