【问题标题】:Understanding Subi Syntax for AVR Programming了解 AVR 编程的 Subi 语法
【发布时间】: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' 是什么感到困惑。

【问题讨论】:

    标签: avr atmel


    【解决方案1】:

    -'0' 是字符 '0' 的 ascii 值的负数。该操作实际上是将 0x30 或 48 添加到寄存器中的值,以将其转换为数字的等效 ascii 字符值。

    例如,6 - -'0' = 6 + 48 = 54 = '6'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      • 2015-03-21
      相关资源
      最近更新 更多