4222.asm

来自「单片机开发资料光盘-双龙-686M.zip」· 汇编 代码 · 共 27 行

ASM
27
字号
div8s:                  ;8位/8位带符号除法
	mov r14,r16     ;确定结果符号
	eor r14,r17
	sbrc r17,7      ;判除数的正负
	neg r17         ;为负,除数取补
	sbrc r16,7      ;判被除数的正负
	neg r16         ;为负,被除数取补
	sub r15,r15     ;清余数和进位 
	ldi r18,9       ;初始化循环计数器
d8s_1:
        rol r16         ;左移结果(被除数) 
        dec r18         ; 减计数器
	brne  d8s_2     ;不为 0 ,跳至d8s_2 
	sbrc r14,7      ;判结果的正负
	neg r16         ;为负,结果取补
	ret
d8s_2:
        rol r15         ;左移余数(被除数移到除数)
	sub r15,r17     ;余数-除数
	brcc  d8s_3     ;够减,跳至d8s_3
	add r15,r17     ;不够减,再加除数
	clc             ;清进位位
	rjmp   d8s_1
d8s_3:
        sec             ;置进位位
	rjmp   d8s_1

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?