liyute 发表于 2014-4-1 16:21:50

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

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

;N 字节无符号数乘法程序 (*)=()
;入口:   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,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;这些又是神马?

master5888 发表于 2014-4-1 16:39:56

LZ没整过汇编,也没学过单片机原理?

mengf 发表于 2014-4-1 16:43:38

貌似程序不全,像这些NADDN,NSUBBN,NRLCN真没见过,估计是定义语句你没贴上来

lukefan2008 发表于 2014-4-1 16:55:53

楼主,建议你那一本单片机最基础的书看看,里面有基本的描述的

oldmen 发表于 2014-4-1 17:06:46

第一程序不全,第二语句格式不对,有些地方该换行的没有换行, NADDN,NSUBBN,NRLCN 这几个是程序标号,也就是PC地址,程序标号后面是冒号,分号后面是注释;

jetli 发表于 2014-4-1 18:48:45

资源:   ACC,R2,R3,R4,R5,R7,。。。

这些找你的mcu课本,上面绝对有解释{:titter:}{:victory:}。。。。。

liyute 发表于 2014-4-1 18:50:16

好吧,我想问的是好似标号的那几个东东,acc,b,r1,r2这些我是知道的.源程序全粘贴下来了,没有定义.

four_zhg 发表于 2014-4-2 08:05:15

NADDN,NSUBBN,NRLCN 这几个是程序标号肯定是经过宏定义的

chengtina 发表于 2014-4-2 09:51:58

那些不认识的,应该是程序开头用伪操作定义过的吧,要么人家程序前面定义没贴出来,要么你没贴全

liyute 发表于 2014-5-14 17:47:03

资料残缺,百度文库有些文档的质量很差,毕竟是免费的。

fulitun 发表于 2014-5-14 18:20:50

NADDN N-ADD-N
NSUBBN N-SUBB-N
NRLCNN-RLC-N
这样看估计是标号
(修改错误)

一匹狼 发表于 2014-5-16 11:04:57

M是不是经过替换,没见过有M寄存器的啊

一匹狼 发表于 2014-5-16 11:07:05

A,B,R0-7这些寄存器比较常用,建议先学习汇编再学c
页: [1]
查看完整版本: 51单片机大量不明寄存器!!!