ST (Store):将寄存器中的值存储到内存单元中。(STS同步带)

将寄存器中的值存储到内存单元中

指令格式

ST rd, disp(rn)
其中:`rd` 是目标寄存器。`disp` 是位移量。`rn` 是基址寄存器。

功能

ST 指令将寄存器 `rd` 中的值存储到内存单元中,该内存单元由基址寄存器 `rn` 和位移量 `disp` 寻址。

操作

1. 计算有效地址 `ea`:`ea = rn + disp`。 2. 将寄存器 `rd` 中的值存储到内存单元 `ea` 中。

例子

下面的汇编代码将寄存器 `R0` 中的值存储到内存单元 `0x1000` 中: assembly ST R0, 0x1000

STS(同步带)

STS 是 ST 指令的同步版本。它等待内存访问完成,然后才继续执行程序。

使用注意事项

`disp` 的范围是 -255 到 255。如果 `disp` 超出此范围,将导致异常。`rn` 可以是任何通用寄存器,但通常使用堆栈指针 `SP` 或帧指针 `FP`。ST 指令可以用于存储函数参数、局部变量和数组元素。

效能

ST 指令的效能取决于内存访问速度。在现代计算机中,内存访问通常非常快,因此 ST 指令的效能很高。

相关指令

LDR:加载寄存器到存储器STR:存储寄存器到寄存器LDM:加载多个寄存器STM:存储多个寄存器

总结

ST 指令是一个基本指令,用于将寄存器中的值存储到内存单元中。它在操作数据和实现各种数据结构时非常有用。STS 是 ST 指令的同步版本,等待内存访问完成再继续执行程序。

字数据传送指令(LD, ST)这是最简单的数据传送指令,不用考虑符号位的问题,直接以机器的位长存取数据。 LD 从内存中取32位字数据放人寄存器,ST将寄存器中的32位字数据保存到内存中。 ld some_addr, %r10st %r10, some_addr双字数据传送指令(LDD、STD)这条指令需要用到一对寄存器存放双字,并且必须是偶数寄存器。 LD 从内存中取64位双字数据放人一对寄存器中,注意,高字(bits 63 ~ 32)移入到偶寄存器中,低字(位于有效内存address+4)移入到紧跟着的奇寄存器中。 ST将一对寄存器中的64位双字数据保存到内存中。 lddd some_addr, %r10 ! some_addr[0] ->%r10, some_addr[0+4] ->%r11std %r10, some_addr

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论