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

刘帅嵌入式系统-LDRSB有符号的字节数据读取指令_第1张图片

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

你可能感兴趣的:(ARM,ASM,ARM)