How did you like Computer Architecture when you studied it? I struggled in my Computer Architecture class...

How did you like Computer Architecture when you studied it? I struggled in my Computer Architecture class, what do I do to really understand and appreciate that kind of material? Fuck around more with assembly code? Or just like learn C and get a practical appreciation of low level systems? What do

Also, any books better than picrel?

Attached: ca96b124bd19f6ad796.jpg (225x300, 34.5K)

Other urls found in this thread:

youtu.be/CDO28Esqmcg
twitter.com/NSFWRedditImage

this book was pretty good. Loved that class because we built the SAP1 from book related.

It’s a tough read if you don’t know shit about electrical diagrams tho

Attached: 7B98703C-AA95-4D6F-AA03-5257A3AC219D.jpg (341x474, 29.27K)

Just took a look at your book and it’s good and up to date, the one I mention will confuse the fuck out of you cause it’s so old

What area did you struggle on specifically? Grasping the architecture itself? Or just machine language and assembly?

I'll check it out! Thnky

I struggled with making a connection between procedures and the data path. I might just need to spend more time with it b/c I'm definitely interested from a hardware level and up, just not from a high level software level and down, I guess. I liked programming in assembly when I made the time for it, and machine language is cool. However, when it gets into instruction codes and how exactly they work in memory, I can't implement the knowledge easily.

It was one of these things I had no idea about going in, having only done programming before. I'm really glad I learned about it though, it teaches you a lot about how computers work. It also helped me a lot in my professional life where I do low level hacking.

I also need like, a practical way of really getting the steps from like an .exe file to machine code, vice versa. So far, I just feel foggy when it comes to all the system programs

lol wtf is that book cover anyways.. actually i guess its kind of cool

Attached: 77bf25c0a682171_280.jpg (500x590, 21.98K)

In what context does that textbook use the word “procedure?” I’m not familiar with that term in this context though I’m sure it relates to something I read in digital computer electronics

If I remember correctly, it might have been how they connected subroutines to functions in MIPS assembly language we were writing in. I couldn't very flexibly implement them in MIPS, frustratingly enough.

You can’t really write machine code on modern computers, it’s way too complex. You can do PCASM which probably has a compiler available somewhere. I did ARM assembly which used a command called “as” to assemble object files, then you used a command called “ld” to link the assembled objects together… i think. It’s been a year or so since I did any of that shit. Honestly focus on the architecture stuff

user that's standard C programming stuff, it's hardly secret esoteric knowledge.

Hm. Are there any books that take an approach to teaching comp arch with C? Or some similar kind of methodology? I'm interested in doing both at once, as OP

Yea, now I can see how just focusing on comp arch and regular programming, meeting somewhere in between, might be time better spent desu

That's a godlike book user, I loved the class. For me, I already had background in ass, verilog, and C. Check out this guy, it was a nice companion for my readings.

youtu.be/CDO28Esqmcg

Okay so here’s how it works on the SAP1, a really simple model of the computer that does basically ONLY what you’re describing

In memory, the program is stored at addresses. Let’s say 0-15 is your program, and 16-31 is program data.

When you run the program, a part of the computer called the “program counter” starts counting up from 0, pointing to memory, and that part of memory is loaded into another portion called the “instruction register.”

The instruction register tells the CPU what to do, and this can be anything from adding to registers to moving data around to writing to memory, read, load a constant into a register, etc.

the CPU does what’s in the instruction register, the program counter is incremented by 1, and the next instruction is loaded from memory which resides at address 1. This repeats until a halt instruction is reached

Follow so far?

>Follow so far?
Yeh

Attached: 90122469.jpg (300x220, 20.58K)

I'll give it another shot. I do remember appreciating its enthusiasm. I never really gave it a chance, but I'm due to return to it

samefag OP here–I'll watch

So now you have a machine with a gagillian memory locations right? And your program counter is at address 0xDEADBEEF.

The way you’d enter into a function is you get the address (which is linked to it’s name by thinker). Store DEADBEEF in some memory location (usually on the stack) and use the JMP instruction to goto the function’s adress. That loads into the program counter, blah blah blah, that function ends, then the program returns back to DEADBEEF + 1

Does that make sense?

>thinker
Linker

Idk how this is implemented in mips but it would probably look something like

.extern
function

.data
Blah blah blah

.start
JMP function