【发布时间】:2016-03-12 05:15:37
【问题描述】:
在 avr 汇编中,我想将一个数字除以一个常数。 我检查了如何查看 avr-gcc 是如何做到的。 所以在一个 c 文件中我有:
#include <stdint.h>
uint8_t divide_by_6(uint8_t x) {
return x / 6;
}
当我运行 avr-gcc -O3 -mmcu=atmega16 -D__AVR_ATmega16__ -S main.c 时,它给了我:
divide_by_6:
ldi r25,lo8(-85)
mul r24,r25
mov r24,r1
clr r1
lsr r24
lsr r24
ret
但我不明白这个程序集在做什么。 这个汇编代码是如何进行除法的?
【问题讨论】:
-
你的问题到底是什么?