8051系列单片机汇编语言指令速查表1[1]_图文.
第三章 8051汇编指令
6
汇编语言对不同数制的表示方式
数据的表示方式: 十进制立即数:MOV A,#123 十六进制: MOV A,#7FH 二进制: MOV A,#10011011B 直接地址的表示方式: 十进制立即数:MOV A,123 十六进制: MOV A,7FH 二进制: MOV A,10011011B
注:目的操作数都是A
39
算术运算指令
[2]. 带进位加法指令(4条)
ADDC A, direct ;(A)+(data)+(C)→(A)
ADDC A,#data ;(A)+#data +(C)→(A) ADDC A,Rn ADDC A,@Ri ;(A)+Rn+(C)→(A) ;(A)+((Ri))+(C)→(A)
例如: CLR C
CPL C
SETB P1.2 作业:写出51单片机可位寻址的专用寄存器有哪 些?
17
[7].相对寻址 以PC的内容为基址,加上给出的偏移 量作为转移地址,从而实现程序的转移。这 种寻址方式主要用于转移指令。
例如: S: MOV A,#20 ..... AJMP S
18
软件使用介绍 单片机编程软件:KEIL 电路仿真软件:PROTEUS 电路仿真软件 PCB设计软件
MOV A,#'k'
11
[2].直接寻址 指令中原操作数直接以存储单元的地址 出现。 MOV A,direct 例如: MOV A,68H
12
[3].寄存器寻址 寄存器寻址可以对8个工作寄存器R0-R7进 行操作,也可以对寄存器A、B等进行操作。 例如: MOV R1,#10 MOV A,R1 MOV R2,A
51单片机汇编指令速查表
51单片机汇编指令速查表指令格式功能简述字节数周期一、数据传送类指令MOV A, Rn 寄存器送累加器 1 1MOV Rn,A 累加器送寄存器 1 1MOV A ,@Ri 内部RAM单元送累加器 1 1MOV @Ri ,A 累加器送内部RAM单元 1 1MOV A ,#data 立即数送累加器 2 1MOV A ,direct 直接寻址单元送累加器 2 1MOV direct ,A 累加器送直接寻址单元 2 1MOV Rn,#data 立即数送寄存器 2 1MOV direct ,#data 立即数送直接寻址单元 3 2MOV @Ri ,#data 立即数送内部RAM单元 2 1MOV direct ,Rn 寄存器送直接寻址单元 2 2MOV Rn ,direct 直接寻址单元送寄存器 2 2MOV direct ,@Ri 内部RAM单元送直接寻址单元 2 2 MOV @Ri ,direct 直接寻址单元送内部RAM单元 2 2 MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR ,#data16 16位立即数送数据指针 3 2MOVX A ,@Ri 外部RAM单元送累加器(8位地址) 1 2 MOVX @Ri ,A 累加器送外部RAM单元(8位地址) 1 2 MOVX A ,@DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR ,A 累加器送外部RAM单元(16位地址) 1 2 MOVC A ,@A+DPTR 查表数据送累加器(DPTR为基址) 1 2 MOVC A ,@A+PC 查表数据送累加器(PC为基址) 1 2 XCH A ,Rn 累加器与寄存器交换 1 1XCH A ,@Ri 累加器与内部RAM单元交换 1 1XCHD A ,direct 累加器与直接寻址单元交换 2 1 XCHD A ,@Ri 累加器与内部RAM单元低4位交换 1 1 SWAP A 累加器高4位与低4位交换 1 1POP direct 栈顶弹出指令直接寻址单元 2 2PUSH direct 直接寻址单元压入栈顶 2 2二、算术运算类指令ADD A, Rn 累加器加寄存器 1 1ADD A,@Ri 累加器加内部RAM单元 1 1ADD A, direct 累加器加直接寻址单元 2 1ADD A, #data 累加器加立即数 2 1ADDC A, Rn 累加器加寄存器和进位标志 1 1ADDC A,@Ri 累加器加内部RAM单元和进位标志 1 1 ADDC A, #data 累加器加立即数和进位标志 2 1 ADDC A, direct 累加器加直接寻址单元和进位标志 2 1 INC A 累加器加1 1 1INC Rn 寄存器加1 1 1INC direct 直接寻址单元加1 2 1INC @Ri 内部RAM单元加1 1 1INC DPTR 数据指针加1 1 2DA A 十进制调整 1 1SUBB A, Rn 累加器减寄存器和进位标志 1 1SUBB A,@Ri 累加器减内部RAM单元和进位标志 1 1 SUBB A, #data 累加器减立即数和进位标志 2 1 SUBB A, direct 累加器减直接寻址单元和进位标志 2 1 DEC A 累加器减1 1 1DEC Rn 寄存器减1 1 1DEC @Ri 内部RAM单元减1 1 1DEC direct 直接寻址单元减1 2 1MUL AB 累加器乘寄存器B 1 4DIV AB 累加器除以寄存器B 1 4三、逻辑运算类指令ANL A, Rn 累加器与寄存器 1 1ANL A,@Ri 累加器与内部RAM单元 1 1ANL A, #data 累加器与立即数 2 1ANL A, direct 累加器与直接寻址单元 2 1ANL direct, A 直接寻址单元与累加器 2 1ANL direct, #data 直接寻址单元与立即数 3 1ORL A, Rn 累加器或寄存器 1 1ORL A,@Ri 累加器或内部RAM单元 1 1ORL A,#data 累加器或立即数 2 1ORL A,direct 累加器或直接寻址单元 2 1ORL direct, A 直接寻址单元或累加器 2 1ORL direct, #data 直接寻址单元或立即数 3 1XRL A, Rn 累加器异或寄存器 1 1XRL A,@Ri 累加器异或内部RAM单元 1 1XRL A,#data 累加器异或立即数 2 1XRL A,direct 累加器异或直接寻址单元 2 1XRL direct, A 直接寻址单元异或累加器 2 1XRL direct, #data 直接寻址单元异或立即数 3 2RL A 累加器左循环移位 1 1RLC A 累加器连进位标志左循环移位 1 1RR A 累加器右循环移位 1 1RRC A 累加器连进位标志右循环移位 1 1CPL A 累加器取反 1 1CLR A 累加器清零 1 1四、控制转移类指令类ACCALL addr11 2KB范围内绝对调用 2 2AJMP addr11 2KB范围内绝对转移 2 2LCALL addr16 2KB范围内长调用 3 2LJMP addr16 2KB范围内长转移 3 2SJMP rel 相对短转移 2 2JMP @A+DPTR 相对长转移 1 2RET 子程序返回 1 2RET1 中断返回 1 2JZ rel 累加器为零转移 2 2JNZ rel 累加器非零转移 2 2CJNE A ,#data ,rel 累加器与立即数不等转移 3 2 CJNE A ,direct ,rel 累加器与直接寻址单元不等转移 3 2 CJNE Rn,#data ,rel 寄存器与立即数不等转移 3 2 CJNE @Ri ,#data,rel RAM单元与立即数不等转移 3 2 DJNZ Rn ,rel 寄存器减1不为零转移 2 2DJNZ direct ,rel 直接寻址单元减1不为零转移 3 2 NOP 空操作 1 1五、布尔操作类指令(C表示进位标识)MOV C, bit 直接寻址位送C 2 1MOV bit, C C送直接寻址位 2 1CLR C C清零 1 1CLR bit 直接寻址位清零 2 1CPL C C取反 1 1CPL bit 直接寻址位取反 2 1SETB C C置位 1 1SETB bit 直接寻址位置位 2 1ANL C, bit C逻辑与直接寻址位 2 2 ANL C, /bit C逻辑与直接寻址位的反 2 2 ORL C, bit C逻辑或直接寻址位 2 2 ORL C, /bit C逻辑或直接寻址位的反 2 2 JC rel C为1转移 2 2JNC rel C为零转移 2 2JB bit,rel 直接寻址位为1转移 3 2JNB bit,rel 直接寻址为0转移。
C51指令表
)→))C51汇编伪指令:1、DS ---预留存储区命令格式:〔标号:〕DS 表达式值其功能是从指定地址开始,定义一个存储区,以备源程序使用。
存储区预留的存储单元数由表达式的值决定。
TMP: DS 1从标号TEP地址处开始保留1个存储单元(字节)。
2、BIT---定义位命令格式:字符名称BIT 位地址其功能用于给字符名称定义位地址。
SPK BIT P3.7经定义后,允许在指令中用SPK代替P3.7。
3、USING指令USING指令通知汇编器使用8051的哪一个工作寄存器组。
格式:USING 表达式(值必须为0-3,默认值为0。
)USING 0使用第0组工作寄存器。
4、SEGMENT指令SEGMENT 指令用来声明一个再定位段和一个可选的再定位类型。
格式:再定位段名SEGMENT 段类型〔再定位类型〕其中,“再定位段名”用于指明所声明的段。
“段类型”用于指定所声明的段将处的存储器地址空间。
可用的段类型有CODE、XDA TA、DA TA、IDA TA和BIT。
STACK_SEG SEGMENT IDA TADA TA_SEG SEGMENT DATA5、RSEG---再定位段选择指令再定位段选择指令为RSEG,用于选择一个已在前面定义过的再定位段作为当前段。
格式:RSEG 段名段名必须是在前面已经声明过的再定位段。
DA TA_SEG SEGMENT DATA ;声明一个再定位DATA段RSEG DATA_SEG ;选择前面声明的再定位DA TA段作为当前段6、绝对段选择指令CSEG---绝对代码段DSEG---内部绝对数据段XSEG---外部绝对数据段ISEG---内部间接寻址数据段BSEG---绝对位寻址数据段格式:CSEG [AT 绝对地址表达式]DSEG [AT 绝对地址表达式]XSEG [AT 绝对地址表达式]ISEG [AT 绝对地址表达式]BSEG [AT 绝对地址表达式]括号内是可选项,用来指定当前绝对段的基地址。
附录1 8051的指令列表_51单片机应用开发范例大全_[共4页]
附录1 8051的指令列表
为了便于查阅,现把8051的指令列表整理如下:
类
别
指令格式功能简述字节数周期
数据传送类指令MOV A,Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A,@Ri 内部RAM单元送累加器 1 1 MOV @Ri,A 累加器送内部RAM单元 1 1 MOV A,#data 立即数送累加器 2 1 MOV A,direct 直接寻址单元送累加器 2 1 MOV direct,A 累加器送直接寻址单元 2 1 MOV Rn,#data 立即数送寄存器 2 1 MOV direct,#data 立即数送直接寻址单元 3 2 MOV @Ri,#data 立即数送内部RAM单元 2 1 MOV direct,Rn 寄存器送直接寻址单元 2 2 MOV Rn,direct 直接寻址单元送寄存器 2 2 MOV direct,@Ri 内部RAM单元送直接寻址单元 2 2 MOV @Ri,direct 直接寻址单元送内部RAM单元 2 2 MOV direct2,direct1 直接寻址单元送直接寻址单元 3 2 MOV DPTR,#data16 16位立即数送数据指针 3 2 MOVX A,@Ri 外部RAM单元送累加器(8位地址) 1 2 MOVX @Ri,A 累加器送外部RAM单元(8位地址) 1 2 MOVX A,@DPTR 外部RAM单元送累加器(16位地址) 1 2 MOVX @DPTR,A 累加器送外部RAM单元(16位地址) 1 2 MOVC A,@A+DPTR 查表数据送累加器(DPTR为基址) 1 2 MOVC A,@A+PC 查表数据送累加器(PC为基址) 1 2。
汇编语言指令速查表
附录附录A 常用80x86指令速查表指令按助记符字母顺序排列,缩写、符号约定如下:(1) 指令中,dst, src表示目的操作数和源操作数。
仅一个操作数时,个别处也表示为opr。
(2) imm表示立即数,8/16/32位立即数记作:imm8/imm16/imm32。
(3) reg表示通用寄存器,8/16/32位通用寄存器记作:reg8/reg16/reg32。
(4) mem表示内存操作数,8/16/32等内存操作数记作:mem8/mem16/mem32等。
(5) seg表示段寄存器,CS, DS, SS, ES, FS, GS。
(6) acc表示累加器,8/16/32累加器对应AL/AX/EAX。
(7)OF, SF, ZF, AF, PF, CF分别表示为O, S, Z, A, P, C,相应位置为:字母,根据结果状态设置;?,状态不确定;-,状态不变;1,置1;0,清0;例如:0 S Z ? P -表示:OF清0,AF不确定,CF不变,其它根据结果设置。
若该栏空白,则表示无关。
(8)寄存器符号诸如(E)CX, (E)SI, (E)DI, (E)SP, (E)BP和(E)IP等,表示在16地址模式下使用16位寄存器(如CX),或在32地址模式下使用32位寄存器(如ECX)。
(9)周期数表示指令执行所需的CPU时钟周期个数,即执行时间为:周期数/主频(秒)。
(10)诸如(386+)是表示该指令只能用于80386及以后微处理器上。
·252·附录·253··254·附录·255··256·附录·257··258·附录·259·附录B 编程练习环境说明1. 编程练习软件包附带软件包x86ASM是在Microsoft的MASM 6.15软件包的基础上,加入CodeView、Win32的开发工具及Turbo C 2.0等,进行简单整理而成的,以便初学者编程练习使用。
8051汇编语言概述一 ) 指令分类 42个助记符,33种功能,共...
3-2-6 位寻址
位寻址的的操作数是RAM单元和特殊功能寄存器中可 用于位操作的位的地址。 例如: setb 40h ;将28h的最低位(第0位)臵1 mov c, 3fh ;将27h的最高位(第7位)送到CY mov 3fh , c ;将CY 送到27h的最高位(第7位) anl c, 3fh ;CY & (27h的第7位) -> CY
3-3-4 累加器交换指令
1) 字节交换指令XCH(3 条)
助记符格式
XCH A, Rn
机器码
11001rrrB
相应操作
A Rn
指令说明 机器周期
n=0~7 1 1
XCH A, direct 11000101B A (direct) direct
XCH A, ቤተ መጻሕፍቲ ባይዱRi
1100011iB data
相应操作
Rn ← A
指令说明
n=0~7, rrr=000~111
机器周期
1 1 1
10101rrr Rn←(direct) n=0~7, direct rrr=000~111 Rn←#data n=0~7, rrr=000~111
MOV Rn, #data 01111rrr data
注意:以上传送指令的结果均不影响程序状态字寄存器 PSW 的 P 和 Z 标志。
3-3-1 片内数据存储器传送指令MOV
片内数据存储器传送指令MOV 共17 条,指令基本格式: MOV <目的操作数>, <源操作数> 1)以累加器 A 为目的地址的传送指令(4 条)
助记符格式 MOV A, Rn MOV A, direct MOV A, @Ri MOV A, #data 机器码 11101rrrB 相应操作 A←Rn 指令说明 n=0~7, rrr=000~111 i=0,1 机器周期 1 1 1
8051单片机指令大全
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 累加器加114 INC Rn 寄存器加115 INC direct 直接地址单元加116 INC @Ri 间接RAM 单元加117 DEC A 累加器减118 DEC Rn 寄存器减119 DEC direct 直接地址单元减120 DEC @Rj 间接RAM 单元减121 INC DPTR 地址寄存器DPTR 加122 MUL AB A 乘以B 两个八位无符号数相乘结果高八位放在B 低八位放在A23 DIV AB A 除以B,结果整数部分放在A 余数放在B24 DA A 累加器十进制调整实现BCD运算执行仅对进位位产生影响布尔变量操作类指令: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 A为零转移10 JNZ rel ;A不等于0转移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 空操作PC->PC+1。
8051单片机常用指令
8051单⽚机常⽤指令3.2.1数据传送与交换类指令共有28条指令,包括以A,Rn,DPTR,直接地址单元,间接地址单元为⽬的的操作数的指令;访问外部RAM的指令;读程序存储器的指9.堆栈操作3.2 分类指令在介绍各条分类指令之前,将指令中的操作数及注释中的符号说明如下。
Rn:当前指定的⼯作寄存器组中的Ro-R7(其中n=0,1,2,…,7)。
Ri:当前指定的⼯作寄存器组中的RO,R1(其中i=0,1)。
(Ri):Ri间址寻址指定的地址单元。
((Ri)):Ri间址寻址指定地址单元中的内容。
dir:8位直接字节地址(在⽚内RAM和SFR存储空间中)。
#data8:8位⽴即数。
#datal6:16位⽴即数。
addrl6:16位地址值。
addrll:11位地址值。
bit:位地址(在位地址空间中)。
rel:相对偏移量(⼀字节补码数)。
下⾯介绍各条分类指令的主要功能和操作,详细的指令操作说明及机器码形式可见附录。
3.2.1数据传送与交换类指令共有28条指令,包括以A,Rn,DPTR,直接地址单元,间接地址单元为⽬的的操作数的指令;访问外部RAM的指令;读程序存储器的指令;数据交换指令以及准栈操作指令。
9.堆栈操作PUSH dir ;SP⼗1-6P,(dir)⼀(SP)POP dir ;((SP))⼀dir,SP-1--P ,例1 SP=07H,(35H)=55H,指令PUSH 35H执⾏后,55H送⼊08H地址单元,SP=08H。
例2 SP=13H,(13H)= 1FH,指令POP 25H执⾏后,1FH压⼊25H地址单元,SP此时为12H。
综合例把⽚内RAM中50H地址单元中的内容与40H地址单元中的内容互换。
⽅法⼀(直接地址传送法):MOV A ,50H数据传送与交换类指令是各类指令中数量最多、使⽤最频繁的⼀类指令,编程时应能⼗分熟练地灵活运⽤3.2.2算术运算类指令共有24条指令,主要包括加、减、乘、除、增量、减量和⼗进制调整等指令。
8051指令
附录3:MCS—51系列单片机的指令介绍MCS—51汇编语言共有111条指令,其中49条是单字节指令,45条是双字节指令。
在111条指令中,单周期指令64条,双周期指令45条,占用4个周期的指令2条。
关于MCS—51汇编语言指令,有大量书籍详细介绍,在此,以表格形式列出,注释简短而精练,便于读者查阅。
一些特殊符号的意义:在介绍指令系统前,我们先了解一些特殊符号的意义,这对今后程序的编写都是相当有用的。
●Rd:当前选中的寄存器区的8个工作寄存器R0~R7(d=0~7)。
●Ri:当前选中的寄存器区中可作为地址寄存器的两个寄存器R0和R1(i=0,1)。
●@:间接寄存器寻址或基址寄存器的前缀。
●M:内部数据存储单元的8位地址。
包含0~127(255)内部存储单元地址和特殊功能寄存地址。
●#n:指令中的8位常数。
●#n(16):指令中的16位常数。
●a(16):用于LCALL和LJMP指令中的16目的地地址,目的地址的空间为64kB程序存储器地址。
●a(11):用于ACALL和AJMP指令中的11目的地地址,目的地址必须放在与下条指令第一个字节同一个2kB程序存储器空间之中。
●r:8位带符号的偏移字节,用于所有的条件转移和SJMP等指令中,偏移字节对于下条指令的第一个字节开始的-128~+127范围内。
●b:内部RAM和特殊功能寄存器的直接寻址位。
1.数据传送指令数据传送指令共28条,可分为8位传送指令、16位传送指令和字节交换指令3类。
数据传送指令要点见表3。
表3 数据传送指令2.算术运算指令算术运算指令共24条,有加、减、乘、除、十进制调整5种操作,由7种操作助记符来描述,算术运算指令要点见表4。
表4 算术运算指令3.逻辑运算指令逻辑运算指令共25条,有逻辑与、或、异或、清零、取反、环移和半字节交换7种操作,由10种操作码助记符来描述。
逻辑运算指令要点见表5。
表5 逻辑运算指令4.位操作指令位操作指令共12条,有位传送、位变量更改、位变量逻辑与和位变量逻辑或4种操作,由6种操作码助记符来描述。
附录B 8051单片机指令表
2
1
XCH
A,Rn
P
1
1
XCH
A, @Ri
P
1
1
半字节交换指令
指
令
功
能
影 响 标 志
字 节
周 期
把A中的低半字节同以Ri 中的内容为地址的单元中 的低半字节相交换,高四位不变。(A)0~3←→((Ri))0~3 XCHD A, @Ri P 1 1
查表指令(从ROM中读取数据)
指 MOVC A, @A+DPTR
2
ADDC A, Rn
ADDC A, direct ADDC A, @Ri ADDC A, #data
A中的内容加上Rn中的内容再加上CY位的内容结果放 在A中。(A)←(A)+(Rn)+(CY)
A中的内容加上direct单元中的内容再加上CY位 的内容结果放在A中。(A)←(A)+(direct)+(CY) A中的内容加上以Ri中的内容为地址的单元内容,再加上 CY位,结果放在A中。(A)←(A)+((Ri))+(CY) A中的内容加上常数data再加上CY位,结果放在A中。 (A)←(A)+data+(CY)
令 远程查表指令
功
能
影 响 标 志 P
字 周 节 期
1
2
MOVC A, @A+PC
近程查表指令 P 1 2
累加器A与外部数据存储器传送数据 影 响 标 志 字 周 节 期
指
令
功
能
MOVX
A,@Ri
以Ri中的内容为地址的外部数据存储器单元中的内 容 送累加器A中。(A)←((Ri)) 以DPTR中的内容为地址的外部数据存储器单元中的 内容送累加器A中。(A)←((DPTR))
