转载注:源地址:http://www.lirenedu.org/index.php?ack=xinwen&id=1041
数据处理指令在通用寄存器上执行计算,ARM7TDMI的数据处理指令分为3中类型:算术/逻辑指令、比较指令和乘法指令。
(1):算术/逻辑指令:
算术/逻辑指令共有12条,它们使用相同的指令格式,最多使用两个原操作数来执行算术或逻辑操作,并将结果写入目标寄存器;也可选择根据结果更新条件代码标志。
两个源操作数为:其中一个一定是寄存器;另一个有两种形式——立即数或是寄存器值,可选择移位。如果操作数是一个移位寄存器,移位计数可以是一个立即数或另一个寄存器的值。可以指定4种移位的类型。每一条算术/逻辑指令都可以执行算术/逻辑和移位操作。这样就可以轻松实现各种不同的分支指令。
(2)比较指令:
比较指令有4条,它们使用与算术/逻辑指令相同的指令格式,比较指令根据两个源操作数执行算术或逻辑操作,但不将结果写入寄存器。它们总是根据结果更新条件代码标志。
比较指令源操作数的格式与算术/逻辑指令相同,包括移位操作的功能。
(3)乘法指令:
乘法指令分为两类,这两类指令将32位寄存器值相乘并保存结果:
A:32位结果正常,在一个寄存器中保存32位结果。
B: 64位结果长,在两个独立的寄存器中保存64位结果。
乘法指令的这两种类型都可选择执行累加操作。
阅读此文章还阅读了:
Thumb最常见的几种指令集:http://www.lirenedu.org/index.php?ack=xinwen&id=1039