2009-08-10 914 views

回答

35

汇编语言是机器语言的一种便利机制。使用汇编语言,您可以使用助记符序列代替数字操作代码,并且可以使用符号标签而不是手动计算偏移量。它还可以保护您免受真正的愚蠢错误 - 如输入格式错误的处理器指令。

否则assemly语言是机器语言的等价物。有时你会得到一个旧的汇编程序,它不会为新处理器的某些指令提供助记符 - 然后你仍然可以直接在程序中插入操作代码。

+0

感谢锐齿,我想我得到了它 – freenight 2009-08-10 16:08:48

5

在汇编中,指令是CPU指令易于理解的表示。

但汇编也使得,例如,解决简单:

  • 在机器语言,你必须知道你在哪里,要跳转到
  • 之间的距离(地址空间)在汇编语言中调用一个地址“iWantToJumpHere”,然后你可以说“跳iWantToJumpHere”

这使得装配更容易维护,特别是当地址之间的距离变化。

14

机器语言是CPU操作码的“位编码”。

大会的langauge是“符号编码”一个CPU的操作码。

因此,例如象征:

loop: dec R1 # Decrement register R1 
     bnq loop # Branch if not equal to zero to 
       # address "loop" 

变为位编码:

# Mythical CPU Machine code 4 bits operation, 
#       4 bit "option" 
     0x41  # 4 is a "dec" and represents r1; 
     0x7E  # 7 is bnq and E means PC -2; 

一般是一对一的关系,然而,一些汇编语言将ocationally有额外的汇编指令映射到任何多机器代码指令或重用另一个操作码。如使用机器码“xor R1,R1”作为“clr R1”或类似的东西。

除了汇编语言将倾向于支持其在上世纪80年代的时候组件广泛使用了源代码中的更“高级”外观“宏编程”。我亲自编写了类似“plot x,y”和“Hex Val”的汇编宏,以简化常见操作。

例如:

# Mythically CPU Macro 
.macro spinSleep x,y 
      ld #x,y 
localLoop: dec y 
      brq localLoop 
.endmacro 
# Macro invocation 
      spinSleep 100,R1 
# Macro expantion 
      ld #100,R1 
localLoopM: dec R1 
      brq localLoopM # localLoopM is "Mangled" for localization. 
0

汇编级语言是朝向通过允许程序员编写助记符代替二进制代码(机器代码),使得所述编程简单第一意识步骤。

8

我找到了一个很好的解释,认为它张贴在这里,这样别人才能看懂:

机器语言是用来控制在 计算机处理器的实际位 ,通常被视为十六进制数字的序列 (通常为 字节)。处理器从程序存储器中读取这些位,并且位 代表关于 接下来要做什么的“指令”。因此机器语言 提供进入 指令到计算机的一种方式(是否 通过交换机,穿孔带或 二进制文件)。

汇编语言是机器语言的多个人类 可读图。 代替 语言为数字,指令 和寄存器名称为 (通常缩写词,或 助记符,例如ld表示“加载”)。与高级语言 不同,汇编程序非常接近机器语言 。 主要抽象(除了 助记符)是使用标记 ,而不是固定的存储器地址,和 评论。

汇编程序将汇编语言程序(即 文本文件)翻译为机器 语言。甲 反汇编执行反向 功能(尽管标签的评论和 名称将已 在汇编过程丢弃)。

来源:What is difference between machine language and assembly language?

1

机器语言是芯片了解什么 大会是您了解什么

每个汇编指令有一个机器语言等同

43 00 00 00 = INC EBX

41 00 00 00 = INC EAX

3B CA 00 00 = CMP ECX,EDX

C3 00 00 00 =保留

-2

汇编语言是操作码(操作码)的符号的编码是由人类理解和仅用于指示计算机处理器(硬件操作)和机器人(机器人操作)执行特定任务。这对人类来说是一种可以理解的语言。该语言仅用于指示硬件操作,绝对不用于创建软件程序。汇编程序用于将操作码的这个符号编码部分(操作码)转换为机器语言。操作码(操作码)是机器语言的一部分。

+0

目前尚不清楚这是什么的答案是为了传达。 – 2016-05-15 18:17:37

-1

机器语言:

  1. 这是第一代编程语言
  2. 它比汇编语言困难得多
  3. 困难的人
  4. 正是在形式了解0s和1s
  5. 机器语言因平台而异
  6. It c ANNOT轻易改变
  7. 它不支持修饰
  8. 差错的存在的风险是很高的
  9. 二进制代码不能被记忆
  10. 无需编译

汇编语言:

  1. 它是第二代编程语言
  2. 它比机器语言
  3. 易少难以被人理解
  4. 它采用象征性的指令,数据项的描述性名称和存储位置
  5. 将汇编语言与平台相关的
  6. 它是易于修改
  7. 它的支持转换
  8. 错误的发生减少
  9. 记性风险很高
  10. 这是需要编译器和知道作为汇编