Assembly language for the Raspberry Pi5 seems to be different from what you're showing here.
@Vazzible_gaming Says:
Why didn’t you teach binary subtraction using twos complement? Reverse carry is super confusing
@Algator314 Says:
Would this work on the smaller pico boards?
@asgarantony Says:
Does this work in m1 arm chip
@DorisIsichei Says:
Plz I don't understand
@rafacomputers5744 Says:
how can i do for loop in assembly ??
@rolandnedu9777 Says:
than you for this video. Question: how were you able to use r1_lt when you didn't create a branch for it in the first place. This is from the last 5 minute of the video
@APToons Says:
I'm using a raspberry pi 3b (running an ubuntu server) and I'm getting the errors: operand 1 must be an integer register -- `mov R0,#65' ; operand 1 must be an integer register -- `mov R7,#1'; unknown mnemonic `swi' -- `swi 0'
Any idea why?
@nimisincerta3599 Says:
Bit of criticism here: you spend all this time to tell us about binary operations and hex and stuff which, granted, is cool to know but then you go onto none of that mattering at the 23 minute mark. You then set about making Hello World. You say that R7 has to have 4 to tell the computer something fancy but don't say HOW you know that nor where to find that information as if it's something we should all just KNOW. Then you say that R0 has to be set to 1 to mean that the output should go to the screen but HOW did you know that!? And I know that when you were talking about the registers you said that they mean fancy stuff when certain values are placed in them but that you'd get to that later. You REALLY should have gotten to that WELL before you actually started USING it because THAT'S the important part to know NEXT; not how to convert binary, hex, and decimals. Now I know that you've got that information from an ARM register look up table but you really should introduce that concept WELL before you require it's use. Like I said, working with raw binary and hex is fun to know but it's not what you were doing next and while you are explaining it you said it's honestly not needed to program so why are you wasting your breath on it when what we DO need to know is why and how 4 in R7 does something special? Teach it first and then use it is better than losing your audience by using something that you have yet to actually teach. Now I paused the video to write this so I guess that you will get into it but I don't really care that YOU know how to derive those values, I'm wanting you to tell me. Doing it this way leaves everyone trying to learn in your dust even if just for a moment and seems kind of like showing off.
EDIT: so no... you never got there but you DID redundantly go over exacting information that was wholly unnecessary again. Your tutorial isn't so much a tutorial it's you showing off how much assembly you know. That's fine for you but I actually want to learn these things too. This type of tutorial hurts more than it helps and I will not be continuing with it.
@HenrikoMagnifico Says:
I'm just learning this to reverse engineer old video games. Huge respect to those who write assembly on a regular basis
@ChrisM541 Says:
1) Assembly language is the mnemonic 1:1 version of a series of numeric opcodes and any applicable operands.
2) Assembly language is not "one step up from machine code" - it is, literally, machine code, where each opcode is given it's 'root' architectural non-numeric name (mnemonic).
3) No one EVER wrote(!!) in "machine code" - from day #1 programmers wrote in assembly, writing down the numeric opcode/operand values beside each line of code (it's the 'numeric value' version of the program that would be entered into memory and executed).
4) An assembler's job is simply acting on an opcode-operand lookup table, while operands are replaced with their numeric counterparts.
5) Assembly programming is EXTREMELY difficult to do as an expert(!!).
6) The 'golden age' of expertise in assembly language was in the 80's - 90's, for obvious reasons. Since then, 'assembly expertise' has rapidly declined - a serious problem for the world's security.
@colwarsstudiobrickfilmandm8580 Says:
Roller coaster tycoon was made in pure x86 assembly
@seniorpz1969 Says:
i'm guessing this is not for beginners?
@stravaoritdidnthappen Says:
You somehow managed to not explain assembly language in any way, and instead rambled endlessly on bits and other trivial information. It's truly mind boggling how pretentious and completely fucking stupid CS professionals are when it comes to communicating.
@gabehcuodsuoitneterp203 Says:
Any 64 bit version coming?
@richardwilliamson9433 Says:
Fantastic series. It’s taken me years to find a good primer on Assembly. You are showing small examples that work, specific to the platform, and explain very well the purpose of the registers. I’m also excited because you started on branching quickly showing some practical uses. Looking forward to 2 and 3!!
@no-one6790 Says:
Very useful, straight-to-the-point, no bs video
@tomatocultivator2456 Says:
You sound like Bro Code! Do you know him?
@ivancortesmedina5789 Says:
This guy mentions you. Thought you should know. https://m.youtube.com/watch?v=IRTfhkiAqPw&t=4s
@tambow44 Says:
Saves a bit of trouble:
$ function asm(){# remove the echo to make this work echo as -o $name.o $name.s; echo ld -o $name $name.o;}
$ asm asmtut # call it what you wantas -o asmtut.o asmtut.sld -o asmtut asmtut.o
Put this inside ~/.bash_profile and it'll work always
@apidas Says:
learning assembly tutorial
first 5 mins: learning vim
@Baunatalix Says:
See you have lots of good comments. Congratulations. Way too fast explained though.
@calebwiggins3042 Says:
Wrong the best way to watch this video is 2x speed!
@mrunixman1579 Says:
Currently learning assembly as part of an online course. I am using a Linux MacMini for it but interested in ARM's registers.
@alexdefigueiredo7176 Says:
Don’t recommend at all to beginners,
@alexdefigueiredo7176 Says:
This is supposedly a beginners video, but don’t worry you’ll know all the shortcuts too
@_abw Says:
what i need to learn befor this course i only know how to use kali linux and python and some network basics
And i don’t get what he is doing in this video
@silque1150 Says:
I have to circle back to this every now and then to get then hang of the basics. Thank you.
@gailgayo5088 Says:
What kind of apk do I use for Android phone ?🙂thank you!
@theguyfromtech4090 Says:
Yk, if there's like a guy who's still learning programming, I'd either teach him C as their first language, or I'm gonna link an ASM how to video.
@ramonaquino6664 Says:
What assembler to use when you are on Windows or Linux? How to install?
@codelife6075 Says:
Hey Derek in your own honest opinion in the most detailed answer possible which languages are the best languages to learn hacking and defense against hacking and why? I want to learn so bad please help! I respect your opinion and knowledge so much ! and please tell me the best books to read to learn everything there is to learn about the C Programming language Im Very very very obssessed with C!
@unchayndspersonalaccount7690 Says:
0:00 Intro
0:41 Assembly Overview
1:59 Setup / Vim
5:15 Comments
5:35 .text
5:55 _start label
6:14 MOV
6:43 SWI
7:24 Saving and Compiling
7:55 Running the executable
8:34 Linking and BAL
10:26 Makefile
13:07 Bits, Nibbles, Bytes, and Words
13:36 Registers and the CPSR
15:27 Binary Numbers
16:05 Decimal to Binary Conversion
16:39 Hexadecimal numbers
17:37 Hexadecimal to Decimal Conversion
18:05 Decimal to Hexadecimal Conversion
18:47 Adding Binary Numbers
20:00 Subtracting Binary Numbers
20:46 Twos Complement
21:57 Hello World
22:57 LDR and data reference
23:21 .data
23:38 .ascii and a string
23:44 Saving and Running
24:07 Keyboard Input
25:44 Saving and Running
26:10 Adding and ADD
28:51 Subtracting and SUB
29:23 Multiplying and MUL
29:59 Multiply With Accumulate and MLA
31:03 Undo and Redo in Vim
31:36 Branching and B
33:35 Branching based on comparison by using CMP, BEQ, and BGT with the CPSR
@inception252 Says:
its 2021
do we still need to learn assembly?
@evenberg8499 Says:
The assembler is a computer language that is quite easy to learn,
once you get a hang of it.
I am not very familiar with this language,
but it basically runs every computer in the world.
@柯达娜 Says:
Can this be also used for dosbox and 8086 assembler ?
@silverismoney Says:
My first programming experience was BASIC on a C64. Then when I went to university we learned ASM on Motorola "flight boards". This brought back some memories and I was able to follow along with your tutorial easily. Thanks for the lesson.
@badkinson5459 Says:
I am anxious to learn assembly for a better understanding of how the pi works in general but so far I got lost at around 07:32 the first compile part:
/Documents/ASM Projects$ as -o asmtut.o asmtut.s
asmtut.s: Assembler messages:
asmtut.s:6: Error: operand 1 must be an integer register -- `mov R0,#65'
asmtut.s:7: Error: operand 1 must be an integer register -- `mov R7,#1'
asmtut.s:9: Error: unknown mnemonic `swi' -- `swi 0'
Being that my code is identical to the tutorial so far I have no idea want I have done wrong.
I am using ssh into a raspberry pi 4b. Any suggestions?
@estring69 Says:
Way to specify vim and not immediately use it like nano :)
@safacetinkaya Says:
Perfect explanation! Thanks.
@randomperson4321 Says:
i have an exam next week and need help in assembly language mips
anyone can help ?
@GnomeEU Says:
Isn't 32 bits a double word (DWORD). A WORD is only 16 bits.
@mrgamer-lu1im Says:
for some reason mine not generating object file
@29namankumar29 Says:
When he says "Well hello internet and welcome blablablablabla" I listen " Hello there Mad Angles"lol
@tennissport4318 Says:
Derek it is people like you who keep us remembering the foundation of computer science - if we want to know where computer science is going in the future, we should not forget the basics and foundation
@gregoryfenn1462 Says:
Edit: I solved it. Apparently writing '2' to R7 is a runtime error (even though is build without warning). This seems odd to me since I thought general purpose registers can hold whatever you like.
Noob question: I'm stuck on the very first example! My error just says "Illegal instruction". Can anyone see my problem?
Device: ARM Cortex-A72 (64-bit) on a Raspberry Pi 4.
OS: Rasbian (32-bit operating system)
Architecture: ARMv7l (32-bit RISC-ARM)
Assembly code:
.text
.global _start
_start:
MOV R0, #64
MOVE R7, #2
SWI 0
When I compile and link the program, it seems ok. But when I run ".MyProg ; echo $?", my console outputs two lines "Illegal Instruction" and then "132". The 132 is presumably the error code, but I don't know what illegal instruction I'm using.
@nuniezjorge Says:
why to do this?, what can i do with this?, is this going to get me to a good job?, can i offer a service or product based on this?
@div_100 Says:
Man! It's 4 years old, and still a good tutorial.
@eagledove9 Says:
I was prejudiced against Raspberry Pi because some guy I used to read on the internet, years ago, said that he hated Raspberry Pi and it was stupid, and for years and years, I knew absolutely nothing at all about what it was, and only just remembered that that guy said it was something stupid. Now I googled it again, and I'm like, 'Oh, that's okay.' I wanted to learn assembly, and I have a Linux computer now, and I see that it is associated with Linux. So I think I will change my mind.
LATEST COMMENTS