ex3-9.asm

来自「《单片机原理实用教程——基于Proteus虚拟仿真》一书的配套光盘」· 汇编 代码 · 共 58 行

ASM
58
字号
DSUB: 	MOV A, R6     ;减法入口
	CPL ACC.7     ;取反符号位
	MOV R6, A
DADD: 	MOV A, R2     ;加法入口
	MOV C, ACC.7
	MOV F0, C      ;保存被加数符号位
	XRL A, R6
	MOV C, ACC.7   ;C=1,两数异号,C=0,两数同号
	MOV A, R2 
	CLR ACC.7      ;清0被加数符号
	MOV R2, A
	MOV A, R6
	CLR ACC.7      ;清0加数符号
	MOV R6, A
	JC DAB2
	ACALL NADD     ;同号执行加法
	MOV A, R4
	JB ACC.7, DABE
DAB1: 	MOV C, F0      ;恢复结果的符号
	MOV ACC.7, C
	MOV R4, A
	RET
DABE: 	SETB C
	RET            ;溢 出
DAB2: 	ACALL NSUB1    ;异号执行减法
	MOV A, R4
	JNB ACC.7, DAB1
	ACALL CMPT     ;不够减,取补
	CPL F0         ;符号位取反
	SJMP DAB1

NSUB1:	MOV A,R3
	CLR C
	SUBB A,R7
	MOV R5,A
	MOV A,R2
	SUBB A,R6
	MOV R4,A
	RET

NADD:	MOV A,R3
	ADD A,R7
	MOV R5,A
	MOV A,R2
	ADDC A,R6
	MOV R4,A
	RET

CMPT:	MOV A,R5
	CPL A
	ADD A,#1
	MOV R5,A
	MOV A,R4
	CPL A
	ADDC A,#0
	MOV R4,A
	RET

⌨️ 快捷键说明

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