[英]STM8SF103 Assembly - Load immediate value to ram register
我正在尝试用汇编语言为stm8sf103
微控制器编写程序。 我想将一个立即数十六进制值存储在ram寄存器中(例如$ 0),但这不起作用,我想知道为什么:
stm8/
segment 'rom'
loop
ld $0,#5
jp loop
end
我得到错误:
as1 : Error 54: Can't match Addressing mode ' ld $0,#5'
采用
MOV $0, #5
该指令不影响任何条件标志。
从ST8编程手册中 , MOV
的描述为
将数据字节从源地址移动到目标地址。 数据在移动时会被检查1 。 累加器不受影响。
MOV
指令有3种寻址模式:
- 立即字节到直接存储位置
- 直接存储位置到另一个直接存储位置(从$ 00到$ FF)
- 直接存储位置到另一个直接存储位置(从$ 0000到$ FFFF)
您可以参考该手册以了解受支持的寻址模式(总共20种),因此您可以理解为什么ld $0,#5
无法工作(没有直接寻址和直接寻址)。
1我听不懂这句话,我相信有一个错字(应该是未检查数据... )。 该手册明确指出没有标志受到影响。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.