Amazing video! I absolutely love how you creatively set up mistakes ahead of time to teach us various things. Love your teaching method! Do you mind explaining “linkers” and “interrupts”? Would love to see more videos for noobs like myself where you do this same sort of thing for various other topics! Mistakes included !
For the C version, as you are using system calls, you probably could avoid to use the C runtime easily with a couple of flags (-nostartfiles -nodefaultlibs -nostdlib -ffreestanding). You probably would have to re-implement strlen though, and call the exit system call instead of returning from the entry point. If I am not mistaken, the resulting binary would be a lot closer to the assembly one.
I don't understand why do we need to link even the simplest of assembly programs? I mean, what are we linking it with ... The instructions and syscall instructions are always there (service of hardware) ...
The linker's job is to merge the memory layouts of object files into a single layout for the final program, and encode that layout in an executable format the OS can handle. Even if we have a single object file, it might not be in a valid executable format, so we still need to pass it through the linker to put it in the correct format (as you point out, there might not be anything to link, but we may still need changes to the memory layout, or additional metadata such as the address of the program's entry point).
interested always video in assmelber programming language but.. AT&T syntax is as DUMB as my sentence construction here. The x86 process or is NOT a 68000 processor and at&t is ***WRONG*** and also unreadable. I write almost exclusively in assembler for linux and will never use any syntax other than the one devised by the creator of the processor.
Amazing video! I absolutely love how you creatively set up mistakes ahead of time to teach us various things. Love your teaching method! Do you mind explaining “linkers” and “interrupts”? Would love to see more videos for noobs like myself where you do this same sort of thing for various other topics! Mistakes included !
Very, very informative and interesting video to watch and understand how code works under the hood! Thanks for sharing this :)
For the C version, as you are using system calls, you probably could avoid to use the C runtime easily with a couple of flags (-nostartfiles -nodefaultlibs -nostdlib -ffreestanding).
You probably would have to re-implement strlen though, and call the exit system call instead of returning from the entry point.
If I am not mistaken, the resulting binary would be a lot closer to the assembly one.
🇩🇿I am from Algeria and I extend my regards to you
nice! thanks!
Great video 👍
Simply superb.
Really underrated!! Thanks!
Happy you found it useful 🙂
Indeed useful mate@@artemslab, thanks
Great explanation. Thanks
great video, thanks for making this video.
I tried to find you on linkedin but could not find.
Is there a way we can connect?
I don't understand why do we need to link even the simplest of assembly programs? I mean, what are we linking it with ... The instructions and syscall instructions are always there (service of hardware) ...
The linker's job is to merge the memory layouts of object files into a single layout for the final program, and encode that layout in an executable format the OS can handle.
Even if we have a single object file, it might not be in a valid executable format, so we still need to pass it through the linker to put it in the correct format (as you point out, there might not be anything to link, but we may still need changes to the memory layout, or additional metadata such as the address of the program's entry point).
@@fastandfemme oh cool .... Thank you for that 🙏🏽
мужик, ты молодец
Мув асемблер, энд олл озэ, зис соу хард, ю хэв найс инглиш бро ❤
bro come on light mode
This is how I roll 😅
interested always video in assmelber programming language but.. AT&T syntax is as DUMB as my sentence construction here. The x86 process or is NOT a 68000 processor and at&t is ***WRONG*** and also unreadable.
I write almost exclusively in assembler for linux and will never use any syntax other than the one devised by the creator of the processor.