gpt4 book ai didi

assembly - 文字 VS 立即操作数

转载 作者:行者123 更新时间:2023-12-02 21:57:51 31 4
gpt4 key购买 nike

在我这学期的系统软件类(class)中,我们正在学习汇编程序和其他系统软件。在阅读整个类(class)时,我遇到了LITERALS主题。

对文字和立即操作数进行了比较,发现它们之间的唯一区别是文字不被汇编为指令的一部分,而立即操作数则是。

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

最佳答案

立即操作数是可以编码到指令本身中的文字值,例如,

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

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

          DW      17     ; define a word containing the literal 17

一些文字,尤其是文本字符串,几乎永远不会适合立即字段(立即字段中没有足够的位),因此实际上不能作为指令立即值包含在程序中:

    XYZ    DC       "I am a duck."

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

           MOV    R1, XYZ

一个异常(exception)是极短的字符串文字:

           MOV    R1,  "A"

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

           CALL   FOO

指的是 FOO 代码上的标签:

     FOO:  MOV   R1, 17
RETURN

您的汇编器语法可能与此不同,但原理保持不变。

关于assembly - 文字 VS 立即操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22204586/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com