This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
和代码
MOV #1234h、&0x2000 mov #5678h、&0x2002 addx.a #11111h、&0x2000
0x11111将添加到低20位、0x2000处32位值的高12位将被清除。
是在某个地方记录的、我是否可以依赖高12位将始终存在这一事实
在存储器中处理.A 目标时清除? 换句话说、如果我想清除4
我可以假设存储器中的字节(当然在偶数地址上)是这样的
clrx.a 目标(&D)
可靠工作吗?
[引用 user="zrno soli"]内存中较高的未使用位将始终清零。
好的、非常好、谢谢! 这是记录在某个地方还是只是观察结果?
[引述]
BTW、clrx.a &dest 由 movx.a #0、&dest 仿真、但也有20位所谓的地址指令、可以在更少的周期内执行、占用更少的内存。 ADDA R4、R5和 SUA R4、R5将在存储器中获取一个字并在一个周期内执行(与16位指令相同)、addx.a 和 subx.a 不会执行。
好的、我已经验证了这一点
MOVA R3、目标(&D)
确实清除了从 dest 开始的所有32位(&D)、但我不确定是否可以依赖该位、因为该常数
生成函数基于指令的一部分、该指令在的运算代码中不存在
MOVA。 因此、它可能只是偶然工作、因为生成必须是00
常量为零、由于根本没有、因此假设它为00...
可能在某处记录、但我没有找到它。
用于清除变量、双字、一组字或一个字节、我正在使用...
MOV.w #0、R15
MOVA R15、&DESF1
MOVA R15、&DEST2
...