Похожие чаты

Hello, I have been learning about assembly by disassembling a

c code (the target part is the loop which copies some characters from one array to another array.
the code was compiled with -O0

the code is commented only for the first iteration

| ; CODE XREF from sym.testArr @ 0x140001592
.--> 0x14000156d mov eax, dword [var_8h] ; eax = i = 0
:| 0x140001570 movsxd rdx, eax ; mov eax to rdx, and sign extend it... rdx = 0
:| 0x140001573 mov rax, qword [var_10h] ; rax = addr of arr
:| 0x140001577 add rax, rdx
:| 0x14000157a movzx edx, byte [rax] ; edx = a, and zero extend
:| 0x14000157d mov eax, dword [var_4h] ; eax = 6
:| 0x140001580 cdqe
:| 0x140001582 mov byte [rbp + rax - 0xf], dl ; *(rbp + rax - 0xf) = dl = 'a'
:| 0x140001586 sub dword [var_4h], 1 ; num--
:| 0x14000158a add dword [var_8h], 1 ; i++
:| ; CODE XREF from sym.testArr @ 0x14000156b
:`-> 0x14000158e cmp dword [var_8h], 6 ; i <=6
`==< 0x140001592 jle 0x14000156d

so, I had a question regarding the first two instructions
why does the compiler set the eax register to 0, then copies the value to rdx, and then another valu copied to it?
can't the value at var_8h be copied to rdx directly? or will it have some side effects when it goes that way?

6 ответов

12 просмотров

Do you have the original code? A very cool website is godbolt.org

No, there's no side effect. It could have been written movsxd rdx, dword [var_8h] It's pretty normal to see useless steps at -O0 optimization level.

void *- Автор вопроса
Mmmmm.....
No, there's no side effect. It could have been wr...

thanks.. hadn't seen this initially (i was in some session at the same time)

how did you produced this?

void *- Автор вопроса
Alejandro
Do you have the original code? A very cool website...

the c code: https://paste.centos.org/view/42027307 assembly code for testArr(): https://paste.centos.org/view/d38ee7b6

void *- Автор вопроса
Déjà vu
how did you produced this?

disassembled with radare2

Похожие вопросы

Обсуждают сегодня

Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
is that okay?
Samurai 🇯🇵
21
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
How about the project bro Likes the community not that active ?
🅿️abby_FX
19
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Здравствуйте товарищи. А где вы смотрите маркеры/фенотипы клеток, чтобы подобрать антитело для задачи? Есть какой-то ресурс/база данных, или всё ручками по статьям? Мне нужно ...
Abruhmed
14
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Карта сайта