“汇编”与“汇编”

有人告诉我“汇编”就是你写在文件里的东西,让你的“汇编程序”把它转换成二进制代码。

但是我看到这两个术语在各种作品中混合和匹配。我甚至听说你写了“汇编程序”,然后一个“汇编程序”使它可执行。

请告诉我,该怎么说才好?

33227 次浏览

The purpose of language is to communicate.

If people say things, and other people understand them, they are using the correct terms.

We have rules to make it easier to understand, but in my opinion, if you say what sounds best for you, and let other people say what sounds best for them, and you all understand what you all mean, then everything will be peachy.

For what it's worth, I prefer to write "assembly" and assemble it with an "assembler." I think "assemblator" should be the word of the day someday, and everyone should try to use it as often as possible.

Actually, the language is called "Assembly Language", and the tool to convert it to machine code is the "Assembler".

More info on Wikipedia: http://en.wikipedia.org/wiki/Assembly_language

This might be a (human) language issue - the Swedish word for "assembler" appears to be "assemblator"...

See also: http://sv.wikipedia.org/wiki/Assemblator

The assembly is a piece of code/executable that is in machine executable code. This might be an obj, exe, dll, ... It is the result of a compile.

The assembler is the "compiler" that compiles code into machine executable code. This code has been written in the language "Assembly Language". Assembly language in common English is often called Assembler.

Assemblator seems to be a creative word, born out of necessity to reduce confusion caused by missusing the other terms or a term in a foreign language (see other answers).

I'm guessing the origin of these terms goes back to the classic dictionary defintion of assembly: "an assembly of machine instructions to achieve a purpose" which is probably how the computing pioneers thought of a small group of machine instructions. Then an "assembler" is a device that takes individual machine instructions an puts them together into an "assembly".

I honestly don't know if there is a 'standard' terminology that suitably differentiates all these concepts. (Example: If I say "ASM" what am I talking about?)

I can give you my definitions, if that helps any.

Machine Code

This is the compiled output of an assembler or compiler.

Assembly

This is the human readable form of machine code. (Or, machine code as we know it.)

I sometimes use the term assembly in place of machine code because it's implied that I'm not going to actually read the machine code, but rather the assembly.

Assembly Language

This refers to a specific machine code language such as x86 assembly.

Assembler

This is a tool like MASM\FASM used for compiling source code into machine code.

Assembler Language

This is the language used by any given assembler.

I view this as being different from assembly language because assemblers can add their own syntactic sugar which does not exist in the underlying assembly language. (High level functions, macros, etc,.)

While the code that converts ASM files to PRG or whatever is sometimes referred to as a compiler, that seems to be wrong, it's called assembler, but I'm not quite sure about assemblator, at least I never heard that before. Wikipedia says that assembly language and assembler language are both fine, I personally call it assembler language because I see that more often, at least on german websites. It also says "The conversion process is referred to as assembly, as in assembling the source code. ". I hope that helped.