What is 'mov (%r11,%rax,1),%dl'?
Jeffrey Walton
noloader@gmail.com
Sat Jan 2 15:01:00 GMT 2016
I'm examining a crash on Cygwin-x64 (2.3.1) with GCC 5.2 (5.2.0). The
crash is on a move instruction I am not familiar with. The instruction
is ' mov (%r11,%rax,1),%dl'.
Can anyone explain the instruction to me?
My apologies for the request, and thanks in advance.
=========
(gdb) disass
...
0x000000010048d85a <+141>: callq 0x1004afd30
<CryptoPP::IsAlignedOn(void const*, unsigned int)>
0x000000010048d85f <+146>: test %al,%al
0x000000010048d861 <+148>: jne 0x10048d895
<CryptoPP::xorbuf(unsigned char*, unsigned char const*, unsigned char
const*, unsigned long)+200>
0x000000010048d863 <+150>: jmp 0x10048d87b
<CryptoPP::xorbuf(unsigned char*, unsigned char const*, unsigned char
const*, unsigned long)+174>
0x000000010048d865 <+152>: shl $0x2,%rax
0x000000010048d869 <+156>: sub %rax,%r9
0x000000010048d86c <+159>: je 0x10048d91b
<CryptoPP::xorbuf(unsigned char*, unsigned char const*, unsigned char
const*, unsigned long)+334>
0x000000010048d872 <+165>: add %rax,%r10
0x000000010048d875 <+168>: add %rax,%r11
0x000000010048d878 <+171>: add %rax,%rbx
0x000000010048d87b <+174>: xor %eax,%eax
=> 0x000000010048d87d <+176>: mov (%r11,%rax,1),%dl
And:
(gdb) info registers
rax 0x9b7a 0x9b7a
rbx 0x600061810 0x600061810
rcx 0x4 0x4
rdx 0x61 0x61
rsi 0x6000623c8 0x6000623c8
rdi 0x600062d70 0x600062d70
rbp 0x23a486 0x23a486
rsp 0x23a190 0x23a190
r8 0x600061810 0x600061810
r9 0x23a486 0x23a486
r10 0x600062d70 0x600062d70
r11 0x23a486 0x23a486
r12 0x20 0x20
r13 0x1 0x1
r14 0x600062d70 0x600062d70
r15 0x23a320 0x23a320
More information about the Gcc-help
mailing list