了解 AVR 编程的 Subi 语法
Posted
技术标签:
【中文标题】了解 AVR 编程的 Subi 语法【英文标题】:Understanding Subi Syntax for AVR Programming 【发布时间】:2016-10-27 03:41:34 【问题描述】:我遇到了一段我不太理解的代码,并且无法找到有关它的任何信息。这是一个宏,它接受一个寄存器,然后应该在 LCD 上显示结果。
传入的寄存器内容应该是个位数。
.macro do_lcd_rdata
mov lcd, @0
subi lcd, -'0'
rcall lcd_data
rcall lcd_wait
.endmacro
我感到困惑的部分是subi lcd, -'0'
这意味着什么。 SUBI 是立即减法,但我对 -'0' 是什么感到困惑。
【问题讨论】:
【参考方案1】:-'0'
是字符 '0' 的 ascii 值的负数。该操作实际上是将 0x30 或 48 添加到寄存器中的值,以将其转换为数字的等效 ascii 字符值。
例如,6 - -'0' = 6 + 48 = 54 = '6'
【讨论】:
以上是关于了解 AVR 编程的 Subi 语法的主要内容,如果未能解决你的问题,请参考以下文章