Assembly Basics: The Language Behind the Hardware

Поделиться
HTML-код
  • Опубликовано: 22 янв 2025

Комментарии • 123

  • @Gengingen
    @Gengingen 3 месяца назад +15

    Thank you! 😊 Brought back old memories - began doing this on 8048 Intel single chip microcomputer way back in 1984.

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад +5

      Thank you for watching. That sounds like an incredible experience - working with the 8048 Intel chip back in 1984 must bring back some great memories. If you have any insights or suggestions, I'd love to hear them.

    • @selva0107
      @selva0107 3 месяца назад +1

      8086

    • @dominicestebanrice7460
      @dominicestebanrice7460 28 дней назад +1

      Motorola M6802....as part of a Mech Eng degree (!) in 1984....best classes in the entire course; the 'stepper motor' and 'traffic light control' projects were a revelation back then. 🙂

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  28 дней назад +1

      ​@@dominicestebanrice7460 Thanks for sharing your experience. The Motorola M6802 and those projects sound fascinating, especially for that time. It's amazing how such hands-on classes leave a lasting impression. Stepper motors and traffic light control must have been great ways to see Assembly live in action.

  • @piyushsharma7058
    @piyushsharma7058 18 дней назад +3

    Thank you so much sir😊 🙏

  • @darylivanhisola2867
    @darylivanhisola2867 3 месяца назад +34

    you cannot put Assembly language and easy together

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад +4

      Fair point. Assembly definitely has a learning curve, but once you get the hang of it, it can be really satisfying to work so close to the hardware. Thanks for watching.

    • @iorant2558
      @iorant2558 15 дней назад

      they try to put together assembly and understanding.. once you get it , its clear

  • @haidhiangkawijana7553
    @haidhiangkawijana7553 12 дней назад +1

    Great video. I need this to dive into Reverse Engineering and malware analysis.

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  12 дней назад

      Thank you! That's a great reason to learn Assembly as it's critical for reverse engineering and malware analysis. Best of luck on your journey! Feel free to also share your progress.

  • @kcvinu
    @kcvinu 3 месяца назад +5

    1. How do you choose registers ? I mean, how do you know a specific register is good to store the value ?
    2. Does assembly handles unicode string ? Especially 16bit WCHAR string
    3. Can you declare a struct in assembly language ?

    • @adammontgomery7980
      @adammontgomery7980 3 месяца назад +4

      1. There are conventions for which registers to use for returning values from subroutines. However, any can be used for whatever you want.
      2. No, you'd have to program Unicode handling.
      3. No

    • @kcvinu
      @kcvinu 3 месяца назад +1

      @@adammontgomery7980 Thank you for reply. I heard that there are volatile and non-volatile registers which we need to take special care when we code in assembly. So you need proper guides/manuals, right ?
      And if there are no structs, I wonder how did assembly programmers handle their objects ?

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад +5

      Thanks for your thoughtful questions.
      adammontgomery7980, great answers. To add a bit more:
      1. Yes, registers can be volatile (caller-saved) or non-volatile (callee-saved), so following conventions is key to managing them efficiently. You can refer to specific architecture manuals for guidelines.
      2. Assembly doesn't have structs like high-level languages, but you can mimic them by using memory locations and offsets to group related data. Assembly's flexibility allows programmers to come up with creative ways to organize and manage data.

    • @adammontgomery7980
      @adammontgomery7980 3 месяца назад +4

      @@kcvinu look up application binary interface (ABI) for details, but it's just a convention used for a specific architecture and compiler. Assembly doesn't use objects, just memory. Since you know the data type and therefore size of each of an object's member variables, you can just use an array instead of an object. To access an object member just take the pointer to the array (object) and add an offset. It's very easy to mess up, which is why we have higher level languages to think more abstractly.

    • @maxmuster7003
      @maxmuster7003 3 месяца назад

      ​@@kcvinuIntel developer manuals.

  • @おならマスター
    @おならマスター 9 дней назад +1

    Thanks

  • @sooommm8895
    @sooommm8895 3 месяца назад +13

    Thanks, i want tallk about security computer, and data structure such as stack and linkd list , Queue 😊

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад +3

      Thank you for your feedback. Data structures like stacks, linked lists and queues are definitely important topics. I'll be sure to cover them in one of my future videos, so stay tuned.

    • @abskrnjn
      @abskrnjn 3 месяца назад +1

      Found a similar channel for data structures:- ruclips.net/video/PsTvZ_htHT8/видео.htmlsi=fu0i0cpoptybPKwy

  • @abskrnjn
    @abskrnjn 3 месяца назад +2

    Great video, can't wait for the channel to get big 🎉

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад +1

      Thank you for the kind words. I'm looking forward to growing bigger with viewers like you.

  • @TheGeezaz
    @TheGeezaz Месяц назад +3

    well you have the GOAT that wrote the game roller coaster tycoon. that had more NPC's than the new games today in 2024 on screen at the same time, or if you have a battle simulator you have a cheap landscape and a skybox so yea, plus that game was not only written in Assembly but also was a very dynamic game.
    basicaly you can get as complex as it comes.

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  Месяц назад

      Absolutely, RollerCoaster Tycoon is a fantastic example of what can be achieved with Assembly. It's amazing how efficient and dynamic the game was, even with the hardware limitations of the time. Assembly's ability to optimize for performance and directly control hardware really shines in cases like this. Thanks for sharing this great insight.

  • @Rennu_the_linux_guy
    @Rennu_the_linux_guy 3 месяца назад +1

    the best way to learn assembly is to boot up cheat engine with an old single player game or the tutorial and try to mod its code while its running. the amount of knoweldge and intuition i gained from it was incredible. even modded in the healtb regen system from gtav into san andreas :3

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад

      That's an awesome way to learn Assembly. Hands-on experience like that can really deepen your understanding. Modding games is a fun way to apply what you've learned, especially adding a health regen system from GTA V to San Andreas! Thanks for sharing your insight.

    • @Zpheme12
      @Zpheme12 2 месяца назад +1

      You should make a video showing how to do that, I’m pretty sure a lot of people would watch. I am one of those

  • @thanhmai8582
    @thanhmai8582 3 месяца назад +2

    I have question:
    First programing language is written by hand, such as punch card and detect digital signal by holes on card or manually open close switches.
    Based on manually open close switches, they convert into abstraction as "mov" "add" in paper sheet?
    And why binary as text abstraction can generate electrical sign to
    interact with hardware

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад +1

      Great question. In the early days, computers used punch cards or switches to input instructions. Each hole or switch represented binary (1s and 0s) that the computer could understand.
      To make things easier for humans, languages like Assembly were created. Instead of flipping switches, you could use commands like 'mov' or 'add' which are easier to write and read. These commands are then translated into binary (1s and 0s) that the computer's hardware can process as electrical signals.
      Think of Assembly like a bridge: you write in a simple language and it gets converted into the binary code that the computer uses to control its hardware.

    • @thanhmai8582
      @thanhmai8582 3 месяца назад

      @@WhiteboardDoodles24 the key matter is that by which mechanism the computer can process binary as electrical signals
      Which method convert from abstraction text to physical interaction??
      As punch card, they have sensor or smth to detect holes by light

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад

      The key mechanism here is that computers work by detecting electrical signals. A '1' in binary represents an 'on' signal (a flow of electricity), while a '0' represents an 'off' signal (no flow of electricity). These signals travel through the computer's circuits to perform tasks.
      In modern computers, the CPU (central processing unit) processes these binary instructions. When you write Assembly code, the computer translates that into machine code (binary). The CPU has transistors, which act like tiny switches. These transistors can be turned on or off, representing 1s and 0s in binary. The sequence of binary instructions tells the transistors how to process data, perform calculations and interact with the hardware.
      As for punch cards, you're right - they had sensors that could detect holes. The holes represented binary 1s and 0s, which the computer's hardware would process similarly, by sending electrical signals based on whether a hole was detected or not.
      So, to summarize, the CPU processes binary by using electrical signals and transistors act as the switches that execute instructions based on those signals.

    • @thanhmai8582
      @thanhmai8582 3 месяца назад

      @@WhiteboardDoodles24 tks but it's still not clear how hardware detect text abstraction from series of 0 or 1
      For example, when you press the key on teleprinter, it close the switch and connect to hardware circuit for other processing
      But when you type mov r1, r2, r3, it is translated into binary code. But it is still an abstraction from screen, it need a "sensor" in order that computer hardware could realizes it is 0 or 1 to do on/off electricity
      So, what's kind of sensor and machanism?
      It need to be logic comparing to hard drive when data is retrieved from magnetic and non magnetic as 0/1 on surface..but in assembly ..series 0/1 from mov/load/add instruction is detected via I/O as keyboard?

    • @thanhmai8582
      @thanhmai8582 3 месяца назад

      No more clear explaination sir?

  • @st.charlesstreet9876
    @st.charlesstreet9876 3 месяца назад +1

    I loved the “ Simpler “ days of the TRS -80’s Z80 assembler language! 😅

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад +1

      Glad to hear the video brought back memories. The Z80 assembly definitely had its charm. It's amazing how much tech has evolved since the TRS-80 days.

    • @st.charlesstreet9876
      @st.charlesstreet9876 3 месяца назад +1

      @@WhiteboardDoodles24 😉

    • @maxmuster7003
      @maxmuster7003 3 месяца назад +2

      I began with 6502 assembly, but after i used x86 assembly i don’t want to go back to 8 bit computer.

    • @limoshkamilk9887
      @limoshkamilk9887 3 месяца назад +2

      Excellent explanation of the study material. What you do is very valuable, thank you

    • @ArneChristianRosenfeldt
      @ArneChristianRosenfeldt 2 месяца назад

      @@maxmuster7003both these languages have implied registers. So you write down the instructions and then insert some moves to match. Important instructions like add, load and store work on all registers, I think. Now I may have to look up if encoding is more difficult for AX than for AL, AH.
      Why not check the flags after AND ? Or if you love CMP,0 so much, why not ditch flags and use RISCV?

  • @litecode1024
    @litecode1024 Месяц назад +1

    Thank you!

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  Месяц назад

      You're welcome! Glad you found the video helpful.

    • @litecode1024
      @litecode1024 Месяц назад +1

      @WhiteboardDoodles24 are there assembly for mobile devices

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  Месяц назад

      Great question! Yes, Assembly language can be used for mobile devices, but it depends on the processor architecture of the device. For example, ARM Assembly is commonly used for mobile devices since most smartphones and tablets use ARM-based processors. However, writing Assembly for mobile devices is rare in modern app development because higher-level languages like Swift, Kotlin and C++ are more commonly used for efficiency and portability. Thanks for asking!

  • @Pedritox0953
    @Pedritox0953 3 месяца назад +1

    Great video!

  • @allezvenga7617
    @allezvenga7617 3 месяца назад +1

    Thanks for your sharing

  • @jakeaustria5445
    @jakeaustria5445 3 месяца назад +1

    Thank You

  • @fad-e2840
    @fad-e2840 3 месяца назад +1

    excelent educative material! five stars

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад

      Thank you for watching. I'm happy to hear that you found it helpful. Stay tuned for more content.

    • @fad-e2840
      @fad-e2840 3 месяца назад +1

      your videos are pretty well made and are clear and concise about this topic, need more viewers ✨

  • @tamimayan2028
    @tamimayan2028 Месяц назад +1

    does assembly language allow you to do things you can’t in a higher level language? If yes what is that?

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  Месяц назад

      Great question! Assembly language gives you direct access to the hardware, allowing you to do things like:
      - Manipulate specific CPU registers
      - Write highly optimized, low-level routines
      - Execute precise timing operations
      - Interact directly with memory addresses
      While higher-level languages abstract these details for ease of use, Assembly is unmatched when you need fine-grained control over how your program interacts with the hardware. Thanks for asking.

    • @tamimayan2028
      @tamimayan2028 Месяц назад

      @@WhiteboardDoodles24 assembly language gives me direct access to the hardware.but high level language also give access to the hardware but indirectly.so high level language do everything that assembly language do but indirectly.so there is no difference.

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  Месяц назад +1

      @@tamimayan2028 Great point. You're right that high-level languages can indirectly access hardware, but Assembly can do some things more precisely because it directly communicates with the CPU.
      For example, imagine you're programming a blinking LED on a simple microcontroller. In Assembly, you can control exactly when and how the CPU sends the signal to turn the LED on and off - down to the exact cycle. High-level languages rely on pre-written libraries for this, which might not give you the same precision or flexibility.
      So, while high-level languages can achieve similar results, Assembly allows you to customize and optimize the process in ways that aren't always possible with higher-level abstractions. Thanks for bringing this up.

  • @theintjengineer
    @theintjengineer 3 месяца назад +1

    Thank you.

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад

      You're welcome. If you have any questions or suggestions, feel free to share them.

    • @cyberjay9146
      @cyberjay9146 3 месяца назад

      ​@@WhiteboardDoodles24maybe explain these commands instead of going for a speed run how many you can list in 5 seconds 🏃‍♂️

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад +1

      I wanted to provide a quick overview of basic Assembly instructions, but you're right - going in-depth with each command deserves more attention. I'll make sure to cover these in a future video, with a slower pace and more detailed explanations. Thanks for your feedback.

  • @nvs-different-ideas
    @nvs-different-ideas 3 месяца назад +1

    This help me a lot

  • @zo5413
    @zo5413 4 дня назад +1

    How about c language, c17, ... ?

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 дня назад

      C is a powerful language that is often used alongside Assembly for systems programming. I will cover C and its standards like C17 in future videos.

    • @zo5413
      @zo5413 3 дня назад +1

      @WhiteboardDoodles24 thanks a lot for your explanation, i want expert in c, because assembly is difficult for me, a big question is ... when ? 🙂🙂

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 дня назад

      Learning languages like C and Assembly is surely a very rewarding skill, although a bit more challenging. I still haven't exactly decided on all the videos I want to cover now but expanding the programming playlist and creating dedicated videos for different programming languages (like C, Java, Python, etc) is definitely one of the goals. You can expect such videos about C and other programming topics in the first quarter of this year so stay tuned. Thank you for your suggestions and engagement.

    • @zo5413
      @zo5413 3 дня назад

      @@WhiteboardDoodles24 your welcome, let me guess, you are a hardware engineer or a system programmer aren't you ? 🙂

  • @manojmadushanka9356
    @manojmadushanka9356 3 месяца назад +1

    thank you

  • @fdauti_ca
    @fdauti_ca 3 месяца назад

    it is also a must know for cracking software, right?

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад +1

      Assembly is certainly a foundational skill for understanding how software works at a low level, including reverse engineering for legitimate purposes like debugging or security research. Technically speaking, yes, however, those skills should always be applied ethically and legally.

  • @saiba-b7l
    @saiba-b7l 3 месяца назад +2

    is it hard to learn it?

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад

      Great question. Learning Assembly can be a bit challenging at first because it's closer to how the computer actually works, but with time and practice, it becomes easier to understand. If you're interested in how hardware interacts with software, it can be really rewarding. Starting with simple programs and gradually building up is a good approach.

  • @NamerunaTheFool
    @NamerunaTheFool 3 месяца назад +1

    the language behind the hardware is actually on/off. assembly can be recoded to another language.

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад +2

      That's a good observation. At its core, everything boils down to the binary on/off signals that hardware understands. Assembly serves as a bridge between these binary instructions and higher-level languages, making it easier for us to code. Thanks for your input.

  • @limoshkamilk9887
    @limoshkamilk9887 3 месяца назад +1

    ❤❤❤

  • @matthewgarcia6017
    @matthewgarcia6017 3 месяца назад +2

    Where was this video when I took microcontroller programming

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад

      Glad you found it helpful. I wish it had been around back then too. I'll be creating more videos on such topics, so stay tuned for more.

  • @alabamacajun7791
    @alabamacajun7791 15 дней назад +2

    Some assembly required. Robots need not apply.

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  14 дней назад +1

      Good one! Assembly certainly does require some human effort and creativity. Thanks for sharing your humor.

  • @Swerce0
    @Swerce0 Месяц назад +1

    Bro draws very good

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  Месяц назад

      Thanks for the kind words. The visuals are actually SVGs and not hand-drawn, but I'm glad they help make the concepts clearer. Appreciate your support.

    • @Swerce0
      @Swerce0 Месяц назад +1

      @WhiteboardDoodles24 🙌😁

  • @staninjapan07
    @staninjapan07 3 месяца назад +1

    Fascinating, though I did not understand more than about 5% of it.

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад

      Thanks for watching. Assembly can be tricky at first. Feel free to share what parts were confusing and I'll do my best to clarify or point you to some helpful resources.

    • @Rockyzach88
      @Rockyzach88 3 месяца назад +2

      Basically pretend you have this weird electronic object that has various buttons on it. The object is capable of holding isolated "bits" of info (on or off) in containers (called registers). It can also shift those bits around. Think like a row of light switches as a register but the light switches are a lot smaller. If you have 10 switches and the first 9 are in the off position and the 10th is in the on position. Well then pretend (just for the hell of it) you actually want the first switch on and the remaining 9 off. Well you aren't going to physically move the light switch from the wall and place it at the beginning. Instead you are just going to flip the first one on and flip the last off.
      So that's one thing this weird object does but how? Well it has the buttons right? Well turns out if you press some (or all) of those buttons in specific order and at the right time, you can flip those light switches how you want to.
      However, you find out that that to do that one example from a ove you have to press A LOT of those buttons and you have to do it at weird time intervals.
      And turns out to get anything useful out of these switch flips (for humans) you have do a A LOT (and I mean A LOT) of these "switch flips" operations. It's too hard to do mechanically (or basically impossible). So what do you do?
      You build a table where one column are "mnemonics" (short human reable words), and the other column is a serious of button pushes.
      Then you build another weird electronic object that can parse/read those mnemonics that you wrote on a txt file, look at the table and push those buttons for you in the correct order and at the right times.

    • @gcolombelli
      @gcolombelli 3 месяца назад +1

      If you have no previous experience with any kind of programming, assembly can be a tough place to start. This is just a overview / introduction, so don't be shocked if you feel a little lost, it will eventually pass as you learn more about it. Or if you find assembly too hard, maybe try a high level language like Python, it's super simple for beginners and much more forgiving than starting with something like C (too low level) or Scheme (too abstract).
      Don't get me wrong, it's perfectly possible to start with Assembly, C, Scheme or almost any other language, but it all depends on how good is the material you're using to learn from, and most material I've found for C and Scheme will only work for a highly motivated individual who is comfortable seeking additional information by himself or herself. Something like Python or Ruby is much easier to start with, then after you got the basics and are comfortable with it, you can migrate to another language if you feel like it isn't a good fit for what you want to do.

  • @jovvy7545
    @jovvy7545 21 день назад

    Serious question are using AI API to respond to comments?

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  21 день назад

      If you are asking whether I use AI to respond to comments, the answer is no. I personally write each response to make sure it shows my perspective and engages with viewers authentically. Let me know if you meant something else.

  • @maxmuster7003
    @maxmuster7003 3 месяца назад +3

    Java and Phyton are not easier to read and understand for me, because i don’t know which CPU instructions are used to execute a high level command.

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад +3

      You're right - what makes a programming language easier or harder really depends on personal preference and experience. For some, like you, understanding how high-level commands translate to CPU instructions makes lower-level languages like Assembly more intuitive. Others might prefer the simplicity of high-level languages like Java or Python. It all depends on how you like to approach programming.

    • @maxmuster7003
      @maxmuster7003 2 месяца назад +1

      ​@@WhiteboardDoodles24Yes, thx.

    • @maxmuster7003
      @maxmuster7003 2 месяца назад

      ​@@WhiteboardDoodles24I took a look into the linux source code multiple times to search for the instruction to use a primary monitor and a secondary monitor with one graphic card that provide to connect two monitors.
      I know how to get the EDID data from the primary monitor, but i don’t how to get the data from the secondary monitor.
      I know how to use the functions of the VBE 3 bios to switch into a refreshrate controlled graphic mode using the primary linear framebuffer(address from mode specific info) and in the Windows device manager we can see the linear address of the secondary framebuffer, but i don’t know how to change the videomode for the secondary monitor. Some graphic cards start in clone mode, so the second monitor display the content of the primary framebuffer too, or it display a message with no signal.
      If it is possible i want to use different video modes&refreshrates and that the secondary monitor display the content of the secondary linear framebuffer. I like to use the 16 bit "BIG" Real Mode with 4 gb segment size for DS,ES,FS,GS segment + A20 address line on on 80386+ CPU.

  • @jayj.4975
    @jayj.4975 3 месяца назад

    The video should be checked for high pitch sound.

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад

      I reviewed the audio on different devices and didn't notice any high-pitched sound. It might be a local issue on your end. Could you please tell me where exactly in the video you experienced the high-pitched sound?

    • @hariranormal5584
      @hariranormal5584 Месяц назад

      @@WhiteboardDoodles24
      I too am feeling it, every now and then when the speech is being used I hear "squeaks" if it makes sense. I thought it was just a issue @ my side, but now someone has mentioned it maybe it's something

  • @matthouben4242
    @matthouben4242 3 месяца назад

    The need for using Assembly has decreased considerably as compilers for langues like C have become so optimized that they produce faster and more efficient code than human programmers using Assembly directly.

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад +4

      Modern compilers for languages like C have indeed become highly optimized, often producing code that rivals or even surpasses what could be written manually in Assembly for many applications. However, Assembly is still valuable in certain situations, such as when low-level control over hardware is needed or in performance-critical sections of code where even the smallest optimizations matter. It's also helpful for understanding how high-level code translates into machine instructions. Thanks for sharing your insights.

    • @maxmuster7003
      @maxmuster7003 2 месяца назад +1

      I use assembly just for fun and i know some tips like memory and code alignment or paralell execution with pairing simple and complex instructions to prevent stall.

  • @poghuman8676
    @poghuman8676 3 месяца назад

    4:53

  • @insidiousmaximus
    @insidiousmaximus 2 месяца назад

    ahhhh whiteboard burning my retina

  • @DanielKasyanov
    @DanielKasyanov 28 дней назад +1

    THAT IS NOT A REAL HAND YOU ARE NOT DRAWING IT THAT FAST AND CHANGING COLORS INSTANTLY. ITS FAKE

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  28 дней назад

      You are right. It is not a real hand. I use animation software to create visuals, which allows for quick drawing and instant color changes. It's all about making the content engaging and easy to follow.

    • @DanielKasyanov
      @DanielKasyanov 27 дней назад

      @@WhiteboardDoodles24 ok.

    • @ADM_RAMconsumingfox
      @ADM_RAMconsumingfox 25 дней назад +1

      Nerd
      Just watch the video

  • @BaablnRiver
    @BaablnRiver 3 месяца назад +1

    1 year traditional lerning in 12 min . 🎉

    • @WhiteboardDoodles24
      @WhiteboardDoodles24  3 месяца назад

      Thank you for watching and for the great feedback. I'm really happy to hear you found the video helpful and concise.