Thank you! 😊 Brought back old memories - began doing this on 8048 Intel single chip microcomputer way back in 1984.
@WhiteboardDoodles243 ай бұрын
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.
@selva01073 ай бұрын
8086
@dominicestebanrice746018 күн бұрын
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. 🙂
@WhiteboardDoodles2418 күн бұрын
@@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.
@haidhiangkawijana75532 күн бұрын
Great video. I need this to dive into Reverse Engineering and malware analysis.
@WhiteboardDoodles242 күн бұрын
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.
@piyushsharma70588 күн бұрын
Thank you so much sir😊 🙏
@WhiteboardDoodles248 күн бұрын
You're welcome. I'm glad you liked the video.
@piyushsharma70587 күн бұрын
@@WhiteboardDoodles24 🤗
@kcvinu3 ай бұрын
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 ?
@adammontgomery79803 ай бұрын
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
@kcvinu3 ай бұрын
@@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 ?
@WhiteboardDoodles243 ай бұрын
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.
@adammontgomery79803 ай бұрын
@@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.
@maxmuster70033 ай бұрын
@@kcvinuIntel developer manuals.
@sooommm88953 ай бұрын
Thanks, i want tallk about security computer, and data structure such as stack and linkd list , Queue 😊
@WhiteboardDoodles243 ай бұрын
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.
@abskrnjn3 ай бұрын
Found a similar channel for data structures:- kzbin.info/www/bejne/hqS3p42Vndl7iposi=fu0i0cpoptybPKwy
@abskrnjn3 ай бұрын
Great video, can't wait for the channel to get big 🎉
@WhiteboardDoodles243 ай бұрын
Thank you for the kind words. I'm looking forward to growing bigger with viewers like you.
@TheGeezaz29 күн бұрын
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.
@WhiteboardDoodles2429 күн бұрын
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.
@fad-e28403 ай бұрын
excelent educative material! five stars
@WhiteboardDoodles243 ай бұрын
Thank you for watching. I'm happy to hear that you found it helpful. Stay tuned for more content.
@fad-e28403 ай бұрын
your videos are pretty well made and are clear and concise about this topic, need more viewers ✨
@litecode102425 күн бұрын
Thank you!
@WhiteboardDoodles2425 күн бұрын
You're welcome! Glad you found the video helpful.
@litecode102425 күн бұрын
@WhiteboardDoodles24 are there assembly for mobile devices
@WhiteboardDoodles2425 күн бұрын
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!
@allezvenga76173 ай бұрын
Thanks for your sharing
@WhiteboardDoodles243 ай бұрын
My pleasure, thank you for watching.
@nvs-different-ideas3 ай бұрын
This help me a lot
@WhiteboardDoodles243 ай бұрын
Nice to hear the video helped you.
@Pedritox09533 ай бұрын
Great video!
@thanhmai85823 ай бұрын
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
@WhiteboardDoodles243 ай бұрын
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.
@thanhmai85823 ай бұрын
@@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
@WhiteboardDoodles243 ай бұрын
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.
@thanhmai85823 ай бұрын
@@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?
@thanhmai85823 ай бұрын
No more clear explaination sir?
@darylivanhisola28673 ай бұрын
you cannot put Assembly language and easy together
@WhiteboardDoodles243 ай бұрын
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.
@iorant25585 күн бұрын
they try to put together assembly and understanding.. once you get it , its clear
@jakeaustria54453 ай бұрын
Thank You
@theintjengineer3 ай бұрын
Thank you.
@WhiteboardDoodles243 ай бұрын
You're welcome. If you have any questions or suggestions, feel free to share them.
@cyberjay91463 ай бұрын
@@WhiteboardDoodles24maybe explain these commands instead of going for a speed run how many you can list in 5 seconds 🏃♂️
@WhiteboardDoodles243 ай бұрын
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.
@NamerunaTheFool2 ай бұрын
the language behind the hardware is actually on/off. assembly can be recoded to another language.
@WhiteboardDoodles242 ай бұрын
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.
@st.charlesstreet98763 ай бұрын
I loved the “ Simpler “ days of the TRS -80’s Z80 assembler language! 😅
@WhiteboardDoodles243 ай бұрын
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.charlesstreet98763 ай бұрын
@@WhiteboardDoodles24 😉
@maxmuster70033 ай бұрын
I began with 6502 assembly, but after i used x86 assembly i don’t want to go back to 8 bit computer.
@limoshkamilk98873 ай бұрын
Excellent explanation of the study material. What you do is very valuable, thank you
@ArneChristianRosenfeldt2 ай бұрын
@@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?
@Rennu_the_linux_guy2 ай бұрын
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
@WhiteboardDoodles242 ай бұрын
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.
@Zpheme122 ай бұрын
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
@tamimayan2028Ай бұрын
does assembly language allow you to do things you can’t in a higher level language? If yes what is that?
@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Ай бұрын
@@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Ай бұрын
@@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.
@matthewgarcia60173 ай бұрын
Where was this video when I took microcontroller programming
@WhiteboardDoodles243 ай бұрын
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.
@Swerce0Ай бұрын
Bro draws very good
@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Ай бұрын
@WhiteboardDoodles24 🙌😁
@manojmadushanka93563 ай бұрын
thank you
@WhiteboardDoodles243 ай бұрын
You're welcome. Glad to hear you like the video.
@fdauti_ca3 ай бұрын
it is also a must know for cracking software, right?
@WhiteboardDoodles243 ай бұрын
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-b7l3 ай бұрын
is it hard to learn it?
@WhiteboardDoodles243 ай бұрын
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.
@staninjapan073 ай бұрын
Fascinating, though I did not understand more than about 5% of it.
@WhiteboardDoodles243 ай бұрын
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.
@Rockyzach883 ай бұрын
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.
@gcolombelli3 ай бұрын
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.
@maxmuster70033 ай бұрын
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.
@WhiteboardDoodles243 ай бұрын
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.
@maxmuster70032 ай бұрын
@@WhiteboardDoodles24Yes, thx.
@maxmuster70032 ай бұрын
@@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.49753 ай бұрын
The video should be checked for high pitch sound.
@WhiteboardDoodles243 ай бұрын
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Ай бұрын
@@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
@matthouben42423 ай бұрын
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.
@WhiteboardDoodles243 ай бұрын
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.
@maxmuster70032 ай бұрын
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.
@jovvy754511 күн бұрын
Serious question are using AI API to respond to comments?
@WhiteboardDoodles2411 күн бұрын
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.
@limoshkamilk98873 ай бұрын
❤❤❤
@alabamacajun77915 күн бұрын
Some assembly required. Robots need not apply.
@WhiteboardDoodles244 күн бұрын
Good one! Assembly certainly does require some human effort and creativity. Thanks for sharing your humor.
@poghuman86763 ай бұрын
4:53
@insidiousmaximus2 ай бұрын
ahhhh whiteboard burning my retina
@DanielKasyanov18 күн бұрын
THAT IS NOT A REAL HAND YOU ARE NOT DRAWING IT THAT FAST AND CHANGING COLORS INSTANTLY. ITS FAKE
@WhiteboardDoodles2418 күн бұрын
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.
@DanielKasyanov17 күн бұрын
@@WhiteboardDoodles24 ok.
@ADM_RAMconsumingfox15 күн бұрын
Nerd Just watch the video
@BaablnRiver2 ай бұрын
1 year traditional lerning in 12 min . 🎉
@WhiteboardDoodles242 ай бұрын
Thank you for watching and for the great feedback. I'm really happy to hear you found the video helpful and concise.