解释汇编程序输出

时间:2009-03-24 18:26:02

标签: assembly mnemonics

考虑以下汇编程序输出:

START 100
MOVER BREG, ONE                                101) + 04 2 105 
MOVEM BREG, RESULT                             102) + 05 2 106
PRINT RESULT                                   103) + 10 0 106
STOP                                           104) + 00 0 000
ONE DC '1'                                     105) + 00 0 001
RESULT DS 1                                    106) 
  1. 代码前的+号表示什么?
  2. 为什么ONE的地址为001
  3. 为什么最后一个RESULT DS 1语句后的条目空白?
  4. 请注意,这不是作业 - 提问者似乎在询问教科书中的内容。

3 个答案:

答案 0 :(得分:2)

我不知道你正在使用哪个汇编程序(在你的问题中提供这些信息可能是明智的)所以这些并不是特别明智的答案:

  1. 不知道 - 你的汇编程序手册说什么
  2. 不是 - 那就是价值
  3. DS只保留一些空间
  4. 编辑:汇编程序是一种计算机程序,它接收包含汇编语言的文本并将其转换为机器代码。它还可以以人类可读形式生成输出,这就是您发布的代码。人类可读表单的格式特定于您正在使用的特定汇编程序(即程序) - 它不是特定于汇编程序为其发出机器代码的机器体系结构。

答案 1 :(得分:2)

这似乎是使用Systems Program and Operation第4章中的简单汇编语言。

在操作码输出的描述中,它说:“符号不是指令的一部分。”快速阅读文本并没有揭示的一部分,并且所有示例在该列中都有“+”。

答案 2 :(得分:1)

  1. “ +”符号不是指令的一部分。 (数字指令的那一侧是机器指令)

  2. ONE的地址为105,001是使用声明常量的缩写形式DC分配给ONE的值。

    DC保留内存字空间并分配常量。

  3. RESULT DS 1的条目留为空白,因为DS保留了给定要求的存储空间,此处仅给出1,因此仅保留一个存储字的位置。

仅数字部分的另一面是遵循以下格式的机器指令

Sign opcode register_opcode memory_operand

例如

101) memory location
+ Sign (not part of instruction)
04 Machine opcode ( occupy 2 digits )
2 Register operand ( occupy 1 digit )
105 Memory operand ( occupy 3 digits )

注意: 它是假设计算机的简单汇编语言,用于说明汇编程序的功能和技术。