C
C
cthulhudx2015-11-09 17:00:43
Programming
cthulhudx, 2015-11-09 17:00:43

Is it worth learning assembly language for a deep understanding of computer architecture?

Is it worth learning assembly language for a deep understanding of hardware architecture? Are there any other ways to understand how everything happens "under the hood"?

Answer the question

In order to leave comments, you need to log in

10 answer(s)
A
Alexey, 2015-11-09
@cthulhudx

Recall the phrase from the book "Sherlock Holmes" - "The human brain is an empty attic where you can stuff anything you want. A fool does just that: he drags the necessary and unnecessary there. And finally, there comes a moment when you can no longer stuff the most necessary thing there. Or it's hidden so far away that you can't reach it."
We don't mind quotes.
It is worth studying deeply if you are going to find practical applications for this in the future. Superficial knowledge can come in handy. And deep learning without further application is a waste of time. The most precious thing in our life is time, because it cannot be bought for knowledge or money.

O
Oleg Tsilyurik, 2015-11-09
@Olej

No, it's not worth it - in vain and a big waste of time.

V
Vladimir Martyanov, 2015-11-09
@vilgeforce

Costs. Under the hood, in any case, processor instructions are executed, and in order to see what is really happening there, you will have to understand them.

D
Dasha Tsiklauri, 2015-11-09
@dasha_programmist

It’s worth just solving banal tasks: drawing graphics, for example, in assembler (we write to the memory of the vga adapter).
- line,
- oblique line,
- blur (aka clearType),
- shapes,
- fill shapes.
If you devote an hour every day, then 2-3 weeks for such simple laboratory ones will be enough, at the same time you can look at some algorithms on the stack, try to optimize them.

D
Dmitry, 2015-11-09
@EvilsInterrupt

I am surprised that they did not ask the question: Is it worth programming at all?
About assembler: Of course it's worth it!
Joel Spolsky has an article on how abstractions flow. The thing is that while allegedly at a high level of programming everything is going well and you think that everything is OK and do not worry. But as soon as you encounter a non-trivial problem, you immediately start dancing with a tambourine. "binding to iron" develops thinking in a more rigorous way. After all, none of the programmers asks the question "Is it worth learning mathematics?". Rather, they are asked, but these are marginals. Same with assembler. He develops the programmer in such a way that after his understanding it will already be a better programmer in relation to the previous level.

S
Sergey Sergey, 2015-11-09
@hahenty

The learning process must go the other way.
You should first read about the design of electronic equipment: transistors, logic elements, digital devices, hard and software logic of computing devices. And then the assembler will seem like a fairly simple entity. After all, each assembler is just a set of instructions for the processor - a letter designation of machine codes, and the essence of various microprocessors is the same.

M
mamkaololosha, 2015-11-09
@mamkaololosha

Read Computer Architecture, Fifth Edition: A Quantitative Approach. In general, it will not be superfluous.

R
Rafael™, 2015-11-09
@maxminimus

In order for the machine to work for you, you only need to know the programming language of this machine . The
language contains possible architectures
. Nobody writes assembler anymore, so C.C. has taken its place .
This is maximum speed and low-level programming comparable to assembler . so with C No, you can still simplify your life by hiding all the complexity under javascript, especially with the advent of web assembler

M
Mrrl, 2015-11-09
@Mrl

It is worth learning at least some assembler in order to generally imagine what could be there. Then, for a specific processor and specific architecture, read the list of instructions, understand what is easy to implement and what is difficult; read about the structure of memory. Then it will be clear which constructions in high-level languages ​​(for example, in C) should be used, and which should be avoided. It is probably not necessary to study assembler (in the sense of cramming instructions).

A
Artem Spiridonov, 2015-11-09
@customtema

To understand architecture? No.
If you want to program in assembler for some purpose (there may be many quite interesting options here) - yes.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question