div8s.s
来自「AVR下的ICC所有函数库代码」· S 代码 · 共 32 行
S
32 行
.text; div8s - 8/8 Bit Signed Division; This subroutine divides two signed 8 bit numbers ; r16 (dividend) and r17 (divisor). ; The result is placed in r16.; The remainder is the result if mod is called.; Low registers used :2 (r14,r15); High registers used :3 (r16,r17,r18)mod8s:: st -y,r14 set mov r14,r16 ; move dividend to sign register rjmp xdiv8sdiv8s:: st -y,r14 clt mov r14,r16 ; move dividend to sign register eor r14,r17 ; xor divisor with sign registerxdiv8s: sbrc r16,7 ; if MSB in dividend set neg r16 ; change sign of dividend sbrc r17,7 ; if MSB in divisor set neg r17 ; change sign of divisor rcall xdiv8u ; do the divide sbrc r14,7 ; if MSB in sign register set neg r16 ; change sign of result ld R14,Y+ ret
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?