什么是抵消?

时间:2015-11-03 10:52:17

标签: assembly mips offset

我一直在看MIPS指令表中的偏移字,如this one

+--------------------------------------------------------------+
|                           BEQ                                |
+--------------------------------------------------------------+
| Description:                                                 |
|                                                              |
| Branches if the two registers are equal                      |
+--------------------------------------------------------------+
| Operation:                                                   |
|                                                              |
| if $s == $t advance_pc (offset << 2)); else advance_pc (4);  |
+--------------------------------------------------------------+
| Syntax:                                                      |
|                                                              |
| beq $s, $t, offset                                           |
+--------------------------------------------------------------+
| Encoding:                                                    |
|                                                              |
| 0001 00ss ssst tttt iiii iiii iiii iiii                      |
+--------------------------------------------------------------+

什么是偏见?

2 个答案:

答案 0 :(得分:1)

在拓扑方面,偏移是有序集中的移动向量。当且仅当存在起始元素时,偏移才是可定义的,与您定义移动相比。我们假设你有几何点

(x1,...,xn)

如果需要从此点开始移动移动,则可以将偏移矢量定义为

(o1,...,on)

,结果点是:

(x1 + o1,...,xn + on)

如果您有一个有序列表,那么o的数字偏移量会告诉您应该使用的索引。

  

在计算机科学中,数组或其他数据结构中的偏移量   object是一个整数,表示距离的位移(位移)   可能是对象的开始直到给定的元素或点   在同一个对象中。距离的概念仅在全部有效时才有效   对象的元素大小相同(通常以字节为单位)   或者单词)。

取自here。但是,引用稍微不准确,因为距离不需要具有相等大小的对象,依赖性是度量空间的存在。此外,引用告诉您必须在代数结构中有一个最小的元素,这不是一个依赖。更一般地说,你需要有一个明确定义的起点。

在您的特定情况下,offset是一个以字节为单位的数值,表示来自内存中某个位置的移动向量。注意,32位是四个字节,这就是为什么你有一个4的偏移量。

答案 1 :(得分:0)

一个较少的数学解释:分支与程序计数器相关。偏移量表示与“当前”PC值的距离是多远(偏移以添加到PC以到达目的地)。在汇编中,偏移量通常由汇编程序计算,因此您只需将目标放在那里