导航:首页 > 操作系统 > 单片机里字节交换指令解析

单片机里字节交换指令解析

发布时间:2022-10-22 18:41:45

A. 单片机的各种命令及解释

你好,解析如下;
数据传送类指令
MOV A, Rn 寄存器内容送入累加器
MOV A, direct 直接地址单元中的数据送入累加器
MOV A, @Ri 间接RAM中的数据送入累加器
MOV A, #data 立即送入累加器
MOV Rn, A 累加器内容送入寄存器
MOV Rn, direct 直接地址单元中的数据送入寄存器
MOV Rn, #data 立即数送入寄存器
MOV direct, A 累加器内容送入直接地址单元
MOV direct, Rn 寄存器内容送入直接地址单元
MOV direct, direct 直接地址单元中的数据送入另一个直接地址单元
MOV direct, @Ri 间接RAM中的数据送入直接地址单元
MOV direct, #data 立即数送入直接地址单元
MOV @Ri, A 累加器内容送间接RAM单元
MOV @Ri, direct 直接地址单元数据送入间接RAM单元
MOV @Ri, #data 立即数送入间接RAM单元
MOV DPTR,#data16 16位立即数送入地址寄存器
MOVC A, @A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器
MOVC A, @A+PC 以PC为基地址变址寻址单元中的数据送入累加器
MOVX A, @Ri 逻辑上在外部的片内扩展RAM,(8位地址)送入累加器
MOVX A, @DPTR 逻辑上在外部的片内扩展RAM,(16位地址)送入累加器
MOVX @Ri, A 累加器送逻辑上在外部的片内扩展RAM(8位地址)
MOVX @DPTR, A 累加器送逻辑上在外部的片内扩展RAM(16位地址)
PUSH direct 直接地址单元中的数据压入堆栈
POP direcct 出栈送直接地址单元
XCH A, Rn 寄存器与累加器交换
XCH A,direct 直接地址单元与累加器交换
XCH A, @Ri 间接RAM与累加器交换
XCHD A, @Ri 间接RAM的低半字节与累加器交换
算术操作类指令
ADD A,Rn 寄存器内容送入累加器
ADD A,direct 直接地址单元中的数据加到累加器
ADD A,@Ri 间接RAM中的数据加到累加器
ADD A,#data 立即加到累加器加到累加器累加器
ADDC A,Rn 寄存器内容带?位加到累加器
ADDC A,direct 直接地址单元的内容带?位加到累加器
ADDC A,@Ri 间接RAM内容带?位加到累加器
ADDC A,#data 立即数带?位加到累加器
SUBB A,Rn 累加器带借位减寄存器内容容
SUBB A,direct 累加器带借位减直接地址单元的内容容
SUBB A,@Ri 累加器带借位减间接RAM中的内容容
SUBB A,#data 累加器带借位减立即数数
INC A 累加器加1
INC Rn 寄存器加1
INC direct 直接地址单元加1
INC @Ri 间接RAM单元加1
DEC A 累加器减1
DEC Rn 寄存器减1
DEC direct 直接地址单元减1
DEC @Ri 间接RAM单元减1
INC DPTR 地址寄存器DPTR加1
MUL AB A乘B
DIV AB A除B
DA A 累加器十制调整整
逻辑操作类指令
ANL A,Rn 累加器与寄存器相“与”
ANL A,direct 累加器与直接地址单元相“与”
ANL A,@Ri 累加器与间接RAM单元相“ 与”
ANL A,#data 累加器与立即数相“与”
ANL direct, A 直接地址单元与累加器相“与”
ANL direct,#data 直接地址单元与立即数相“与”
ORL A, Rn 累加器与寄存器相“或”
ORL A,direct 累加器与直接地址单元相“或”
ORL A,@Ri 累加器与间接RAM单元相“或”
ORL A,#data 累加器与立即数相“或”
ORL direct, A 直接地址单元与累加器相“或”
ORL direct, #data 直接地址单元与立即数相“或”
XRL A, Rn 累加器与寄存器相“异或”
XRL A, d irect 累加器与直接地址单元相“异或”
XRL A, @Ri 累加器与间接RAM单元相“异或”
XRL A, # data 累加器与立即数相“异或”
XRL direct, A 直接地址单元与累加器相“异或”
XRL direct,#data 直接地址单元与立即数相“异或”
CLR A 累加器清“0”
CPL A 累加器求反反
RL A 累加器循环左移移
RLC A 累加器带?位位循环左移移
RR A 累加器循环右移移
RRC A 累加器带?位位循环右
SWAP A 累加器半字节交换换
控制转移类指令
ACALL addr11 绝对(短)调用子程序序
LCALL addr16 长调用子程序序
RET 子程序返回回
RETI 中断返回回
AJMP addr11 绝对(短)转移移
LJMP addr16 长转移
SJMP re1 相对转移
JMP @A+DPTR 相对于DPTR的间接转移移
JZ re1 累加器为零转移移
JNZ re1 累加器非零转移移
CJNE A,direct,re1 累加器与直接地址单元比较,不相等则转移移
CJNE A,#data,re1 累加器与立即数比较,不相等则转移移
CJNE Rn,#data,re1 寄存器与立即数比较,不相等则转移移
CJNE @Ri,#data,re1 间接RAM单元与立即数比较,不相等则转移移
DJNZ Rn,re1 寄存器减1,非零转移移
DJNZ direct,re1 直接地址单元减1,非零转移移
NOP 空操作
布尔变量操作类指令
CLR C 清零进位位
CLR bit 清0直接地址位
SETB C 置1进位位
SETB bit 置1直接地址位
CPL C 进位位求反
CPL bit 直接地址位求反
ANL C, bit 进位位和直接地址位相“与”
ANL C, /bit 进位位和直接地址位的反码相“与”
ORL C, bit ?位位和直接地址位相“或”
ORL C, /bit ?位位和直接地址位的反码相“或”
MOV C, bit 直接地址位送入?位位位
MOV bit, C ?位位送入直接地址位
JC rel ?位位为1则转移
JNC rel ?位位为0则转移
JB bit, rel 直接地址位为1则转移
JNB bit, rel 直接地址位为0则转移
JBC bit, rel 直接地址位为1则转移,该位清0

希望对你有帮助!给个好评吧,谢谢你了!

B. 单片机中XCHD应该怎样理解

单片机XCHD A,@R0 是半字节交换指令,累加器A的低4 位和内存的低4 位交换.
是汇编指令,类似于SWAP,不过有两个操作数,XCHD Rd, Rn ,功能为半字节交换。
比如: R1 = 23H,R2 = 45H,那么 XCHD R1, R2后,
R1 = 25H, R2 = 43H,明白了吗

C. 单片机指令swap什么意思

swap是交换指令,具体功能要看单片机内核了。
大概是这样的:
如果是8位内核的,比如MCS-51,实现的是字节内高四位和低四位的交换。
如果是32位ARM的话,实现两内个操作地址内的数据容交换。
总的来说,就是数据交换了,至于怎么交换,由内核机制决定。

D. 单片机数据的高字节和低字节怎样进行调换

单片机数据的高字节和低字节怎样进行调换?
因该是
TEMP=0
TEMP|=(0x0F&A)<<4
A=TEMP&0XF0

这样数据应该是高四位与低四位交换了

E. 51单片机中汇编语言中的swap什么意思

51单片机汇编语言中的swap是半字节交换指令。
SWAP A 这条指令,将累加器A的高、低4位数据交换,也就是低4位数据进入高4位,高4位数据进入低4位。例如:
MOV A#00001111B
SWAP A
执行SWAP A后,A中的内容变为11110000B。

F. 单片机XCHD指令是怎么进行交换的

单片机xchd
a,@r0
是半字节交换指令,累加器a的低4
位和内存的低4
位交换.
是汇编指令,类似于swap,不过有两个操作数,xchd
rd,
rn
,功能为半字节交换。
比如:
r1
=
23h,r2
=
45h,那么
xchd
r1,
r2后,
r1
=
25h,
r2
=
43h,明白了吗

G. 单片机指令swap什么意思

swap是交换指令,具体功能要看单片机内核了。
大概是这样的:
如果是8位内核的,比如MCS-51,实现的是字节内高四位和低四位的交换。
如果是32位ARM的话,实现两个操作地址内的数据交换。
总的来说,就是数据交换了,至于怎么交换,由内核机制决定。

H. 51单片机的所有指令

单片机指令功能一览表
助记符 代码 说明
MOV A,Rn E8~EF 寄存器A
MOV A,direct E5 dircet 直接字节送A
MOV A,@Ri ER~E7 间接RAM送A
MOV A,#data 74 data 立即数送A
MOV Rn,A F8~FF A送寄存器
MOV Rn,dircet A8~AF dircet 直接字节送寄存器
MOV Rn,#data 78~7F data 立即数送寄存器
MOV dircet,A F5 dircet A送直接字节
MOV dircet,Rn 88~8F dircet 寄存器送直接字节
MOV dircet1,dircet2 85 dircet1 dircet2 直接字节送直接字节
MOV dircet,@Ro 86~87 间接RAM送直接字节
MOV dircet,#data 75 dircet data 立即数送直接字节
MOV @Ri,A F6~F7 A送间接RAM
MOV @Ri,#data 76~77 data 直接字节送间接RAM
MOV @Ri,#data 76~77 data 立即数送间接RAM
MOV DPTR,#data16 90 data 15~8 16位常数送数据指针
data7~0
MOVC A,@A+DPTR 93 由((A)+(DPTR))寻址的程序存贮
器字节选A
MOVC A,@A+PC 83 由((A)+(PC));寻址的程序存贮器字节送A
MOVX A,@Ri E2~E3 送外部数据(8位地址)送A
MOVX A,@DPTR E0 送外部数据(16位地址)送A
MOVX @Ri,A F2~F3 A送外部数据(8位地址)
MOVX @DPTR,A F0 A送外部数据(16位地址)
PUSH dircet C0 dircet 直接字节进栈,SP加1
POP dircet D0 dircet 直接字节退栈,SP减1
XCH A,Rn C8~CF 交换A和寄存器
XCH A,dircet C5 dircet 交换A和直接字节
XCH A,@Ri C6~C7 交换A和间接RAM
XCH A,@Ri D6~D7 交换A和间接RAM的低位
SWAP A C4

算术操作 (A的二个半字节交换)
ADD A,Rn 28~2F 寄存器加到A
ADD A,dircet 25 dircet 直接字节加到A
ADD A,@Ri 26~27 间接RAM加到A
ADD A,#data 24data 立即数加到A
ADD A,Rn 38~3F 寄存器和进位位加到A
ADD A,dircet 35dircet 直接字节和进位位加到A
ADD A,@Ri 36~37 间接字节和进位位加到A
ADD A,data 34 data 立即数和进位位加到A
ADD A,Rn 98~9F A减去寄存器和进位位
ADD A,dircet 95 dircet A减去直接字节和进位位
ADD A,@Ri 36~37 间接RAM和进位位加到A
ADD A,data 34 data 立即数和进位位加到A
SUBB A,Rn 98~9F A减去寄存器和进位位
SUBB A,dircet 95 dircet A减去直接字节和进位位
SUBB A,@Ri 96~97 A减去间接RAM和进位位
SUBB A,#data 94 data A减去立即数和进位位
INC A 04 A加1
INC Rn 08~0F 寄存器加1
INC dircet 05 dircet 直接字节加1
INC @Ri 06~07 间接RAM加1
DEC A 14 A减1
DEC Rn 18~1F 寄存器减1
DEC dircet 15 dircet 直接字节减1
DEC @Ri 16~17 间接RAM减1
INC DPTR A3 数据指针加1
MUL AB A4 A乘以B
DIV AB 84 A除以B
DA A D4 A的十进制加法调整

逻辑操作
ANL A,Rn 58~5F 寄存器“与”到A
ANL A,dircet 55 dircet 直接字节“与”到A
ANL A,@Ri 56~57 间接RAm“与”到A
ANL A,#data 54 data 立即数“与”到A
ANL dircet A 52 dircet A“与”到直接字节
ANL dircet,#data 53 dircet data 立即数“与”到直接字节
ORL A,Rn 48~4F 寄存器“或”到A
ORL A,dircet 45 dircet 直接字节“或”到A
ORL A,@Ri 46~47 间接RAM“或”到A
ORL A,#data 44 data 立即数“或”到A
ORL dircet,A 42 dircet A“或”到直接字节
ORL dircet,#data 43 dircet data 立即数“或”到直接字节
XRL A,Rn 68~6F 寄存器“异或”到A
XRL A,dircet 65 dircet 直接字节“异或”到A
XRL A,@Ri 66~67 间接RAM“异或”到A
XRL A,#data 64 data 立即数“异或”到A
XRL dircet A 62 dircet A“异或”到直接字节
XRL dircet,#data 63 dircet data 立即数“异或”到直接字节
CLR A E4 清零
CPL A F4 A取反
RL A 23 A左环移
RLC A 33 A通过进位左环移
RR A 03 A右环移
RRC A 13 A通过进位右环移

控制程序转移
ACALL addr 11 *1 addr(a7~a0) 绝对子程序调用
LCALL addr 16 12 addr(15~8) 长子程序调用
addr(7~0)
RET 22 子程序调用返回
RETI addr 11 32 中断调用返回
AJMP addr 11 △1 addr(a7~a6) 绝对转移
LJMP addr 16 02addr(15~8) 长转移
addr(7~0)
SJMP rel 80 rel 短转移,相对转移
JMP @A+DPTR 73 相对于DPTR间接转移
JZ rel 60 rel A为零转移
JNZ rel 70 rel A为零转移
CJNE A,dircet,rel B5 dircet rel 直接字节与A比较,不等则转移
CJNE A,#data,rel B4 data rel 立即数与A比较,不等则转移
CJNE A,Rn,#data,rel B8~BF data rel 立即数与寄存器比较,不等则转移
CJNE @Ri,#data,rel B6~B7 data rel 立即数与间接RAM比较,不等则转移
DJNZ Rn,rel D8~DF rel 寄存器减1,不为零则转移
DJNZ dircet,rel B5 dircet rel 直接字节减1,不为零则转移
NOP 00 空操作
*=a10a9a8l
△=a10a9a80

布尔变量操作
CLR C C3 清零进位
CLR bit C2 清零直接位
SETB C D3 置位进位
SETB bit D2 置位直接位
CPL C B3 进位取反
CPL bit B2 直接位取反
ANL C,bit 82 dit 直接数“与”到进位
ANL C,/bit B0 直接位的反“与”到进位
ORL C,bit 72 bit 直接位“或”到进位
ORL C,/bit A0 bit 直接位的反“或”到进位
MOV C,bit A2 bit 直接位送进位
MOV bit,C 92 bit 进位送直接位
JC rel 40 rel 进位位为1转移
JNC rel 50 rel 进位位为0转移
JB bit,rel 20 bit rel 直接位为1相对转移
JNB bit,rel 30 bit rel 直接位为0相对转移
JBC bit,rel 10 bit rel 直接位为1相对转移,然后清零该位

[1]. 循环移位指令(4条)
RL A ;累加器A中的内容左移一位
RR A ;累加器A中的内容右移一位
RLC A ;累加器A中的内容连同进位位CY左移一位
RRC A ;累加器A中的内容连同进位位CY右移一位

[2]. 累加器半字节交换指令(1条)
SWAP A ; 累加器中的内容高低半字节互换

[3]. 求反指令(1条)
CPL A ; 累加器中的内容按位取反

[4]. 清零指令(1条)
CLR A ; 0→(A),累加器中的内容清0

[5]. 逻辑与操作指令(6条)
ANL A,data ;累加器A中的内容和直接地址单元中的内容执行与逻辑操作。结果存在寄存器A中。
ANL data,#data ;直接地址单元中的内容和立即数执行与逻辑操作。结果存在直接地址单元中。
ANL A,#data ;累加器A的内容和立即数执行与逻辑操作。结果存在累加器A中。
ANL A,Rn ;累加器A的内容和寄存器Rn中的内容执行与逻辑操作。结果存在累加器A中。
ANL data,A ;直接地址单元中的内容和累加器A的内容执行与逻辑操作。结果存在直接地址单元中。
ANL A,@Ri ;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行与逻辑操作。结果存在累加器A中。

[6]. 逻辑或操作指令(6条)
这组指令的作用是将两个单元中的内容执行逻辑或操作。如果直接地址是I/O地址,则为“读—修改—写”操作。

ORL A,data ;累加器A中的内容和直接地址单元中的内容执行逻辑或操作。结果存在寄存器A中。
ORL data,#data ;直接地址单元中的内容和立即数执行逻辑或操作。结果存在直接地址单元中。
ORL A,#data ;累加器A的内容和立即数执行逻辑或操作。结果存在累加器A中。
ORL A,Rn ;累加器A的内容和寄存器Rn中的内容执行逻辑或操作。结果存在累加器A中。
ORL data,A ;直接地址单元中的内容和累加器A的内容执行逻辑或操作。结果存在直接地址单元中。
ORL A,@Ri ;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑或操作。结果存在累加器A中。

[7]. 逻辑异或操作指令(6条)
XRL A,data ;累加器A中的内容和直接地址单元中的内容执行逻辑异或操作。结果存在寄存器A中。
XRL data,#data ;直接地址单元中的内容和立即数执行逻辑异或操作。结果存在直接地址单元中。
XRL A,#data ;累加器A的内容和立即数执行逻辑异或操作。结果存在累加器A中。
XRL A,Rn ;累加器A的内容和寄存器Rn中的内容执行逻辑异或操作。结果存在累加器A中。

XRL data,A ;直接地址单元中的内容和累加器A的内容执行逻辑异或操作。结果存在直接地址单元中。
XRL A,@Ri ;累加器A的内容和工作寄存器Ri指向的地址单元中的内容执行逻辑异或操作。结果存在累加器A中

控制转移类指令分析

[1]. 无条件转移指令(4条)
LJMP addr16 ;addr16→(PC),给程序计数器赋予新值(16位地址)
AJMP addr11 ;(PC)+2→(PC),addr11→(PC10-0)程序计数器赋予新值(11位地址),(PC15-11)不改变
SJMP rel ;(PC)+ 2 + rel→(PC)当前程序计数器先加上2再加上偏移量给程序计数器赋予新值
JMP @A+DPTR ;(A)+ (DPTR)→(PC),累加器所指向地址单元的值加上数据指针的值给程序计数器赋予新值

[2]. 条件转移指令(8条)
JZ rel ; A=0,(PC)+ 2 + rel→(PC),累加器中的内容为0,则转移到偏移量所指向的地址,否则程序往下执行
JNZ rel ; A≠0,(PC)+ 2 + rel→(PC),累加器中的内容不为0,则转移到偏移量所指向的地址,否则程序往下执行

CJNE A, data, rel ; A≠(data),(PC)+ 3 + rel→(PC),累加器中的内容不等于直接地址单元的内容,则转移到偏移量所指向的地址,否则程序往下执行
CJNE A, #data, rel ; A≠#data,(PC)+ 3 + rel→(PC),累加器中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行
CJNE Rn, #data, rel ; A≠#data,(PC)+ 3 + rel→(PC),工作寄存器Rn中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行
CJNE @Ri, #data, rel ; A≠#data,(PC)+ 3 + rel→(PC),工作寄存器Ri指向地址单元中的内容不等于立即数,则转移到偏移量所指向的地址,否则程序往下执行

布尔变量操作指令分析

[1]. 位传送指令(2条)
MOV C,bit ;bit→CY,某位数据送CY
MOV bit,C ;CY→bit,CY数据送某位

[2]. 位置位复位指令(4条)
CLR C ; 0→CY,清CY
CLR bit ; 0→bit,清某一位
SETB C ; 1→CY,置位CY
SETB bit ; 1→bit,置位某一位

[3]. 位运算指令(6条)
ANL C,bit ;(CY)∧(bit)→CY
ANL C,/bit ;(CY)∧( )→CY
ORL C,bit ;(CY)∨(bit)→CY
ORL C,/bit ;(CY)∧()→CY
CPL C ;()→CY
CPL bit ;()→bir

[4]. 位控制转移指令(5)
JC rel ; (CY)=1转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。
JNC rel ; (CY)=0转移,(PC)+2+rel→PC,否则程序往下执行,(PC)+2→PC。
JB bit, rel ; 位状态为1转移。
JNB bit, rel ; 位状态为0转移。
JBC bit, rel ; 位状态为1转移,并使该位清“0”。

I. 单片机题目:SWAP是什么意思

swap是交换指令,具体功能要看单片机内核了。
大概是这样的:
如果是8位内核的,比如mcs-51,实现的是字节内高四位和低四位的交换。
如果是32位arm的话,实现两个操作地址内的数据交换。
总的来说,就是数据交换了,至于怎么交换,由内核机制决定。

阅读全文

与单片机里字节交换指令解析相关的资料

热点内容
服务器怎么用不会断电 浏览:301
主从服务器有什么用 浏览:213
jstlpdf 浏览:14
安卓原神在哪个app下载 浏览:808
单片机编程技术什么意思 浏览:104
e点课堂源码 浏览:45
免费打击垫app哪个好 浏览:532
程序员必装的6款软件 浏览:750
基于单片机的遥控器设计 浏览:521
安卓如何取消圆图标 浏览:11
收件服务器怎么样 浏览:48
建筑设计规范pdf 浏览:98
如何合并两个pdf 浏览:174
刷机包必须要解压的单词 浏览:483
android课表实现 浏览:864
头条app在哪里能看见有什么活动 浏览:511
冰柜压缩机电容80欧 浏览:609
安卓各个版本图标什么样 浏览:152
无锡哪里有制作手机app 浏览:538
php字符串转json数组 浏览:6