Hey. I have a Kalashnikov book on Assembler on the screen. I think to read it or not. One person told me that it is already obsolete and nobody uses this assembler. It's true?

Question 1: Then which one is used?

Question 2: Advise the modern literature on assembler or the one that you consider necessary for a beginner.

Thank you very much

Closed due to the fact that it is necessary to reformulate the question so that it was possible to give an objectively correct answer by the participants aleksandr barakin , Denis , Streletz , Mirdin , tutankhamun 6 Sep '16 at 14:48 .

The question gives rise to endless debates and discussions based not on knowledge, but on opinions. To get an answer, rephrase your question so that it can be given an unambiguously correct answer, or delete the question altogether. If the question can be reformulated according to the rules set out in the certificate , edit it .

  • And what, there is still some assembler? o_O - VladD
  • ASM in essence has no version or age. The only difference is in the specific architecture and the number of directives supported, and even then the fundamentals are repeated almost everywhere. As for me, ASM was most easily understood on old processors (up to 8088, where the instruction set on the fingers is counted) and / or as a result of asm-inserts in some ancient C ++. - GRUNGER
  • one
    Here, I recommend the book - I pulled a book from the dusty shelf especially for you :) Old and this is not a minus at all. Zubkov S. V. Assembler for DOS, Windows and UNIX. I hope helped. Such a cover s010.radikal.ru/i314/1609/5c/158285f28d13.jpg (sorry for the link on the radical) - GRUNGER September
  • @GRUNGER thank you very much, comrade. I will learn! - Muller
  • 2
    Possible duplicate question: The book on the assembler under Windows for a beginner - Flowneee

1 answer 1

All that can not be written in assembly language, you can only solder

Assembler is practically the most ancient programming language. Before him, there was only programming in machine codes. We will assume that if you are thinking of writing some serious program on ASM, I think you will give up this matter at the very beginning. Now, writing a program in a low-level language is not the best thing; any software for microcontrollers has been written in C for a long time.

I remember before, when high-level languages ​​appeared, people still inserted pieces of assembly code, and you sit here and think that sawing through critical sections of code may bring PROFIT, or it may not.

Now writing something serious and big in assembler is simply not profitable in terms of time and resources spent, because all this can be written faster and cross-platform.

We will assume that the question of what to write for commercial purposes in an assembler is no longer relevant, but for educational purposes, you need to write and be sure to write and study!

After all, thanks to the fact that you write a couple of programs in a low-level language, you will learn a lot of new things.

Even if you are writing a program in a high level language, knowledge of the assembler will help you understand how the program will be executed, how variables are stored, how functions are called. And this will avoid many very unpleasant mistakes. There are people who know programming only at the level of the language. That is, they know what to write to get some result. And how it works, for them remains a mystery, covered with darkness. A person who owns an assembler will be better programmed in other languages.

Knowledge of the assembler allows you to unzip any program with a disassembler and study the mechanism of its work! Just imagine - you can climb inside any program and see how it works. Sometimes it happens that an interesting program comes across and it is not clear what is inside, how it is written. Knowing the assembler, you can look inside any program and satisfy your curiosity without even having the source code.

The assembler can help a lot when debugging. Sometimes errors happen in compilers - a very evil topic. It seems that correctly written code is not executed at all as expected. To detect such an error, you need to look at what the code compiled into, and it is impossible to figure it out without an assembler.

For books, you can take absolutely any that you like and read, there are no restrictions here, almost all books contain device registers, functions, etc. I wrote in a training course on FASM, a fairly convenient assembler compiler.

PS AX BX CX DX - I like to mov it mov it