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;这些又是神马?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
master5888
1楼-- · 2020-01-23 14:49
LZ没整过汇编,也没学过单片机原理?
mengf
2楼-- · 2020-01-23 19:14
貌似程序不全,像这些NADDN,NSUBBN,NRLCN真没见过,估计是定义语句你没贴上来
lukefan2008
3楼-- · 2020-01-23 23:29
楼主,建议你那一本单片机最基础的书看看,里面有基本的描述的
oldmen
4楼-- · 2020-01-24 01:08
第一程序不全,第二语句格式不对,有些地方该换行的没有换行, NADDN,NSUBBN,NRLCN 这几个是程序标号,也就是PC地址,程序标号后面是冒号,分号后面是注释;
jetli
5楼-- · 2020-01-24 01:52
 精彩回答 2  元偷偷看……
liyute
6楼-- · 2020-01-24 06:55
好吧,我想问的是好似标号的那几个东东,acc,b,r1,r2这些我是知道的.源程序全粘贴下来了,没有定义.

一周热门 更多>