IA
IA = Increment After
原理:
先执行复制操作,然后(After)再递增(Increment)基址寄存器中记录的地址;
IB
IB = Increment Before
原理:
先(Before)递增(Increment)基址寄存器中记录的地址,然后再执行复制操作;
DA
DA = Decrement After
原理:
先执行复制操作,然后(After)再递减(Decrement)基址寄存器中记录的地址;
DB
DB = Decrement Before
原理:
先(Before)递减(Decrement)基址寄存器中记录的地址,然后再执行复制操作;
STM LDM汇总:
在使用中,我发现不能单纯记忆后缀的功能,因为在不同位置含义不同,所以安全期间,先将功能汇总如下:
指令 | 注释 | 数据方向示意 |
---|---|---|
LDMED | 先递增基址,再从基址指向的地址 复制数据到 目的寄存器 | → |
LDMFD |
先从基址指向的地址 复制数据到 目的寄存器,再递增基址 | → |
LDMEA | 先递减基址,再从基址指向的地址 复制数据到 目的寄存器 | → |
LDMFD | 先从基址指向的地址 复制数据到 目的寄存器,再递减基址 | → |
STMFA | 先递增基址,再从目的寄存器 复制数据到 基址指向的地址处 | ← |
STMEA | 先从目的寄存器 复制数据到 基址指向的地址处,再递增基址 | ← |
STMFD |
先递减基址,再从目的寄存器 复制数据到 基址指向的地址处 | ← |
STMED | 先从目的寄存器 复制数据到 基址指向的地址处,再递减基址 | ← |