我在倒转存储在ATMEGA32闪存中的字符串时遇到了问题。我试着那样做,但效果不太好。当我尝试将其放入堆栈时,第一阶段有无限循环。也许以前有人有过这个问题。提前谢谢你的建议。
LDI R16,LOW(RAMEND) //stack initialisation
OUT SPL,R16
LDI R16, HIGH(RAMEND)
OUT SPH,R16
NAPIS: .DB "Hello world0"
LDI ZL,LOW(NAPIS*2)
LDI ZH,LOW(NAPIS*2)
LPM R1, Z
LOOP:
LDI R26,'0'
TOSTACK:
LDD R11, Z+2
PUSH R11
CPSE R11,R26
JMP TOSTACK
FROMSTACK:
POP R11
STD Z+2, R11
CPSE R11,R26
JMP FROMSTACK
JMP LOOP现在看起来就像
LDI R16,LOW(RAMEND)
OUT SPL,R16
LDI R16, HIGH(RAMEND)
OUT SPH,R16
NAPIS: .DB "Hello world0"
LDI ZL,LOW(NAPIS*2)
LDI ZH,LOW(NAPIS*2)
LPM R1, Z
LOOP:
LDI R26,48
TOSTACK:
LDD R11, Z+2
PUSH R11
CPSE R11,R26
JMP TOSTACK
FROMSTACK:
POP R11
STD Z+2, R11
CPSE R11,R26
JMP FROMSTACK
JMP LOOP第一叠有不定式循环。
发布于 2013-11-11 17:08:03
我猜"Hello world0“中的0应该终止字符串,但它可能应该是二进制0,而不是字符0 (48小数点)的ASCII代码。
https://stackoverflow.com/questions/19910978
复制相似问题