51单片机大量不明寄存器!!!

2020-01-23 14:43发布

在百度文库下了一个(51汇编实用子程序库)发现完全看不懂,粘贴出来大家看看:

;N 字节无符号数乘法程序 ([R0]*[R1])=([R0])
;入口:     R0,R1,M,N
;占用资源:     ACC,B,R2,R5,R6,R7,NCNT
;堆栈需求:     2 字节
;出口:     R0


NMULMN     :     MOV       A,M
ADD       A,R0
MOV       R5,A


XCH       A,R1
XCH       A,R5
ADD       A,N
XCH       A,R0
MOV       R6,A
MOV       B,M
MOV       NCNT,B NMLMN1     :     DEC       R0
DEC       R1
CLR       A
XCH       A,@R1
MOV       @R0,A
DJNZ     NCNT,NMLMN1 MOV       NCNT,B
NMLMN2     :     CLR       A
XCH       A,@R0
MOV       R2,A
MOV       A,R6
MOV       R0,A
MOV       A,R5
MOV       R1,A
MOV       R7,N
CLR       C NMLMN3     :     MOV       A,R2
MOV       B,@R1
INC       R1
MUL       AB
ADDC     A,@R0
MOV       @R0,A
INC       R0
MOV       A,B
ADDC     A,@R0
MOV       @R0,A DJNZ     R7,NMLMN3 INC       R0
INC       R6
DJNZ     NCNT,NMLMN2 MOV       A,R0
CLR       C
SUBB     A,M
SUBB     A,N
MOV       R0,A
RET
占用资源:     ACC,B,R2,R5,R6,R7,NCNT;ncnt是神马?


;N 字节无符号除法程序(组合) ([R0]/[R1])=([R0])
;入口:     R0,R1,M,N
;占用资源:     ACC,R2,R3,R4,R5,R7,NCNT,F0,NADDN,NSUBBN,NRLCN
;堆栈需求:     4 字节
;出口:     R0


;NDIVMN     :     MOV       A,M CLR       C


SUBB     A,N
MOV       NCNT,A
ADD       A,R0
MOV       R4,A
XCH       A,R0
MOV       R3,A
MOV       A,R1
MOV       R5,A
MOV       R2,#00H NDVMN1     :     MOV       R7,N
LCALL   NSUBN MOV       A,R5
MOV       R1,A
JC         NDVMN2
INC       R2
SJMP     NDVMN1 NDVMN2     :     MOV       R7,N
LCALL   NADDN MOV       A,NCNT
SWAP     A
RR         A
MOV       NCNT,A NDVMN3     :     MOV       A,R3
MOV       R0,A
MOV       R7,M LCALL   NRLCN MOV       F0,C
MOV       A,R4
MOV       R0,A
MOV       A,R5
MOV       R1,A
MOV       R7,N LCALL   NSUBN
JB         F0,NDVMN4
JC         NDVMN5 NDVMN4     :     MOV       A,R3
MOV       R0,A
INC       @R0 SJMP     NDVMN6
NDVMN5     :     MOV       A,R5
MOV       R1,A
MOV       R7,N LCALL   NADDN
NDVMN6     :     DJNZ     NCNT,NDVMN3 MOV       A,R4
MOV       R1,A
MOV       A,R2
MOV       @R1,A

MOV       A,R3
MOV       R0,A
RET
占用资源:     ACC,R2,R3,R4,R5,R7,NCNT,F0,NADDN,NSUBBN,NRLCN;这些又是神马?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。