我目前正在尝试更改AVR汇编语言中字符串的值。我不确定是否有可能。我将字符串声明为:
message: .db "Frequency = 1 kHz",0x00
我正在尝试将代码中存储在消息中的值更改为“Frequency = 2 kHz” 知道怎么做吗?我想替换整个字符串,但仍然将其存储在消息中。
我正在使用AVR汇编语言。
我尝试过:
message: .db "Frequency = 2 kHz",0x00
在我的程序中稍后,但我意识到它不会让我重新初始化变量。
答案 0 :(得分:0)
标签“message:”不是变量。它就像一个地址,您可以在程序的其他地方引用它。来自manual:
DB指令保留程序存储器中的内存资源 EEPROM存储器。为了能够参考保留 在位置,DB指令前面应该有一个标签。
所以它不在变量所在的SRAM中。
首次设置Z以包含地址后,可以使用LPM指令从字符串加载值。 [LPM:加载程序存储器:R0←(Z)]
听起来你可能想要做两个字符串并在需要时将数字作为字符插入。
message1: .db "Frequency = ",0x00
message2: .db " kHz",0x00
您必须做一些事情以确保不传输第一个字符串中的空字节。
val = 1或2的字符只是0x30 + val