Assembly 增加装配延迟
我试图让计算机计数到某个高数值,以便为程序的其他部分造成延迟。但是,由于某些原因,我无法将计数值设置为非常高的值,这会给我一个“表达式超出范围”错误 代码: 如何将计数限制设置为999999(12月)Assembly 增加装配延迟,assembly,Assembly,我试图让计算机计数到某个高数值,以便为程序的其他部分造成延迟。但是,由于某些原因,我无法将计数值设置为非常高的值,这会给我一个“表达式超出范围”错误 代码: 如何将计数限制设置为999999(12月) 谢谢 将值加载到寄存器中,然后与该寄存器进行比较: MOV R4, #999999 ; assuming ARM syntax and support for the MOV pseudo-op delay: CMP R5, R4 BEQ loop ADD R5
谢谢 将值加载到寄存器中,然后与该寄存器进行比较:
MOV R4, #999999 ; assuming ARM syntax and support for the MOV pseudo-op
delay:
CMP R5, R4
BEQ loop
ADD R5, R5, #1
B delay
替换
ADD R5, R5, #1
借
ARM支持8位模式,可按偶数位旋转OP正在使用
CMP
,因此问题与ADD
不更新状态寄存器无关。问题是如何将寄存器与大常数进行比较。谢谢!它工作了,尽管为什么我不能直接将值设置到寄存器?将相同的值加载到内存或寄存器中有什么区别?
ADD R5, R5, #1
ADDS R5, R5, #1
LDR R6,=999999
delay:
CMP R5, R6
BEQ loop
ADD R5, R5, #1
B delay