You Can Learn Assembly in 60 Seconds (its easy)
Ғылым және технология
You can learn assembly in 60 seconds, its NOT HARD.
🏫 COURSES 🏫
www.udemy.com/course/c-progra...
🔥🔥🔥 SOCIALS 🔥🔥🔥
Low Level Merch!: www.linktr.ee/lowlevellearning
Follow me on Twitter: / lowleveltweets
Follow me on Twitch: / lowlevellearning
Join me on Discord!: / discord
Пікірлер: 399
Finally, someone's being more creative with doing loops instead of say "and that's why..." or "so..." or anything I've seen in tiktok.
@LowLevelLearning
Жыл бұрын
ayyy someone noticed tyty
@bookle5829
Жыл бұрын
@@sophiacristina I left tiktok months ago. It's not a terrible app. But you really can't stop scrolling unless you make an attempt.
@sophiacristina
Жыл бұрын
@@bookle5829 It was a sort of a joke, even if i dislike tiktok, but understandable... Yes, it is about dopamine, the constant feed and the FOMO releases it and dopamine is know to be addictive... By what i know, this is intentional... KZread, instagram, reddit, tiktok, all have constant feed and FOMO...
@leoalmeida2583
Жыл бұрын
That loop thing is actually silly
@user-qr4jf4tv2x
6 ай бұрын
we have an error in comment it was because it was tiktok
Gonna add this to my resume now. Thanks.
@citizen320
6 ай бұрын
I'm just going to bring my phone to the interview and show them this video. When it's over I'll ask, "when do I start?"
@adtc
6 ай бұрын
Oh, since you showed me the video, I have now learned Assembly so I don't need to hire you anymore. I'm going switch careers from HR professional to Assembly programmer and hire myself for the position.
@FreerunnerCamilo
5 ай бұрын
“Assembly, 2 years of experience”
@ChabPoha
4 ай бұрын
A minute @@FreerunnerCamilo
The fact that Roller Coaster Tycoon was written in assembly is insane to me
@Protocolpimp
Ай бұрын
What a savage
@dsfbstudent
Ай бұрын
I think it's ok, but it's a lot of work! I think the code of this game instructs the CPU to write data into its memory-mapped address space, and the GPU could copy this data into its memory, and the rest of the code in RAM or other devices could be processed by the CPU to make the game run. And so, the data processing occurs, of course!
@gasplanet4341
22 күн бұрын
Pokemon red and blue were also written in assembly
@ViniciusCortezao
19 күн бұрын
Super Mario world was written in assembly
@savagesarethebest7251
2 күн бұрын
Those are not as big or complex games as Rollercoaster Tycoon
This blows my mind knowing Chris Sawyer wrote RCT in assembly.
@yasirrakhurrafat1142
8 күн бұрын
Legendary bro.
All these suckers taking months to years to learn assembly while I only needed 1 minute.
@davidjulitz7446
2 ай бұрын
Just try to write something more useful in Assembler as a HelloWorld based on a simple system API call. Then you will know if you already master Assembler. :D
@Microphunktv-jb3kj
Ай бұрын
@@davidjulitz7446 i suggest writing Pong game in assembly, wich supports multiplayer : ))
Damn yall watch shorts wtf also plz sub
@devnullsrevenge
Жыл бұрын
The missing ingredient in your channel.
@dragonblade3166
Жыл бұрын
most youtubers would spend like 16 minutes describing this and you just did it in 60 seconds. kudos to you. Will be here if you make more
@killerb2099
Жыл бұрын
*KZread keeps shoving its shorts in my face*
@kingsgambit9284
Жыл бұрын
Already sub to you wanting more tutorials or complete course
@Luredreier
Жыл бұрын
Yeah, we do. :-)
i like how you say 60 seconds and this will probably take me 6 years to understand
@kayakMike1000
Жыл бұрын
Nah... you're much smarter than you think. It's just a command sequence to set up a system call to tell the kernel to dump a string to standard out
@hodayfa000h
Жыл бұрын
what lol no
@TheGoodChap
Жыл бұрын
Assembly is actually very simple its just more tedious to write and understand when analyzing code. The same advice I have for learning to code (study lots of other people's code) applies to assembly too, get ollydbg and analyze programs youve written or are familiar with and look at how it's layed out and try to figure out what it's doing. If you don't want to mess with NASM and want to do super simple stuff when you load a program in ollydbg you can deliberately overwrite code with nops and then insert your own asm you write into that area and set the top of your code as your origin and watch your hand made code run right there stepping through it to see it working and watch the registers :)
@plasmahvh
Жыл бұрын
@@TheGoodChap if youre on windows, visual studio has a built in disassembler. (you can even select specific parts of code to convert them into asm and even debug in asm)
@kayakMike1000
Жыл бұрын
@@plasmahvh gcc -S for the win.
The first line is making the start lable available to the linker not telling the program where to start.
Program #2: Write out a random number Edit: Didn't expect that many people to take it seriously, just thought of a sarcastic way to show that assembly is not always a plug&play
@mayank8387
10 ай бұрын
You mean like the program generates a random number? Damn then we'll have to implement mersenne twister algorithm in assembly. Bet that'd be tricky as heck.
@underscore.
10 ай бұрын
@@mayank8387 i programmed a very simple random number generator from scratch in python a few months ago lol. probably could recode that in assembly
@abhishankpaul
8 ай бұрын
Solve 3D wave equation and write the output to a data file 😂
@spaghettiking653
8 ай бұрын
@@mayank8387 I think you can just read from /dev/random or some shit, provided you're running Linux.
@dev__004
7 ай бұрын
Im genuinely curious. How would you do that?
You can't just say mov $1, rax means we will write because on its own it doesn't mean that. You have to mention first that your intention is to making a syscall to write. which requires you to put the ordinal of the write routine in rax, the stream number to rdi, the address of the message in rsi and the length of the message in rdx
@tacokoneko
6 ай бұрын
thank you, your explanation is LITERALLY better than his and helps me understand
@Theproductiveside
2 ай бұрын
thx man, do you have any recommendations for channels for assembly other than this guy
@lefteriseleftheriades7381
2 ай бұрын
@@Theproductivesidestacksmashing is a good channel about reversing. i don't know about any assemble channels
@jameslynch8738
Ай бұрын
@@TheproductivesideBen Eater has some good projects that go in depth Also, do a search for "Fasm", that should bring up tons.
@akostadinov
25 күн бұрын
This is what happens when you learn assembly for 60 seconds.
And that's why Fortran was invented. And this is also why I use C++
Yeah.... Fuck that I'ma stick to C# lmao
@tubefile100
Жыл бұрын
😂😂😂😂😂
@TheStickCollector
Жыл бұрын
Would learning C# help at all or is it only really useful for unity projects? (What I would use it for)
@baritonemonke4273
Жыл бұрын
@@TheStickCollector it is helpful in web development too
@jakubkucera1973
Жыл бұрын
@@TheStickCollector You can do almost anything in C# and you'll have the knowledge to learn other programming languages much quicker aswell.
@parknich081
Жыл бұрын
@@TheStickCollector learn c++, its much more useful than c#, theres not much c# can do that c++ cant
My first experience with Assembly was back in the 80's when I was a kid with the Z80 architecture, what amazing processor it is.
@kennethbeal
Жыл бұрын
Ah, memories... Back in high school I wrote a macro assembler (i.e., ASM plus "macros" which could be complex function calls etc) -- on paper, while vacationing! :)
@freedom_aint_free
Жыл бұрын
@@kennethbeal I did use MASM (Microsoft Macro Assembler) a lot back in the DOS era, I used to Write Libraries on MASM and linked the .OBJ with Borland's Turbo Pascal code, it was at the dawn of 32 Bit when it was a new thing.
@newman2022
8 ай бұрын
Old goodies processors,we usually build things from scratch i miss those days😊
For people who don’t understand, this is how I understood it. You can call special functions by setting rax to something, then calling syscall. So for example, writing to console is Step 1: rax=1 Step 2: provide other arguments Step 3: Syscall While for exiting the program it’s Step 1: rax=0x60 Step 2: provide other arguments Step 3: Syscall
@spaghettiking653
8 ай бұрын
Nice, here is my summary as well. The rax register is used to say which system call you'd like to access (they're numbered by the kernel), then you can pass additional parameters in the other registers. Then, you run the syscall command. If there's any (integer) return value, it will replace the contents of rax with that.
@swirl6996
7 ай бұрын
All of this is documented in various man pages for x86!
I can read and understand asm to some extent. But I never wrote it before. Besides some inline asm. I think being able to read it is more important than actually writing programs in asm.
Yes, the language is easy, but writing secure software at that level takes a bunch of knowledge and experience.
@albertosoto4280
Жыл бұрын
What means "secure"?
@Xyandzaxis
Жыл бұрын
@@albertosoto4280 Something that is not easily exploitable and doesn’t let the user do some stuff outside of its original use case.
@hoi-polloi1863
7 ай бұрын
I always hated written in assembly because you have to manage your own function calls (put stuff on the stack, set return destination, go to the function, read variables off the stack, unroll the stack... so tedious). It's so much easier in C where all that boilerplate is taken care of for you!
@Dom-zy1qy
3 ай бұрын
Are there any people nowadays writing production assembly code? I'd assume the performance gain wouldn't really be worth it with modern compiler optimizations. Maybe embedded / specific hardware it's worth but idk.
@_ColaDev
Ай бұрын
@@Dom-zy1qyThe performance of Assembly is basically no different from modern-day programming languages, it was only popular back then for its performance, which was previously unseen
The only issue I have with this lecture is your direct usage of numbers, you'd have a very much better description of the program if you did msg_length, sys_write, stdout, sys_exit, exit_success constants instead (or in capitals if you prefer, it's a convention I'm not fond of, but it exists in most use of most languages...).
@spaghettiking653
8 ай бұрын
Isn't it clearer when you make constants capitalized? That way, you know they aren't variables that could be changed.
More of this please. Mainly system calls and such.
Ugh, I remember assembler. Push, pop, registers, so much fun haha.
This is awesome, could you make more of these short explanations with actual tangible result? Thanks and love this channel!
now i can build rollercoaster tycoon in assembly
"Variable inside the processor" jeeeeeezzz...
So that's it, I now know assembly Programming? Ok, updating my LinkedIn profile right now!!1
please kindly make playlist on assembly language💙❤️💚♥️
Definitely the most easiest way of explaining assembly from what i have seen so far 👍
Such a trivial example for assembly
You are absolutely right! Assembly isn't hard at all. Solving problems in assembly is :)
@yarpen26
Ай бұрын
From all I've seen on it, writing assembly is just much more tedious than genuinely difficult to comprehend.
dude, you are a natural teacher, keep it going, so awesome, seriously awesome
Please more of these
You should do more of these short heavy info packed videos. ❤
Ok, now I am lost. I thought assembly was so low you wouldn't just have stdin/stdout/stderr available that easily.
@abdullahalmasri612
Жыл бұрын
Assembly is low, but not that low. Lower than assembly would be just ones and zeros. Assembly is essentially programming or manipulating registers/flags instead of variables and using instructions instead of functions. The key difference is registers and instructions are physical things on the microprocessor while functions/variables are abstractions to make life easier But there's this thing called interrupts and it makes your life SO MUCH easier and feels sometimes like you're writing in high level languages. Assembly is fun, once you're good at it. You can write assembly code like you're writing high level code BUT you also have the knowledge and imagination to think and understand where EVERY bit of data is stored on the memory, or like where and how does these bits move in the MP/memory. Sorry for this scuffed explanation lol I have recently finished my assembly course and I suggest also learning assembly in the context of microcontrollers to get an understanding of how the I/O work (like stdin and such)
@BradleyWeston92
Жыл бұрын
@@abdullahalmasri612 Thanks for the in depth response, makes more sense :)
@get1740
Жыл бұрын
@@abdullahalmasri612 bro thanks for that explanation really learn something new
When a simple hello world statement takes 15 lines of code you know you’re doing something right ;)
@yh_hat_trick491
5 ай бұрын
? It's assembly
there is this kind of sort of type of level of beauty in not just writing but also seeing code that low level that is just so satisfying i don’t know exactly why
@yarpen26
Ай бұрын
Merely being able to see exactly step by step all the crap that a computer needs to go through in order to visually render you moving your cursor half a pixels to the right, all within the fraction of a millisecond, is insane in and of itself.
Perfect Loop.
I see what you mean the syntax for lower level language such as assembly is more clear and straight forward
truly the best assembly break down out there. 10/10
rax is a variable inside the processor? Is it not a register where we can store variables in the processor?
Good to know more recent stuff, I only know 8086
I have become too used to intel syntax, everything uses it 😢
@spaghettiking653
8 ай бұрын
It is better tbf...
@tocraft573
8 ай бұрын
@@spaghettiking653its really not
@spaghettiking653
8 ай бұрын
@@tocraft573 At least the intel syntax doesn't spam %s and $s everywhere :/ that is just a sore on the eyes
@tocraft573
8 ай бұрын
@@spaghettiking653 that doesn’t even feel like a good argument, especially when using a good theme
@spaghettiking653
8 ай бұрын
@@tocraft573 How do you use a theme? What software? Any text editor I've used has no highlighting and it's a pain to look at. Moreover, the intel syntax doesn't use those symbols, which proves they're redundant and so there's just no point in writing them.
All that for a .087 millisecond of clip of something I didn't even understand. Thanks, man. IT course would be fun.
@CrispyCircuits
Ай бұрын
Learning C and assembly hand in hand makes both languages much easier to grasp. C is really powerful (and dangerous) because of how "low-level" it is. Think of it this way: Would you like 2 pieces of bread with jelly in between or would you like some jelly that is encapsulated in bread boundaries. I just really said nothing different there, but the POV and terminology were different. Using C is easier because it comes with a plate, a knife and a jar for the jelly.
i need more easy tutorial like this
Usually a constant string will be in the data or rodata section as opposed to text
This is amazing, I am now a fully qualified Assembly Language programmer for the TIOBE Index 😁
try leaning 8086 assembly
poease do more of these ❤️❤️
I feel like this would have been better explained by doing a few different syscalls & what is expected to perform them as well as _WHY_ the syscall would need the length in %rdx if %rsi has $msg ?
Do mips assembly next ❤
holy shit just wrote my first assembly. Thank you
Correct! It isn't hard!
@user-un5tf3zz6k
Жыл бұрын
Yup. It isn't hard to understand assembly, it's just hard to build something complex out of it.
Equivalent to write(1, "Hello World! ", 13); in c
AT&T syntax. :(
@LowLevelLearning
Жыл бұрын
I had to do it to keep compilation simple I’m sorry D:
@nordgaren2358
Жыл бұрын
@@LowLevelLearning it's alright. We all make mistakes. 😂 Good short, though. 👍
We had to make a sorting algorithm in CS in y86-64 and lemme tell you it was not easy lol but it was really fun
Assembly is generally fairely simple which is its biggest advantage but also disadvantage its like building a bicycle out of its raw materials basically said If you were to want to code games in assembly then you would have to implement many simple functions which even the most simple function is already a few lines long so in a nutshell its a very low level language You can increase optimisation drastically but its going to take a very very long time to code big projects into it
I prefer NASM syntax.
U should add a background because various asm work with different cpus, for example I know assembly for 8 bit and it's 99% different that this (probably 32/64 bit)
Cool vid, but AT&T syntax?
please make a vid on how to easily do this on windows with intel syntax!
@glungusgongus
6 ай бұрын
What syntax is he using
@zmike9831
6 ай бұрын
@@glungusgongus gas also known as gnu assembly, windows is not set up make assembly and gcc outputs at&t syntax which is the worst assembly language to exist.
@glungusgongus
6 ай бұрын
@@zmike9831 whys it called AT&T
This somehow doesn't work in Libre Office Writer help?!
crazy how the og rollercoaster tycoon was made with THIS code language
other flawours if assembly use $ to denote hex numbers and use # for rhe purpose $ is used here
What architecture is this?
God i miss knowing how to do basic programming like i did in 1st grade, i had the time of my life using and masterimg that apple 1.
@CrispyCircuits
Ай бұрын
Timex-Sinclair 1000. BASIC and assembly. Wild times.
You rock dude. Thank you.
@LowLevelLearning
7 ай бұрын
You rock!
When you get to advanced levels you learn Intel extended assembly instructions like "MOVBW2GCBIMOMM", which is a newer instruction for "Move bad word to garbage can because it might offend my mother". Really optimizes performance.
Learning Assembly is easy, getting it to actually do anything useful, now that is the hard shit ;)
I’ll come back to this when I actually need to learn assembly.
You gotta do a syscall just to end the program?
Today I learned that amd syntax MOV is src, dest while intel MOV is dest, src. Kinda wonder why they're different🤔
@glungusgongus
6 ай бұрын
Explain
@jjones3705
6 ай бұрын
@@glungusgongus intel syntax and and syntax have the reverse 9rdering for operands
@glungusgongus
6 ай бұрын
@@jjones3705 what is dest src
This why people hate assembly if even hello world starts like this
👏👏👏 I like your videos...remember doing things with tasm and masm
not the AT&T syntax
@glungusgongus
6 ай бұрын
Wdym
@thomfox871
6 ай бұрын
Yes, this is for GNU assembler. The syntax seems backwards
@makian_real
5 ай бұрын
@@glungusgongusthere's intel and AT&T syntax for ASM, intel is much nicer
bro, make us a series of videos on assembly, i really want to learn it but i cannot find a good tutorial, that explain in details and gives good links about the system calls codes, tips for asm and what does each asm indtructions does, also it would be cool if you do it on windows. Seem like windows sucks to make asm programs. But i only have windows and i'm too lazy to make a vm (because i have 8 GB of ram lol)
You are the best 💪👏
Thanks for share your knowledge! Man, I didn't know that mov could be used inverted... Because I learnt it was mov reg-destination, value-source However, with this video I learnt it could operate in inverted way👍🏽
Now we learned how to use some API calls to print "Hello World" to the screen. Not much Assembler to see and learn here. But, to be fair, what can you expect in 60 seconds :).
How to write an assembler?
Useful for optimizing certsin algorithms or tasks but I would stick to C. It requires 3x more code and 3x more thought to write in pure assembly. Write in C. Use inline assembly for optimization.
The mnemonics' parameters are in reverse order
Ok, subbed!
I was a 6502 guy but this makes sense, now I'm learning arm for my raspberry Pi
This program is asking for user input. rax register is used to call os system call 1 means read. rdi means file descriptor. also 1 means read. rsi pointer to buffer. Rdx size of buffer to be read. Just recently learn this from AI The equivalent c function would be: read(int file descriptor, const char* buffer, size_t bufferSize) There are about 300 linux system call can be used. This is only one of them. Also this is in x86_64 architecture.
I've always been curious about the programming of microcontrollers and chips on things like motherboards or graphics cards. I don't have a lot of knowledge about hardware outside the fundamentals and would be interested in digging deeper
A legend once said, If you know assembly all applications are open-source
print("Hello World!")
He's simultaneously pranking / punishing the type of person that would actually believe that you can learn assembly in such a short amount of time by teaching using AT&T syntax! "I know - let's choose the syntax that was the brain-child of a freaking telecom company instead of the one from an actual chip designing / manufacturing company - Intel!" - said no one EVER!!!
@-Cocell
21 күн бұрын
Bro, you good?
@richmondkoomson3403
20 күн бұрын
This is just what I was thinking, didn’t specify the assembler being used or the particular syntax and you go about teaching. It these things that make the language confusing. Terrible approach to teaching
@effsixteenblock50
20 күн бұрын
@@richmondkoomson3403 Hey guys - I thought it would be obvious by my over-the-top, crazed comment earlier that I was attempting humor. While I do prefer intel syntax, I was just joking. Didn't expect people to agree with me.
This is nice
Python code = print("Hello world") Java script= console.log("Hello Word") Asm :
Am a professional programmer now Thanks 🐐
How to make print function
I’m here expecting myself to learn assembly by watching these randomly popup shorts
is the mov instruction pseudo instruction? or in cisc everything is a proper instruction)
Why should we hire you? I can write hello world in assembly. You’re hired.
Cool now make rollercoaster tycoon xD
It's working in ATT style?
the biggest issue is that this doesn't work on ARM CPU or any other CPU it only works on x86 CPU without using an emulator which has its own limitations. the practical effect is that you can become very skilled at assembly for one CPU, but if you have to reverse engineer a binary for a different CPU, you have to relearn a huge amount of instructions and registers over again ESPECIALLY if it is a CISC CPU. this summary is the reason higher level languages were invented
you forget to add it's for Linux, not DOS, for example :)
if you can give me an advice to learn assembly, can you give any name of resources to help me learn assembly?
Can you create a proper tutorial for assembly with some projects ?
Meanwhile python: Print("Hello World!") Lol I joke, assembly is really cool
I don't know how but i was just staring wondering how are you moving rax into 1 and then i realized this is not intel syntax