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 + -
显示快捷键?