Что делает эта часть кода? Я немного потерян - PullRequest
0 голосов
/ 11 октября 2019

Я уже некоторое время пытаюсь отследить это, и я просто не могу это понять. перед тем, как его получить, мы просим строку длиной до 6, и, если ее нет, программа завершится ошибкой. Я пытаюсь выяснить, какая именно строка будет проходить в строки, не равные тесту, и вернуть 1.

Я пытался отследить ее, но не могу ее получить. Я понимаю, что movzbl перемещает байт в edx, но потом я не уверен, что произойдет после этого.

0x00000000004010d7 <+25>:    movzbl (%rbx,%rax,1),%edx
0x00000000004010db <+29>:    and    $0xf,%edx
0x00000000004010de <+32>:    movzbl 0x4025c0(%rdx),%edx
0x00000000004010e5 <+39>:    mov    %dl,(%rsp,%rax,1)
0x00000000004010e8 <+42>:    add    $0x1,%rax
0x00000000004010ec <+46>:    cmp    $0x6,%rax
0x00000000004010f0 <+50>:    jne    0x4010d7 <test+25>
0x00000000004010f2 <+52>:    movb   $0x0,0x6(%rsp)
0x00000000004010f7 <+57>:    mov    $0x402577,%esi
0x00000000004010fc <+62>:    mov    %rsp,%rdi
0x00000000004010ff <+65>:    callq  0x40132e <strings_not_equal>
0x0000000000401104 <+70>:    test   %eax,%eax

// строки не равны, возвращает 1, если строки не равны, но я не уверен, с какими строками он сравнивается

...