Thanks, John! This series is awesome. You'd struck a really good balance between theory and practice I reckon.
@niceguyniceguy44502 жыл бұрын
666k subscribers at the moment, and the content is 👿 devilishly amazing.
@ashishkumar-k4n4r Жыл бұрын
Best explanation
@JohnsBasement Жыл бұрын
Thanks! I'm glad I could help!
@lehieu23352 жыл бұрын
Thanks John. I learn a lot from your series.
@JohnsBasement2 жыл бұрын
I'm glad to hear. Thank you for letting me know.
@niceguyniceguy44502 жыл бұрын
Just amazing videos maaan, thank you, very much.👍👏
@Neo-kx3fe3 жыл бұрын
Thank you for your video and it's very helpful. However, when you disassem a function in gdb, why the addr on the left side is ascending when the code is executing? I saw you place main() under foo() in the memory layout and thought the instructions should also be place reversely.
@JohnsBasement3 жыл бұрын
I'm not sure I understand this question. What time index in the video are you referring to when you talk about ascending addresses? --- ALL code execution other than branches will be comprised of instructions at ascending addresses.
@Neo-kx3fe3 жыл бұрын
@@JohnsBasement First of all, thank you for your reply. Take @21:46 for an example, the addr of the instructions in main() are listed as 0x--52d9, 0x--52dd..., which are in the increasing order. Given the virtual memory layout you draw @8:41, can I say that the functions, as well as the corresponding instructions, are all reversely placed in the text segment? (Well, i just realize that 'reverse' is relative since the layout itself is visualized from high addr to low addr. Just a little bit confused here haha)
@JohnsBasement3 жыл бұрын
@@Neo-kx3fe OH... ugh... I drew foo() and main() in the wrong order when I drew the virtual memory map @8:41. I was going for 'these things go here' at that point. I should have shown foo() physically below main() in that drawing in order to match the order that they are placed in the load module... as the drawing I made of virtual memory has address zero at the bottom. I'm for the confusion there. HOWEVER, I would never count on the order of functions in my source code matching that in the compiled object/load module. Your compiler might surprise you!