Programming Fibonacci on a breadboard computer

preview_player
Показать описание

Рекомендации по теме
Комментарии
Автор

This is quite amazing. You take a viewer through the entirety of a computer, from the basic concepts, through a build, and into programming. My first computer was a VIC20, and I learned BASIC on it, and later a C64, but I never had any clue what went on under the hood. I just knew I put instructions in, and stuff came out. Its amazing to think that every modern computing device, including the smartphone I am typing this on, does everything it does by pushing around strings of 1's and 0's, just really, really fast.

BuckeyeStormsProductions
Автор

You literally built a computer, from the ground up. That is insanely cool. This actually helps me understand C pointers better!

Icix
Автор

and this how, kids, we computed things to go to the moon.

Oinikis
Автор

I am a computer engineering student and i watch your videos with a big admiration. Respect for the art :)

sezerurun
Автор

The reason the program doesn't output 233 is that 233 reaches the 'x' variable on the same iteration that 'z' overflows, but no output statement is executed in that case. In the compiled C program, the limiting comparison is done on 'x', but here, it is effectively done on 'z'. A simple solution would be to add an 'out' instruction in the loop after assigning 'x' and then 'jmp' back to location 0x4 at the bottom, but you don't have enough RAM for that. I fixed the program to fit into memory by using an extra 'out' instruction on variable 'y' and re-using part of the 'y=1' statement for 'y=z'. Also, the C program technically should have the 'while' condition of 'x < 256' to match the semantics of the breadboard computer.

0x0: ldi 0x0 # x=0
0x1: sta [0xd]
0x2: out # print x: 0
0x3: ldi 0x1 # y=1
0x4: sta [0xe]
0x5: out # print y: 1, 1, 2, 3, 5, …
0x6: adc [0xd] # z=x+y
0x7: jc 0x0
0x8: sta [0xf]
0x9: lda [0xe] # x=y
0xa: sta [0xd]
0xb: lda [0xf] # y=z
0xc: jmp 0x4
0xd: #x: 0, 1, 1, 2, 3, …
0xe: #y: 1, 1, 1, 2, 3, 5, …
0xf: #z: 1, 2, 3, 5, …

csbruce
Автор

Now THIS is programming!! Literally going down not to just assembly, but literally going down to the level of binary code. That is so incredibly amazing!!

supernenechi
Автор

LDI = set register with value, STA = save register to address, LDA = load register from address, ADD = register + value, JC = flag if register overflowed?, JMP = jump to address, OUT = display register

sp
Автор

After learning the core of how transistors and electricty and voltages work together to form the basis of the binary system and our ability to communicate with the machines, the bit at 5:44 opened my eyes completely, thanks a lot

antikoerper
Автор

I haven't even FINISHED watching this video (started with the one previous to this one) and am just exploding with comprehension of how programming/computers work bit by bit. Thank you!

jsaenzMusic
Автор

You have a great talent for explaining things! I would love to learn more after watching these videos. Thankyou so much!

Obleddo
Автор

This is probably the best approach on how a computer really works that you'll ever see. Well, at least from what i've seen.

pedrosousa
Автор

This is my favorite channel on youtube.

xavierevans
Автор

I studied electronics ten years ago and watching your videos makes me miss a lot of that time. We all use computers but just a few understand how they really work. Thanks for these amazing videos.

joaoarmandogallas
Автор

I just have to say that this video simply made it "click" for me. What I`m referring to is the moment when you have been struggling to internalise a concept for so long, but little by little you gather more and more info on the subject matter and slowly your brain starts to transform this info into knowlege, but the tipping "eureka" moment happens when you experience something that profoundly changes your perception about the subject matter and that definitively changes you fundamentally!

For me, this video finally made me understand how computers actually work... I`ve been trying to internalise this concept for so long you cannot fathom...

Honestly, moments like these make me keep going, nothing brings me higher pleasure than when something simply "clicks" for me. These moments are far in between but I cherish them deeply and I want to express my gratitude for this video.

You have fundamentally changed me and have opened a brand new perspective and a way of thinking for me that was inaccessible literally until moments ago.

This knowledge that now I have internalised was crucial for me since I want to make a career with computers and if one day years from now I become sucessful I have no doubt I will refer back to this video and remember where my journey actually started!

THANKS!

eminencegrise
Автор

Best thing I've seen in ages... brilliant work.
I wish we had one of these at school... So much better than executing microcode on the blackboard.

edgeeffect
Автор

dont know why but this is so satisfying to watch! especially when the fibonacci numbers are displayed

darkinferno
Автор

This is so amazing. I always wondered how the hell is assembly translated to the ground, to the bare metal of processor. Why do even 1s and 0s even matter. Now I know. Thanks!

sillem
Автор

Really makes you appreciate the ingenuity that goes into a simple 20 line computer code like this and how far we've come by standing on the shoulders of giants.

kartikeygupta
Автор

This lesson and the one before it is some of the most interesting I’ve ever seen. I never understood how this worked. Thank you!!

cato
Автор

Ahhh, all the blinking lights, like some old school sci fi show, but it's fun knowing each light has a meaning and representation. You can see it think.

MurasakiBunny
welcome to shbcf.ru