📄 ex3-9.asm
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -