导航:首页 > 操作系统 > 单片机汇编表

单片机汇编表

发布时间:2022-02-26 22:42:26

A. 单片机汇编

程序好像没有问题,编译出什么问题了?
Keil卸了没办法试……

B. 求单片机总汇编语言指令表、____

编号 指令名称 指令助记符 指令说明
数据传送类指令
1 一般传送 MOV A, #data 将立即数#data送累加器A
2 MOV direct, #data 将立即数#data送片内RAM direct地址单元内
3 Mov Rn, #data 将立即数#data送寄存器Rn
4 Mov @Ri, #data 寄存器Ri内为RAM地址,将立即数#data送该地址单元内
5 Mov direct2, direct1 将direct1地址单元的数据送 direct2地址单元内
6 Mov direct, rn 将Rn的数据送 direct地址单元内
7 Mov Rn, direct 将direct地址单元内的数据送Rn寄存器
8 Mov direct, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据送direct地址单元内
9 Mov @Ri, direct 寄存器Ri内为RAM地址,将direct地址单元内的数据送该地址单元内
10 Mov A, Rn 将寄存器Rn内的数据送累加器A
11 Mov Rn, A 将累加器A内的数据送寄存器Rn
12 Mov A, direct 将direct地址单元内的数据送累加器A
13 Mov direct, A 将累加器A内的数据送direct地址单元内
14 Mov A, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据送累加器A
15 Mov @Ri , A 寄存器Ri内为RAM地址,将累加器A的数据送该地址单元内
16 目的地址传送 Mov DPTR, #data16 将16位立即数送数据指针DPTR寄存器
17 字节交换 SWAP A 累加器A高低4位数据交换
18 XCH A, Rn 将累加器A数据和寄存器Rn内的数据交换
19 XCH A, direct 将累加器A数据和direct地址单元内的数据交换
20 XCH A, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据与累加器A的数据交换
21 XCHD A, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据低4位与的低4位交换
22 与外部RAM传送 MOVX @DPTR, A 将累加器A的数据送数据指针DPTR寄存器所指外部RAM地址单元内
23 MOVX A , @DPTR 将DPTR寄存器所指外部RAM地址单元内的数据送累加器A
24 MOVX A, @Ri 寄存器Ri内为片外RAM地址,将该地址单元内的数据送累加器A
25 MOVX @Ri, A 寄存器Ri内为片外RAM地址,将该地址单元内的数据送累加器A
26 与ROM传送 MOVC A, @A+DPTR A+DPTR构成ROM地址,将该地址内的数据送累加器A内
27 MOVC A, @A+PC A+PC构成ROM地址,将该地址内的数据送累加器A内
28 栈操作 PUSH direct 堆栈指针SP自加1后,将direct地址单元的数据压进堆栈,
29 POP direct 堆栈的数据送direct地址单元中,后堆栈指针减1,
算术运算指令
30 加法指令 ADD A, Rn 将寄存器Rn与累加器A的数据相加后,结果保存到累加器A
31 ADD A, direct 将direct地址单元内的数据与累加器A的数据相加后结果保存到累加器A
32 ADD A, @Ri 寄存器Ri内位地址,将该地址单元内的数据与累加器A的数据相加后结果保存到累加器A
33 ADD A, #data 将立即数与累加器A的数据相加后结果保存到累加器A
34 带进位加法 ADDC A, Rn 将寄存器Rn与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A
35 ADDC A, direct 将direct地址单元内的数据与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A
36 ADDC A, @Ri 寄存器Ri内为RAM地址,将该地址单元内的数据与累加器A的数据相加,再加上进位标志内的值后,结果保存到累加器A
37 ADDC A, #data 将立即数与累加器A的数据相加,再加上进位标志内的值后结果保存到累加器A
38 带借位减法 SUBB A, Rn 将与累加器A的数据减去寄存器Rn的数据,再减去进位标志内的值,结果保存到累加器A
39 SUBB A, direct 将与累加器A的数据减去direct地址单元内的数据,再减去进位标志内的值,结果保存到累加器A
40 SUBB A, @Ri 寄存器Ri内为RAM地址,将累加器A的数据减去该地址单元内的数据,再减去进位标志内的值后,结果保存到累加器A
41 SUBB A, #data 将累加器A的数据减去立即数,再减去进位标志内的值后,结果保存到累加器A
42 加1指令 INC A 累加器A的值自加1
43 INC Rn 寄存器Rn的值自加1
44 INC direct direct地址单元内值自加1
45 INC @Ri 寄存器Ri内为RAM地址,该地址单元内的值自加1
46 INC DPTR 数据指针寄存器DPTR内的值自加1
47 减1指令 DEC A 累加器A的值自减1
48 DEC Rn 寄存器Rn的值自减1
49 DEC direct direct地址单元内的值自减1
50 DEC @Ri 寄存器Ri内为RAM地址,该地址单元内的值自减1
51 乘法 MUL AB 累加器A与寄存器B内的值相乘,乘积的高8位保存在B寄存器,低8位保存在累加器A中
52 除法 DIV AB 累加器A的值除以寄存器B的值,商保存在累加器A中,余数保存在B寄存器
53 二-十进制调整 DA A 对累加器A的结果进行十进制调整
逻辑运算指令
54 逻辑与 ANL A, Rn 将累加器A的值和寄存器Rn的值进行与操作,结果保存到累加器A中
55 ANL A, direct 将累加器A的值和direct地址单元内的值进行与操作,结果保存到累加器A中
56 ANL A, @Ri 寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行与操作,结果保存到累加器A中
57 ANL A, #data 将累加器A的值和立即数进行与操作,结果保存到累加器A中
58 ANL direct, A 将累加器A的值和direct地址单元内的值进行与操作,结果保存到direct地址单元内
59 ANL direct, #data 将立即数和direct地址单元内的值进行与操作,结果保存到direct地址单元内
60 逻辑或 ORL A, Rn 将累加器A的值和寄存器Rn的值进行或操作,结果保存到累加器A中
61 ORL A, direct 将累加器A的值和direct地址单元内的值进行或操作,结果保存到累加器A中
62 ORL A, @Ri 寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行或操作,结果保存到累加器A中
63 ORL A, #data 将累加器A的值和立即数进行或操作,结果保存到累加器A中
64 ORL direct, A 将累加器A的值和direct地址单元内的值进行或操作,结果保存到direct地址单元内
65 ORL direct, #data 将立即数和direct地址单元内的值进行或操作,结果保存到direct地址单元内
66 逻辑异或 XRL A, Rn 将累加器A的值和寄存器Rn的值进行异或操作,结果保存到累加器A中
67 XRL A, direct 将累加器A的值和direct地址单元内的值进行异或操作,结果保存到累加器A中
68 XRL A, @Ri 寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行异或操作,结果保存到累加器A中
69 XRL A, #data 将累加器A的值和立即数进行异或操作,结果保存到累加器A中
70 XRL direct, A 将累加器A的值和direct地址单元内的值进行异或操作,结果保存到direct地址单元内
71 XRL direct, #data 将立即数和direct地址单元内的值进行异或操作,结果保存到direct地址单元内
72 按位取反 CPL A 累加器A的值按位取反
73 累加器清零 CLR A 累加器A清0
74 逻辑右移 RR A 累加器A的值循环右移1位
75 逻辑左移 RL A 累加器A的值循环左移1位
76 带进位右移 RRC A 累加器A的值带进位循环右移1位
77 带进位左移 RLC A 累加器A的值带进位循环左移1位
控制转移指令
78 无条件转移 SJMP rel rel为地址偏移量,PC加2后的地址加上rel作为目标地址,程序跳到目标地址继续运行
79 AJMP addr11(a10- a0) addr11为11位地址,PC加2后的地址高5位与指令中的低11位地址构成目标地址,程序跳到目标地址继续运行
80 LJMP addr16 将addr16的16位地址送程序计数器PC,使机器执行下一条指令时无条件转移到addr16处执行程序
81 JMP @A+DPTR 目标地址的基地址放在DPTR中,目标地址对基地址的偏移量放在累加器A中,它们相加构成目标地址
82 条件转移 JZ rel If(累加器A=0)则PC加2再加上rel作为目标地址
83 JNZ rel If(累加器A!=0)则PC加2再加上rel作为目标地址
84 CJNE A, direct, rel If(累加器A!= direct地址单元的值)则PC加2再加上rel作为目标地址
85 CJNE A, #data, rel If(累加器A!= 立即数)则PC加2再加上rel作为目标地址
86 CJNE Rn, #data, rel If(寄存器Rn的值!= 立即数)则PC加2再加上rel作为目标地址
87 CJNE @Ri, #data, rel 寄存器Ri内为RAM地址,If(该地址单元的值!= 立即数)则PC加2再加上rel作为目标地址
88 循环转移 DJNZ Rn, rel 寄存器Rn的值减1后,If(寄存器Rn的值!=0)则PC加2再加上rel作为目标地址
89 DJNZ direct, rel Direct地址单元的值减1后,If(该值!=0)则PC加3再加上rel作为目标地址
90 布尔条件转移 JC rel If(CY=1)则PC加2再加上rel作为目标地址
91 JNC rel If(CY=0)则PC加2再加上rel作为目标地址
92 JB bit, rel If(bit位=1)则PC加3再加上rel作为目标地址
93 JNB bit, rel If(bit位=0)则PC加3再加上rel作为目标地址
94 JBC bit, rel If(bit位=1)则PC加3再加上rel作为目标地址,且bit位清0
95 调用指令 ACALL addr11 addr11为11位地址,PC加2后的地址PUSH进堆栈,再将PC的地址高5位与指令中的低11位地址构成目标地址,程序跳到目标地址继续运行
96 LCALL addr16 PC加3后的地址PUSH进堆栈,再将16位地址送PC作为目标地址,程序跳到目标地址继续运行
97 返回指令 RET 子程序返回指令,把堆栈中的地址恢复到PC中使程序回到调用处
98 RETI 中断程序返回指令,把堆栈中的地址恢复到PC中使程序回到调用处
99 空操作 NOP 空操作
位操作指令
100 布尔传送 MOV C, bit 将bit位地址中的值送PSW中的进位标志位CY
101 MOV bit, C 将PSW中的进位标志位CY的值送bit位地址中
102 位清0 CLR C 将进位标志位CY清0
103 位清0 CLR bit 将bit位地址内清0
104 位置1 SETB C 将进位标志位CY置1
105 SETB bit 将bit位地址内置1
106 位与 ANL C, bit 将Cy和bit位地址中的值进行与操作后,结果送Cy
107 ANL C, /bit bit位地址中的值取反后再与Cy进行与操作,结构送Cy
108 位或 ORL C, bit 将Cy和bit位地址中的值进行或操作后,结果送Cy
109 ORL C, /bit bit位地址中的值取反后再与Cy进行或操作,结构送Cy
110 位取反 CPL C 将Cy取反
111 CPL bit 将bit位地址的值取反

说明:
1)Ri, Rn指当前工作寄存器,i,n = 0 – 7,当前工作寄存器由程序状态字寄存器PSW的2个位RS1, RS0决定

C. 单片机汇编查表指令

mov xp0,#0
mov dptr,#tp0
LOOP: mov a,xp0
movc a,@a+dptr
mov p2,a
inc xp0
mov a,xp0
cjne a,#80,LOOP %循环查表中每一个直接的值,一共80次%
ret

tp0: DB 030H,048H,048H,048H,048H,048H,030H,000H
DB 010H,030H,010H,010H,010H,010H,07CH,000H
DB 000H,038H,044H,004H,018H,020H,07CH,000H
DB 030H,048H,008H,010H,008H,048H,030H,000H
DB 008H,018H,028H,048H,07CH,008H,008H,000H
DB 03CH,020H,020H,038H,004H,024H,018H,000H
DB 078H,040H,040H,078H,048H,048H,078H,000H
DB 078H,008H,008H,008H,008H,008H,008H,000H
DB 030H,048H,048H,030H,048H,048H,030H,000H
DB 030H,048H,048H,038H,008H,048H,030H,000H

D. 在51单片机汇编语言中,MOV DPTA,#TABLE 查表指令 怎么个查法

这个就是把表TABLE的首地址放到的DPTA中。

然后通过操作DPTA来访问TABLE表中的数据

E. 谁告诉我单片机中汇编需要查表怎么写

MOV DPTR,#TAB
MOV A,#3
MOVC A,@A+DPTR ;这样就查到TAB表中从0开始第3个字节的数,55H给A

;-------------------------------------
TAB: DB 0F5H,035H
DB 00H,55H
两种没区别

F. 求89S52单片机汇编指令表

51单片机汇编指令表
8051
INSTRUCTION
SET
1.Arithmetic
operations:
指令用法
字节数
机器周期数
ADD
A,@Ri
1
1
ADD
A,Rn
1
1
ADD
A,direct
2
1
ADD
A,#data
2
1
ADDC
A,@Ri
1
1
ADDC
A,Rn
1
1
ADDC
A,direct
2
1
ADDC
A,#data
2
1
SUBB
A,@Ri
1
1
SUBB
A,Rn
1
1
SUBB
A,direct
2
1
SUBB
A,#data
2
1
INC
A
1
1
INC
@Ri
1
1
INC
Rn
1
1
INC
DPTR
1
1
INC
direct
2
1
INC
direct
2
1
DEC
A
1
1
DEC
@Ri
1
1
DEC
Rn
1
1
DEC
direct
2
1
MUL
AB
1
4
DIV
AB
1
4
DA
A
1
1
2.Logical
opreations:
ANL
A,@Ri
1
1
XRL
A,@Ri
1
1
ANL
A,Rn
1
1
XRL
A,Rn
1
1
ANL
A,direct
2
1
XRL
A,direct
2
1
ANL
A,#data
2
1
XRL
A,#data
2
1
ANL
direct,A
2
1
XRL
direct,A
2
1
ANL
direct,#data
3
2
XRL
direct,#data
3
2
ORL
A,@Ri
1
1
CLR
A
1
1
ORL
A,Rn
1
1
CPL
A
1
1
ORL
A,direct
2
1
RL
A
1
1
ORL
A,#data
2
1
RLC
A
1
1
ORL
direct,A
2
1
RR
A
1
1
ORL
direct,#data
3
2
RRC
A
1
1
SWAP
A
1
1
3.Data
transfer:
Mnemonic
Byte
Cyc
MOV
A,@Ri
1
1
MOV
DPTR,#data16
3
2
MOV
A,Rn
1
1
MOVC
A,@A+DPTR
1
2
MOV
A,direct
2
1
MOVC
A,@A+PC
1
2
MOV
A,#data
2
1
MOVX
A,@Ri
1
2
MOV
@Ri,A
1
1
MOVX
A,@DPTR
1
2
MOV
@Ri,direct
2
2
MOVX
@Ri,A
1
2
MOV
@Ri,#data
2
1
MOVX
@DPTR,A
1
2
MOV
Rn,A
1
1
PUSH
direct
2
2
MOV
Rn,direct
2
2
POP
direct
2
2
MOV
Rn,#data
2
1
XCH
A,@Ri
1
1
MOV
direct,A
2
1
XCH
A,Rn
1
1
MOV
direct,@Ri
2
2
XCH
A,direct
2
1
MOV
direct,Rn
2
2
XCHD
A,@Ri
1
1
MOV
direct,direct
3
2
MOV
direct,#data
3
2
4.Boolean
variable
manipulation:
Mnemonic
Byte
Cyc
CLR
C
1
1
ANL
C,bit
2
2
SETB
C
1
1
ANL
C,/bit
2
2
CPL
C
1
1
ORL
C,bit
2
2
CLR
bit
2
1
ORL
C,/bit
2
2
SETB
bit
2
1
MOV
C,bit
2
1
CPL
bit
2
1
MOV
bit,C
2
2
5.Program
and
machine
control:
Mnemonic
Byte
Cyc
NOP
1
1
JZ
rel
2
2
RET
1
2
JNZ
rel
2
2
RETI
1
2
JC
rel
2
2
ACALL
addr11
2
2
JNC
rel
2
2
AJMP
addr11
2
2
JB
bit,rel
3
2
LCALL
addr16
3
2
JNB
bit,rel
3
2
LJMP
addr16
3
2
JBC
bit,rel
3
2
SJMP
rel
2
2
CJNE
A,direct,rel
3
2
JMP
@A+DPTR
1
2
CJNE
A,#data,rel
3
2
DJNZ
Rn,rel
2
2
CJNE
@Ri,#data,rel
3
2
DJNZ
direct,rel
3
2
CJNE
Rn,#data,rel3
2

G. 单片机 汇编

没有中断优先级,那后中断的就只好等着。
一般是等前一个中断程序处理完成,返回到主程序中,执行一条指令后,再响应后面这个中断。

H. 单片机汇编语言,查表程序到底是什么意思呀

先将使用的数字定义好,使用时指针操作读出就可以了

I. 汇编语言里面的查表法是什么意思啊。在单片机里面是怎么运行的啊~~~~

51单片机汇编语言有一条查表指令是:MOVC A, @A+DPTR
它不是单独使用的,要和 DB 伪指令配套使用。

例如:若累加器A中有一个0~9的数,请用查表法求出该数的平方值,设平方表表头地址为1000H。
程序如下:
;-------------------------------------
MOV DPTR,#1000H
MOVC A,@A+DPTR
……

ORG 1000H
DB 0, 1, 4, 9, 16, 25......
;-------------------------------------
“DB”,在ROM 1000H中,顺序存放了一系列的“平方”数据。
MOVC A,@A+DPTR指令中A如果等于0,就会在“平方”数据中取出第0个,就是0;
MOVC A,@A+DPTR指令中A如果等于1,就会在“平方”数据中取出第1个,就是1;
MOVC A,@A+DPTR指令中A如果等于2,就会在“平方”数据中取出第2个,就是4;
MOVC A,@A+DPTR指令中A如果等于3,就会在“平方”数据中取出第3个,就是9;
……
MOVC A,@A+DPTR指令中A如果等于9,就会在“平方”数据中取出第9个,就是81。

J. 51单片机0~90秒表的汇编程

这个图看不清,给你一个我做过的0~99秒秒表的程序吧。

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0ISR

ORG 0030H

MAIN:

MOV TMOD,#01H

MOV TH0,#HIGH(65536-10000)

MOV TL0,#LOW(65536-10000)

SETB ET0

SETB EA

MOV R0,#0

MOV R1,#0

MOV R2,#0

MOV R3,#0

CLR 00H

CLR 01H

LOOP:

JB P1.0,LP01

JNB P1.0,$

SETB TR0

CLR 01H

SJMP LOOP0

LP01:

JB P1.1,LP02

JNB P1.1,$

SETB 01H

SJMP LOOP0

LP02:

JB P1.2,LOOP0

JNB P1.1,$

CLR TR0

MOV P3,#0FDH

MOV P2,#0

MOV P3,#0FEH

MOV P2,#0

SJMP MAIN

LOOP0:

JB 00H,LOOP1

MOV A,R0

SJMP LOOP2

LOOP1:

MOV A,R1

LOOP2:

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV R3,A

SJMP LOOP

T0ISR:

CLR TR0

MOV TH0,#HIGH(65536-10000)

MOV TL0,#LOW(65536-10000)

SETB TR0

JB 01H,T0C

INC R2

T0C:

CPL 00H

MOV A,R3

JB 00H,T001

MOV P3,#0FDH

MOV P2,A

SJMP T002

T001:

MOV P3,#0FEH

MOV P2,A

T002:

MOV A,R2

CJNE A,#100,T0E

MOV R2,#0

INC R0

CJNE R0,#9,T0E

MOV R0,#0

INC R1

CJNE R0,#9,T0E

MOV R1,#0

T0E:

RETI

T004:

CLR TR0

RETI

TABLE: ; 共阴极数码管显示代码表

DB 3FH,06H,5BH,4FH,66H ;01234

DB 6DH,7DH,07H,7FH,6FH ;56789


END

阅读全文

与单片机汇编表相关的资料

热点内容
万卷小说缓存在哪个文件夹 浏览:684
st单片机怎样烧 浏览:871
watch怎么下载APP 浏览:821
银行程序员面试 浏览:358
我的世界的服务器为什么不能更新 浏览:769
命令与征服绝命时刻比赛视频 浏览:827
电脑捕获视频的文件夹怎么换 浏览:482
windows编译安卓软件 浏览:210
加密dns列表 浏览:990
股市操练大全八册pdf 浏览:120
c传递指针到python 浏览:163
手动添加引导的命令 浏览:54
740服务器小蓝条是做什么的 浏览:523
linux文件操作命令 浏览:128
安卓手机图片文件夹加锁 浏览:781
steam提示音在哪个文件夹 浏览:339
项目开发全程实录pdf 浏览:532
单片机reset 浏览:597
pdf怎么是英文 浏览:971
旗云2压缩机保险 浏览:374