用汇编语言改变String的值

时间:2013-03-12 18:10:14

标签: assembly avr

我目前正在尝试更改AVR汇编语言中字符串的值。我不确定是否有可能。我将字符串声明为:

message: .db "Frequency = 1 kHz",0x00

我正在尝试将代码中存储在消息中的值更改为“Frequency = 2 kHz” 知道怎么做吗?我想替换整个字符串,但仍然将其存储在消息中。

我正在使用AVR汇编语言。

我尝试过:

message: .db "Frequency = 2 kHz",0x00 

在我的程序中稍后,但我意识到它不会让我重新初始化变量。

1 个答案:

答案 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