文字 VS 直接操作数



在我这学期的系统软件课程中,我们学习汇编程序和其他系统软件。在阅读整个课程时,我遇到了文字的主题。

文字和直接操作数之间的

比较表明,它们之间的唯一区别是文字不是作为指令的一部分组装的,而直接操作数是。

如果我们可以使用即时操作数,为什么我们必须使用文字?是什么让他们与众不同?换句话说,何时使用文字以及何时使用即时操作数?

直接操作数是文本值,您可以编码到指令本身中,例如,

          MOV   R1,  17  ; move 17 as a value to R1

但是,您可能需要将文本值放入程序可能使用的数据结构或表中。 您可以使用声明存储的汇编程序"伪操作"来执行此操作:

          DW      17     ; define a word containing the literal 17

一些文字,特别是文本字符串,几乎从不适合直接字段(直接字段中没有足够的位),所以真的不能作为指令立即值包含在你的程序中:

    XYZ    DC       "I am a duck."

发生这种情况时,您通常会发现通过其标签将声明的数据引用为隐式即时值(不是文字)的指令:

           MOV    R1, XYZ

一个例外是极短的字符串文字:

           MOV    R1,  "A"

这与调用语句中的隐式文字没有什么不同:

           CALL   FOO

它指的是FOO代码上的标签:

     FOO:  MOV   R1, 17
           RETURN

您的汇编程序语法可能与此不同,但原则保持不变。

最新更新