mov rax, rsi
add rax, rbx
add rax, 8
mov rax, [rax]
jmp rax
code2:
mov rax, [rsi+rbx+8]
jmp rax
я думаю да
Под отладчиком IDA - разные
разные
Во втором случае получаем GPF при чтении памяти
Насколько я понимаю собственный код mov rax,[rsi+rbx+8] - берем значение rsi (offset Table) прибавляем счетчик i*размер элемента таблицы (*10h), и прибавляем 8 и из вычисленного адреса берем значение в rax
ну да я тоже так это понял
там значение по вычисленному адресу берется я думаю
И получаем мусор в rax.
ну так по этому адресу мусор?
А скинь код, байтиками, который у тебя получается?
че се байтиками, будешь машинные команды читать сейчас?
code1: .00000000`0040226D: 4889F0 mov rax,rsi .00000000`00402270: 4801D8 add rax,rbx .00000000`00402273: 4883C008 add rax,8 .00000000`00402277: 488B00 mov rax,[rax] .00000000`0040227A: FFE0 jmp rax code2: .00000000`0040227C: 488B441E08 mov rax,[rsi][rbx][8] .00000000`00402281: FFE0 jmp rax
ты второе выражение подругому писал
ты делаешь дезассемблер или у тя есть исходный код? что то мне подсказывает там должно быть *8, а не +8
он говорит что смещение у него в rbx уже вычислено
Обсуждают сегодня