刘帅嵌入式系统-LDRSB有符号的字节数据读取指令

    xiaoxiao2022-07-14  129

    LDRSB指令用于从内存中将一个8位的字节数据读取到指令中的目标寄存器中。并将寄存器的高24位设置成该字节数据的符号位的值(即将该8位字节数据进行符号位扩展,生成32位字数据)。

    指令的编码格式

    指令的语法格式

    LDR{< cond >}SB < Rd >, < post_indexed_addressing_mode >

    其中:

    < cond >为指令执行的条件码。当< cond >忽略时,指令为无条件执行。< Rd >为目标寄存器。< post_indexed_addressing_mode >为指令的寻址方式。

    指令操作的伪代码

    if ConditionPassed(cond) then data = Memory[address,1] Rd = SignExtend(data)

    指令的使用

    LDRSB指令通常的用法有以下两种:

    用于从内存中读取8位有符号字节数据到通用寄存器中,然后可在该寄存器中对数据进行一定的操作。当PC作为指令中的目标寄存器时,指令可以实现程序跳转的功能。

    示例

    LDRSB R0, [R1, #3] ;将内存单元R1+3中的有符号字节数据读取到R0中,R0中高24位设置成该字节数据的符号位 LDRSB R7, [R6, #-1]! ;将内存单元R6-1中的有符号字节数据读取到R7中,R7中高24位设置成该字节数据的符号位,R6 = R6 - 1
    最新回复(0)