Немного уточню. В приведенном примере стоит цифра "55", на самом деле вместо нее стоит выражение которое считается при компиляции. Примерно так:
Код
.equ param= (255/step_grad) ... .db "параметр=?"
Qwertty
Aug 16 2009, 11:21
Код
db "параметр=?", (param / 10)+'0',(param % 10)+'0'
только в AVRASM2 есть у препроцессора остаток от деления Для AVRASM будет примерно так
Код
db "параметр=?", (param / 10)+'0',(param - (param / 10)*10)+'0'
adc
Aug 17 2009, 11:17
Цитата(Qwertty @ Aug 16 2009, 15:21)
Код
db "параметр=?", (param / 10)+'0',(param % 10)+'0'
только в AVRASM2 есть у препроцессора остаток от деления Для AVRASM будет примерно так
Код
db "параметр=?", (param / 10)+'0',(param - (param / 10)*10)+'0'
В этом случае к значению нуля '0' (0x30) прибавляется пересчитанное значение, которое дает смещение в таблице символов. Это работает, по понятным причинам, до значения '9'. Соответственно значение "55" преобразовать не получится. Видимо это нельзя сделать в принципе.
Qwertty
Aug 17 2009, 14:10
Цитата(adc @ Aug 17 2009, 15:17)
В этом случае к значению нуля '0' (0x30) прибавляется пересчитанное значение, которое дает смещение в таблице символов. Это работает, по понятным причинам, до значения '9'. Соответственно значение "55" преобразовать не получится. Видимо это нельзя сделать в принципе.
Это относительно стандартное преобразование в строку, только выполняемое еще препроцессором. И работает не до 9, а до 99, так что 55 прекрасно разложится в
Код
db "параметр=?", '5','5'
Разве не это требовалось?
adc
Aug 18 2009, 13:14
Цитата(Qwertty @ Aug 17 2009, 18:10)
Разве не это требовалось?
Да, спасибо! Сразу не понял написанного..) Примерно это и требовалось.. А в шестнадцатеричном формате можно сделать? эээ поясню, что-бы не считали что я сам не знаю чего хочу:-) зы: Все эти пляски начались с того, что при формировании строчки в формате pdu, захотелось сделать автоматический пересчет количества символов в сообщении. А сообщение, включая значение количества символов, подразумевает шестнадцатеричный формат.