本指令也被称为查表指令,常用此指令来查一个已做好在ROM中的表格,此条指令引出一个新的寻址方法:变址寻址。本指令是要在ROM的一个地址单元中找出数据,显然必须知道这个单元的地址,这个单元的地址是这样确定的:...

51单片机的汇编指令手册

2011-08-24 22:01:00
7 ADDC A,@Ri 间接ROM 的内容带进位加到累加器 8 ADDC A,#data 立即数带进位加到累加器 9 SUBB A,Rn 累加器带 借位 减寄存器内容 10 SUBB A,direct 累加器带借位减直接地址单元的内容 11 SUBB A,@Ri 累加器带...
1 MOV A,Rn寄存器内容送入累加器
2 MOV A,direct 直接地址单元中的数据送入累加器
3 MOV A,@Ri 间接RAM 中的数据送入累加器
4 MOV A,#tata立即数送入累加器
5 MOV Rn,A 累加器内容送入寄存器
6 MOV Rn,direct 直接地址单元中的数据送入寄存器
7 MOV Rn,#data 立即数送入寄存器
8 MOV direct,A 累加器内容送入直接地址单元
9 MOV direct,Rn 寄存器内容送入直接地址单元
10 MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元
11 MOV direct,@Ri 间接RAM 中的数据送入直接地址单元
12 MOV direct,#data 立即数送入直接地址单元
13 MOV @Ri,A 累加器内容送间接RAM 单元
14 MOV @Ri,direct 直接地址单元数据送入间接RAM 单元
15 MOV @RI,#data 立即数送入间接RAM 单元
16 MOV DRTR,#dat16 16 位立即数送入地址寄存器
17 MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器
18 MOVC A,@A+PC 以PC 为基地址变址寻址单元中的数据送入累加器
19 MOVX A,@Ri 外部RAM(8 位地址)送入累加器
20 MOVX A,@DPTR 外部RAM(16 位地址)送入累加器
21 MOVX @Ri,A 累计器送外部RAM(8 位地址)
22 MOVX @DPTR,A 累计器送外部RAM(16 位地址)
23 PUSH direct 直接地址单元中的数据压入堆栈
24 POP direct 弹栈送直接地址单元
25 XCH A,Rn 寄存器与累加器交换
26 XCH A,direct 直接地址单元与累加器交换
27 XCH A,@Ri 间接RAM 与累加器交换
28 XCHD A,@Ri 间接RAM 的低半字节与累加器交换
算术操作类指令:
1 ADD A,Rn 寄存器内容加到累加器
2 ADD A,direct 直接地址单元的内容加到累加器
3 ADD A,@Ri 间接ROM 的内容加到累加器
4 ADD A,#data 立即数加到累加器
5 ADDC A,Rn 寄存器内容带进位加到累加器
6 ADDC A,direct 直接地址单元的内容带进位加到累加器
7 ADDC A,@Ri 间接ROM 的内容带进位加到累加器
8 ADDC A,#data 立即数带进位加到累加器
9 SUBB A,Rn 累加器带借位减寄存器内容
10 SUBB A,direct 累加器带借位减直接地址单元的内容
11 SUBB A,@Ri 累加器带借位减间接RAM 中的内容
12 SUBB A,#data 累加器带借位减立即数
13 INC A 累加器加1
14 INC Rn 寄存器加1
15 INC direct 直接地址单元加1
16 INC @Ri 间接RAM 单元加1
17 DEC A 累加器减1
18 DEC Rn 寄存器减1 1 12
19 DEC direct 直接地址单元减1
20 DEC @Rj 间接RAM 单元减 1
21 INC DPTR 地址寄存器DPTR 加1
22 MUL AB A 乘以B,结果放在A
23 DIV AB A 除以B,结果放在A
24 DA A 累加器十进制调整
布尔变量操作类指令:
1 CLR C 清进位位
2 CLR bit 清直接地址位
3 SETB C 置进位位
4 SETB bit 置直接地址位
5 CPL C 进位位求反
6 CPL bit 置直接地址位求反
7 ANL C,bit 进位位和直接地址位相“与”
8 ANL C,bit 进位位和直接地址位的反码相“与”
9 ORL C,bit 进位位和直接地址位相“或”
10 ORL C,bit 进位位和直接地址位的反码相“或”
11 MOV C,bit 直接地址位送入进位位
12 MOV bit,C 进位位送入直接地址位
13 JC rel 进位位为1 则转移
14 JNC rel 进位位为0 则转移
15 JB bit,rel 直接地址位为1 则转移
16 JNB bit,rel 直接地址位为0 则转移
17 JBC bit,rel 直接地址位为1 则转移,该位清零
逻辑操作数指令:
1 ANL A,Rn 累加器与寄存器相“与”
2 ANL A,direct 累加器与直接地址单元相“与”
3 ANL A,@Ri 累加器与间接RAM 单元相“与”
4 ANL A,#data 累加器与立即数相“与”
5 ANL direct,A 直接地址单元与累加器相“与”
6 ANL direct,#data 直接地址单元与立即数相“与”
7 ORL A,Rn 累加器与寄存器相“或”
8 ORL A,direct 累加器与直接地址单元相“或”
9 ORL A,@Ri 累加器与间接RAM 单元单元相“或”
10 ORL A,#data 累加器与立即数相“或”
11 ORL direct,A 直接地址单元与累加器相“或”
12 ORL direct,#data 直接地址单元与立即数相“或”
13 XRL A,Rn 累加器与寄存器相“异或”
14 XRL A,direct 累加器与直接地址单元相“异或”
15 XRL A,@Ri 累加器与间接RAM 单元单元相“异或”
16 XRL A,#data 累加器与立即数相“异或”
17 XRL direct,A 直接地址单元与累加器相“异或”
18 XRL direct,#data 直接地址单元与立即数相“异或”
19 CLR A 累加器清“0”
20 CPL A 累加器求反
21 RL A 累加器循环左移
22 RLC A 累加器带进位位循环左移
23 RR A 累加器循环右移
24 RRC A 累加器带进位位循环右移
25 SWAP A 累加器半字节交换
控制转移类指令:
1 ACALL addr11 绝对(短)调用子程序
2 LCALL addr16 长调用子程序
3 RET 子程序返回
4 RETI 中数返回
5 AJMP addr11 绝对(短)转移
6 LJMP addr16 长转移
7 SJMP rel 相对转移
8 JMP @A+DPTR 相对于DPTR 的间接转移
9 JZ rel 累加器为零转移
10 CJNE rel 累加器非零转移
11 CJNE A,direct,rel 累加器与直接地址单元比较,不相等则转移
12 CJNE A,#data,rel 累加器与立即数比较,不相等则转移
13 CJNE Rn,#data,rel 寄存器与立即数比较,不相等则转移
14 CJNE @Ri,#data,rel 间接RAM 单元与立即数比较,不相等则转移
15 DJNZ Rn,rel 寄存器减1,非零转移
16 DJNZ direct,erl 直接地址单元减1,非零转移
17 NOP 空操作

单片机访问ROM的过程

2020-07-05 14:57:32
有些指令有修改PC的功能,例如转移类指令和MOVC指令 外:从PC取出当前ROM的16位地址,分别由P0口(低8位)和P2口(高8位)同时输出。当信号有效时,外ROM将相应地址存储单元中的内容送至数据总线(P0口),CPU读入后...
ROM(Read Only Memory):只读存储器
内:以程序计数器PC作为16位指针,没每读一字节,(PC)+1->PC
有些指令有修改PC的功能,例如转移类指令和MOVC指令
外:从PC取出当前ROM的16位地址,分别由P0口(低8位)和P2口(高8位)同时输出。当信号有效时,外ROM将相应地址存储单元中的内容送至数据总线(P0口),CPU读入后存入指定单元

汇编语言51单片机111条指令怀旧锦集

2020-07-23 19:33:22
单片机:单芯片形态,集成了微型计算机的各种功能状态,面向嵌入式的计算机应用系统。单片机中的寻址方式为7种方式,分别为:立即寻址,直接寻址,位寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址。 数据...
单片机:单芯片形态,集成了微型计算机的各种功能状态,面向嵌入式的计算机应用系统。
单片机中的寻址方式为7种方式,分别为:立即寻址,直接寻址,位寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址。

数据传送类指令:

条目指令字节周期描述
1MOV A,Rn11寄存器内容送入累加器
2MOV A,direct21直接地址单元中的数据送入累加器
3MOV A,@Ri11间接RAM 中的数据送入累加器
4MOV A,#tata21立即数送入累加器
5MOV Rn,A11累加器内容送入寄存器
6MOV Rn,direct22直接地址单元中的数据送入寄存器
7MOV Rn,#data21立即数送入寄存器
8MOV direct,A21累加器内容送入直接地址单元
9MOV direct,Rn22寄存器内容送入直接地址单元
10MOV direct,direct32直接地址单元中的数据送入另一个直接地址单元
11MOV direct,@Ri22间接RAM 中的数据送入直接地址单元
12MOV direct,#data32立即数送入直接地址单元
13MOV @Ri,A11累加器内容送间接RAM 单元
14MOV @Ri,direct22直接地址单元数据送入间接RAM 单元
15MOV @RI,#data21立即数送入间接RAM 单元
16MOV DRTR,#dat163216位立即数送入地址寄存器
17MOVC A,@A+DPTR12以DPTR为基地址变址寻址单元中的数据送入累加器
18MOVC A,@A+PC12以PC为基地址变址寻址单元中的数据送入累加器
19MOVX A,@Ri12外部RAM(8 位地址)送入累加器
20MOVX A,@DPTR12外部RAM(16 位地址)送入累加器
21MOVX @Ri,A12累计器送外部RAM(8 位地址)
22MOVX @DPTR,A12累计器送外部RAM(16 位地址)
23PUSH direct22直接地址单元中的数据压入堆栈
24POP direct22弹栈送直接地址单元
25XCH A,Rn11寄存器与累加器交换
26XCH A,direct21直接地址单元与累加器交换
27XCH A,@Ri11间接RAM与累加器交换
28XCHD A,@Ri11间接RAM 的低半字节与累加器交换

算术运算类指令:

条目指令字节周期描述
1ADD A,Rn11寄存器内容加到累加器
2ADD A,direct21直接地址单元的内容加到累加器
3ADD A,@Ri11间接ROM 的内容加到累加器
4ADD A,#data21立即数加到累加器
5ADDC A,Rn11寄存器内容带进位加到累加器
6ADDC A,direct21直接地址单元的内容带进位加到累加器
7ADDC A,@Ri11间接ROM 的内容带进位加到累加器
8ADDC A,#data21立即数带进位加到累加器
9SUBB A,Rn11累加器带借位减寄存器内容
10SUBB A,direct21累加器带借位减直接地址单元的内容
11SUBB A,@Ri11累加器带借位减间接RAM 中的内容
12SUBB A,#data21累加器带借位减立即数
13INC A11累加器加1
14INC Rn11寄存器加1
15INC direct21直接地址单元加1
16INC @Ri11间接RAM 单元加1
17DEC A11累加器减1
18DEC Rn11寄存器减1
19DEC direct21直接地址单元减1
20DEC @Ri11间接RAM单元减1
21INC DPTR11地址寄存器DPTR加1
22MUL AB14A乘以B,结果放在A
23DIV AB14A除以B,结果放在A
24DA A11累加器十进制调整

布尔变量操作类指令:

条目指令字节周期描述
1CLR C11清进位位
2CLR bit21清直接地址位
3SETB C11置进位位
4SETB bit21置直接地址位
5CPL C11进位位求反
6CPL bit21置直接地址位求反
7ANL C,bit22进位位和直接地址位相“与”
8ANL C,bit22进位位和直接地址位的反码相“与”
9ORL C,bit22进位位和直接地址位相“或”
10ORL C,bit22进位位和直接地址位的反码相“或”
11MOV C,bit21直接地址位送入进位位
12MOV bit,C22进位位送入直接地址位
13JC rel22进位位为1则转移
14JNC rel22进位位为0则转移
15JB bit,rel32直接地址位为1则转移
16JNB bit,rel32直接地址位为0则转移
17JBC bit,rel32直接地址位为1则转移,该位清零

逻辑操作数指令:

条目指令字节周期描述
1ANL A,Rn11累加器与寄存器相“与”
2ANL A,direct21累加器与直接地址单元相“与”
3ANL A,@Ri11累加器与间接RAM 单元相“与”
4ANL A,#data21累加器与立即数相“与”
5ANL direct,A21直接地址单元与累加器相“与”
6ANL direct,#data32直接地址单元与立即数相“与”
7ORL A,Rn11累加器与寄存器相“或”
8ORL A,direct21累加器与直接地址单元相“或”
9ORL A,@Ri11累加器与间接RAM 单元单元相“或”
10ORL A,#data21累加器与立即数相“或”
11ORL direct,A21直接地址单元与累加器相“或”
12ORL direct,#data32直接地址单元与立即数相“或”
13XRL A,Rn11累加器与寄存器相“异或”
14XRL A,direct21累加器与直接地址单元相“异或”
15XRL A,@Ri11累加器与间接RAM 单元单元相“异或”
16XRL A,#data21累加器与立即数相“异或”
17XRL direct,A21直接地址单元与累加器相“异或”
18XRL direct,#data32直接地址单元与立即数相“异或”
19CLR A11累加器清“0”
20CPL A11累加器求反
21RL A11累加器循环左移
22RLC A11累加器带进位位循环左移
23RR A11累加器循环右移
24RRC A11累加器带进位位循环右移
25SWAP A11累加器半字节交换

控制转移类指令:

条目指令字节周期描述
1ACALL addr1122绝对(短)调用子程序
2LCALL addr1632长调用子程序
3RET12子程序返回
4RETI22中数返回
5AJMP addr1122绝对(短)转移
6LJMP addr1632长转移
7SJMP rel22相对转移
8JMP @A+DPTR12相对于DPTR 的间接转移
9JZ rel22累加器为零转移
10CJNE rel22累加器非零转移
11CJNE A,direct,rel32累加器与直接地址单元比较,不相等则转移
12CJNE A,#data,rel32累加器与立即数比较,不相等则转移
13CJNE Rn,#data,rel32寄存器与立即数比较,不相等则转移
14CJNE @Ri,#data,rel32间接RAM 单元与立即数比较,不相等则转移
15DJNZ Rn,rel22寄存器减1,非零转移
16DJNZ direct,erl32直接地址单元减1,非零转移
17NOP11空操作

嵌入式汇编语言

51单片机:汇编指令集总结

千次阅读多人点赞2018-08-22 00:11:30
运算类: ...指令 操作数1	操作数2	ADD/ADDC——加法/带进位的加法	SUBB——带借位的减法	A	Rn	直接地址	@Ri	#立即数	MUL/DIV——乘法/除法	AB	INC...
汇编

51单片机查表指令

千次阅读2018-08-04 12:17:19
51单片机具有两条查表指令,用于从ROM 中读出预存的数据: MOVC A, @A + PC MOVC A, @A + DPTR 问题:在“MOVC A,@A+DPTR”和“MOVC A,@A+PC”中,分别使用了DPTR和PC作基址,请问这两个基址代表什么...

51单片机的汇编指令(操作码)系统

千次阅读2020-06-29 16:11:44
AT89C51汇编语言指令系统有42种助记符和111种指令,按指令长度可分单字节指令、双字节和三字节指令,按执行时间可分为单机器周期指令(64种)、双机器周期指令(45种)和四周期指令(只有乘、除法指令两种)。...

51单片机如何跳出wile循环_51单片机(九)汇编指令

2020-11-20 01:37:08