📄 exp_3_4.asm
字号:
;多位BCD码减法
ORG 0000H
LJMP START
ORG 0100H
START: MOV 30H,#40H ;减数,被减数首地址和字节数
MOV 31H,#50H
MOV 32H,#03H
MOV R0,30H
MOV R1,31H
MOV R7,32H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; 下面的算法太经典了,省去了烦人的半字节交换,类似于二进 ;;;;
;;; 制求补减法变加法,借位变进位处理更是绝了,值得看看 ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETB C
LOOP: CLR A
ADDC A,#99H
SUBB A,@R1
ADD A,@R0
DA A
MOV @R1,A
INC R0
INC R1
DJNZ R7,LOOP
;借位存在下一位中
JNC _A
MOV @R1,#00H
AJMP EXIT
_A: MOV @R1,#01H
EXIT: SJMP $
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -