Hello. I am a complete layman in assembly language, but I decided to fill a hole in knowledge in this area. But I had one question:

1. Is assembler a single, unchanging language? That is, I can take any book on the assembler, no matter how old it is, and start teaching, and in the future I will not have to read a new book on, perhaps, a new version of the assembler? Or did the assembly language change?

1. Advise literature to the beginner.

Thank you in advance

  • 3
    assembly language is tied to the processor. Each processor has its own set of commands. Some processors include commands from previous models - for example, Intel processors can be built in a similar line (or maybe not exactly a line). But most likely they don’t usually write directly in assembly language - they use the syntax fasm / masm or gas. - KoVadim

1 answer 1

In fact, the assembler is a mnemonic superstructure above the processor's machine commands and basic operating system models.

For example, on Intel-compatible processors, their number of general-purpose registers, their own set of machine instructions, as well as their own operating system memory models. On IBM mainframe, a set of registers (16 general-purpose registers) and commands is completely different and has its own organization of memory models of the operating system.

In addition, within the same processor family, there can be significant changes in both the instruction set and the memory models that the operating systems support. For example, early models of Intel-compatible processors had 16-bit registers such as, for example, AX, BX, CX, DX, and others. Currently used 32-bit registers such as EAX, EBX, ECX, EDX and others. Accordingly, different memory models are supported, although there is some intersection.

Therefore, if we study assembler, then of course it is better for modern processors.

Now assemblers are not popular, and therefore the main giants of the software industry do not release separate packages of assemblers and the corresponding development tools with their use. They have long refused to do this, since the market for these products is extremely small.

Assemblers can be included in the development tools of other environments and programming languages ​​as some low-level additional utilities, for example, for debugging programs.

I advise you to take a look at the Intel site, and there to see what links are there regarding an assembler for Intel-compatible processors. You can also delve with the search on the Internet in the hope of finding supported assemblers and tools for working with groups of enthusiasts. It may also search the Microsoft website for information on their assembler and related documentation.

  • AX, BX, CX, etc. - 16-bit registers, EAX, EBX, etc. - 32-bit, RAX, RBX - 64-bit. - insolor
  • @insolor Yes, you are right. Correct your answer. - Vlad from Moscow