51单片机汇编指令速查表

合集下载

51单片机常用寄存器速查表

51单片机常用寄存器速查表

51单片机常用寄存器速查表一 : 定时器 / 计数器方式选择 : TMOD 地址 (89H) 不可位寻址D7 D6 D5 D4 D3 D2 D1 D0GATE C/T M1 M0 GATE C/T M1 M0 GATE : 门控制位 GATE="0" 时于外部中断无关 GATE="1" 时无外部中断才允许启动。

即( INT 0/1 = 1 时) C/T : 定时、计数方式选择位。

C/T=0 时为定时方式 C/T=1 时计数方式M1M0 : M0M1=00 时为方式 0 、 M1M0=10 时为方式 1 , M1M0=11 时为方式 3二 : 中断标志与中断控制寄存器 : TCON 地址( 88H )可位寻址D7 D6 D5 D4 D3 D2 D1 D0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TR1 、 TR0 是 T1 、 T0 的启动控制位,置 1 起动。

置 0 停止定时 / 计数器。

TF1 、 TF0 是 T1 、 T0 的溢出标志位,溢出时由硬件置 1 , CPU 响应中断后由硬件清0 软件查询时由软件清 0IT0 、 IT1 为外部中断 0 、 1 的触发控制位 IT0/1 = 0 时为电平触发= 1 时下降沿触发IE0 、 IE1 为外部中断 0 、 1 请求标志,当有中断信号时由硬件置 1 ,完成中断时由硬件清 0三 : 中断允许控制寄存器 : IE 地址( A8H )可位寻址D7 D6 D5 D4 D3 D2 D1 D0EA ――――――ES ET1 EX1 ET0 EX0EA : 总控位, EA="0" 时关所有中断。

EA="1" 时所有中断请求均被开放。

ES : 串行口, ES="1" 时开, ES="0" 时关串行中断ET1 、 ET0 定时计数= 1 时开= 0 时关 EX1 、 EX0 外部中断= 1 时开= 0 时关四 : 中断优先级控制寄存器 IP 地址 (B8H) 可位寻址D7 D6 D5 D4 D3 D2 D1 D0 ―――――――――PS PT1 PX1 PT0 PX0PS: 串口 PT1/0 定时 / 计数器 PX1/0 外部中断= 1 高优先= 0 低优先五 : 串行控制寄存器 SCON 地址 (98H) 可位寻址D7 D6 D5 D4 D3 D2 D1 D0SM0 SM1 SM2 REN TB8 RB8 TI RISM0/1 是串行工作方式选择位,共四种工作方式见表SM0 SM1 工作方式说明波特率0 0 方式 0 同步移位寄存器Fosc/120 1 方式 1 10 位异步收发由定时器控制1 0 方式2 11 位异步收发Fosc/32/641 1 方式 3 11 位异步收发由定时器控制SM2 : 是多机通信控制位,主要用于 2 和 3 。

MCS-51单片机指令简表

MCS-51单片机指令简表
类 指 令
算 术 运 算 类 指 令
算 术 运 算 类 指 令
04 08~0F 05 __ 06~07 A3 14 18~1F 16~17 15 __ A4 84 D4 58~5F 56~57 54 __ 55 __ 52 __ 53 __ __ 48~4F 46~47 44 __ 45 __ 42 __ 43 __ __ 68~6F 66~67 64 __ 65 __ 62 __ 63 __ __ 23 33 03 13 F4 E4 A2 __ 92 __ C3 C2 __ B3 B2 __ D3 D2 __ 82 __ B0 __
高四位 ↓ → 低四位 0 1 0 1 NOP JBC bit,rel AJMP0 ACALL0
(反汇编)
2 LJMP addr16 LCALL addr16 RET RETI ORL dir,A
3 RR A RRC A RL A RLC A ORL dir,#data ANL dir,#data XRL dir,#data
INC A INC Rn INC direct INC @Ri INC DPTR DEC A DEC Rn DEC @Ri DEC direct MUL AB DIV AB DA A ANL A, Rn ANL A, @Ri ANL A, #data ANL A, direct ANL direct, A ANL direct, #data ORL A, Rn ORL A,@Ri ORL A,#data ORL A,direct ORL direct, A ORL direct,#data XRL A, Rn XRL A,@Ri XRL A,#data XRL A,direct XRL direct, A XRL direct,#data RL A RLC A RR A RRC A CPL A CLR A MOV MOV CLR CLR CPL CPL SETB SETB ANL ANL C,bit bit,C C bit C bit C bit C,bit C,/ bit

51单片机汇编指令查询

51单片机汇编指令查询

===================数据传送=================== MOV A,Rn E8~EF 寄存器AMOV A,direct E5 dircet 直接字节送AMOV A,@Ri ER~E7 间接RAM送AMOV A,#data 74 data 立即数送AMOV 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送间接RAMMOV @Ri,#data 76~77 data 直接字节送间接RAMMOV @Ri,#data 76~77 data 立即数送间接RAMMOV DPTR,#data16 90 data 15~8 data7~0 16位常数送数据指针MOVC A,@A+DPTR 93 由((A)+(DPTR))寻址的程序存贮器字节选A MOVC A,@A+PC 83 由((A)+(PC));寻址的程序存贮器字节送A MOVX A,@Ri E2~E3 送外部数据(8位地址)送AMOVX A,@DPTR E0 送外部数据(16位地址)送AMOVX @Ri,A F2~F3 A送外部数据(8位地址)MOVX @DPTR,A F0 A送外部数据(16位地址)PUSH dircet C0 dircet 直接字节进栈,SP加1POP dircet D0 dircet 直接字节退栈,SP减1XCH A,Rn C8~CF 交换A和寄存器XCH A,dircet C5 dircet 交换A和直接字节XCH A,@Ri C6~C7 交换A和间接RAMXCH A,@Ri D6~D7 交换A和间接RAM的低位SWAP A C4===================算术运算=================== ADD A,Rn 28~2F 寄存器加到AADD A,dircet 25 dircet 直接字节加到AADD A,@Ri 26~27 间接RAM加到AADD A,#data 24data 立即数加到AADD A,Rn 38~3F 寄存器和进位位加到AADD A,dircet 35dircet 直接字节和进位位加到AADD A,@Ri 36~37 间接字节和进位位加到AADD A,data 34 data 立即数和进位位加到AADD A,Rn 98~9F A减去寄存器和进位位ADD A,dircet 95 dircet A减去直接字节和进位位ADD A,@Ri 36~37 间接RAM和进位位加到AADD A,data 34 data 立即数和进位位加到ASUBB 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加1INC Rn 08~0F 寄存器加1INC dircet 05 dircet 直接字节加1INC @Ri 06~07 间接RAM加1DEC A 14 A减1DEC Rn 18~1F 寄存器减1DEC dircet 15 dircet 直接字节减1DEC @Ri 16~17 间接RAM减1INC DPTR A3 数据指针加1MUL AB A4 A乘以BDIV AB 84 A除以BDA A D4 A的十进制加法调整===================逻辑操作=================== ANL A,Rn 58~5F 寄存器“与”到AANL A,dircet 55 dircet 直接字节“与”到AANL A,@Ri 56~57 间接RAm“与”到AANL A,#data 54 data 立即数“与”到AANL dircet A 52 dircet A“与”到直接字节ANL dircet,#data 53 dircet data 立即数“与”到直接字节ORL A,Rn 48~4F 寄存器“或”到AORL A,dircet 45 dircet 直接字节“或”到AORL A,@Ri 46~47 间接RAM“或”到AORL A,#data 44 data 立即数“或”到AORL dircet,A 42 dircet A“或”到直接字节ORL dircet,#data 43 dircet data 立即数“或”到直接字节XRL A,Rn 68~6F 寄存器“异或”到AXRL A,dircet 65 dircet 直接字节“异或”到AXRL A,@Ri 66~67 间接RAM“异或”到AXRL A,#data 64 data 立即数“异或”到AXRL 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 空操作===================布尔操作=================== 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相对转移,然后清零该位。

51指令速查表

51指令速查表
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
8051系列单片机汇编语言指令速查表
编号
指令名称
指令助记符
指令说明
数据传送类指令
1
一般传送
MOV A, #data
将立即数#data送累加器A
2
MOV direct, #data
将立即数#data送片内RAM direct地址单元内
3
Mov Rn,#data
将立即数#data送寄存器Rn
4
Mov @Ri, #data
将direct地址单元内的数据送累加器A
13
Mov direct, A
将累加器A内的数据送direct地址单元内
14
Mov A, @Ri
寄存器Ri内为RAM地址,将该地址单元内的数据送累加器A
15
Mov @Ri , A
寄存器Ri内为RAM地址,将累加器A的数据送该地址单元内
16
目的地址传@Ri
寄存器Ri内为RAM地址,将累加器A的值和该地址单元内的值进行与操作,结果保存到累加器A中
57
ANL A, #data
将累加器A的值和立即数进行与操作,结果保存到累加器A中
58
ANL direct, A
将累加器A的值和direct地址单元内的值进行与操作,结果保存到direct地址单元内

51单片机汇编指令速查表

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 2MOV @Ri ,direct 直接寻址单元送内部 RAM 单元 2 2MOV direct2,direct1 直接寻址单元送直接寻址单元3 2MOV DPTR ,#data16 16 位当即数送数据指针3 2MOVX A ,@Ri 外部 RAM 单元送累加器(8 位地址) 1 2MOVX @Ri ,A 累加器送外部 RAM 单元(8 位地址) 1 2MOVX A ,@DPTR 外部 RAM 单元送累加器(16 位地址) 1 2MOVX @DPTR ,A 累加器送外部 RAM 单元(16 位地址) 1 2MOVC A ,@A+DPTR 查表数据送累加器(DPTR 为基址) 1 2MOVC A ,@A+PC 查表数据送累加器(PC 为基址) 1 2XCH A ,Rn 累加器与寄放器互换1 1XCH A ,@Ri 累加器与内部RAM 单元互换 1 1XCHD A ,direct 累加器与直接寻址单元互换2 1XCHD A ,@Ri 累加器与内部 RAM 单元低 4 位互换1 1SW AP 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 1ADDC A, #data 累加器加当即数和进位标志 2 1ADDC A, direct 累加器加直接寻址单元和进位标志 2 1INC 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 1SUBB A, #data 累加器减当即数和进位标志2 1SUBB A, direct 累加器减直接寻址单元和进位标志2 1DEC 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 2CJNE A ,direct ,rel 累加器与直接寻址单元不等转移3 2CJNE Rn,#data ,rel 寄放器与当即数不等转移 3 2CJNE @Ri ,#data,rel RAM 单元与当即数不等转移3 2DJNZ Rn ,rel 寄放器减 1 不为零转移 2 2DJNZ direct ,rel 直接寻址单元减 1 不为零转移3 2NOP 空操作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 2ANL 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 2 JNB bit,rel 直接寻址为 0 转移。

单片机汇编语言指令查表

单片机汇编语言指令查表

目录表1 寻址方式与相应的寻址空间 (2)1.1数据传送指令MOV (2)1.2程序存储器取数据指令MOVX,MOVC (3)1.3 数据交换指令XCH,XCHD,SWAP (3)1.4 逻辑运算指令ANL,ORL(按位进行) (4)续表1.4 逻辑运算指令XRL CLR CPL RL RLC RR RRC(按位进行) (5)1.5 控制转移指令LJMP AJMP SJMP JMP JZ JNZ CJNE (6)续表1.5 控制转移指令DJNZ LCALL ACALL RET RETI NOP (7)1.6 布尔处理(位操作)指令CLR SETB CPL ANL ORL (8)续表1.6 布尔处理(位操作)指令JC JNC JB JNB JBC (9)1.7堆栈操作指令PUSH POP (10)2.MCS-51系列单片机算术运算指令表ADD ADDC SUBB INC DEC MUL DIV DA (10)表1 寻址方式与相应的寻址空间1.1数据传送指令MOV方式 利用的变量 使用的空间寄存器 R0∽R7,A ,B ,CY ,DPTR直接寻址 direct片内RAM 低128字节特殊功能寄存器SFR寄存器间址 @Ro ,@R1 SP @R0,@R1,@DPTR片内RAM 片外RAM立即数 #data程序存储器 基址加变址 @A+PC @A+DPTR程序存储器 相对寻址 PC+rel程序存储器位寻址bit片内RAM 的20H ∽2FH 部分SFR目的操作数汇编指令机器码功能字节数 机器周期A 累加器 立即数送AMOV A ,#data 74H data data 传至A 2 1 内部RAM 或SFR 内容送AMOV A ,direct E5H direct(direct)传至A2 1 寄存器内容送AMOV A ,Rn (n=0∽7) E8H ∽EFH 11101rrr (Rn)传至A 1 1 内部RAM 内容送A MOV A ,@Ri (i=0,1) 1110011i((Ri))传至A 1 1 Direct内部RAM 或SFR立即数送内部RAM 或SFR MOV direct ,#data 75H direct data data 传至direct 3 2 内部RAM 和SFR 直接直接传送 MOV direct ,direct 85H direct direct (direct)传至direct 3 2 累加器内容送内部RAM 或SFR MOV direct ,AF5H direct(A)传至direct 2 1 寄存器内容送内部RAM 或SFR MOV direct ,Rn (n=0∽7) 10001rrr direct (Rn)传至direct 2 2 内部RAM 内容送内部RAM 或SFRMOV direct ,@Ri (i=0,1) 1000011i direct ((Ri))传至direct 2 2 Rn 寄存器立即数送寄存器 MOV Rn,#data (n=0∽7) 01111rrr data data 传至Rn 2 1 内部RAM 或SFR 内容送寄存器MOV Rn,direct (n=0∽7) 10101rrr direct (direct)传至Rn 2 2 累加器内容送寄存器MOV Rn,A (n=0∽7) 11111rrr (A)传至Rn 1 2 @Ri 内部RAM立即数送内部RAMMOV @Ri,#data (i=0,1) 0111011i data data 传至(Ri) 2 1 内部RAM 或SFR 内容送内部RAMMOV @Ri,direct (i=0,1) 1010011i direct (direct)传至(Ri) 2 2 累加器内容送内部RAM MOV @Ri,A (i=0,1) 1111011i(A)传至(Ri) 1 1 DPTR 16位立即数传送指令MOV DPTR,#data1690H dataH dataLdata16传至DPTR321.2程序存储器取数据指令MOVX ,MOVC1.3 数据交换指令XCH ,XCHD ,SWAP目的操作数汇编指令机器码功能字节数 机器周期A 外部数据存储器内容送A MOVX A ,@Ri (i=0,1) E2H E3H ((Ri))传至A 1 2 A 外部数据存储器内容送A MOVX A ,@DPTR E0H ((DPTR))传至A 1 2 @Ri 累加器内容送外部数据存储器 MOVX @Ri,A (i=0,1) F2H ,F3H A 传至(Ri) 1 2 DPTR 累加器内容送外部数据存储器 MOVX @DPTR,A F0H A 传至(DPTR) 1 2 A 以PC 为基址寄存器加变址寻址 MOVC A,@A+PC 83H ((A)+(PC))传至A 1 2 A以DPTR 为基址寄存器加变址寻址MOVC A,@A+DPTR93H((A)+(DPTR))传至A12目的操作数指令机器码 功能字节数 机器周期 A 内部RAM 或SFR 内容与累加器内容互换 XCH A,directC5H direct (A)←(direct) 2 1 A 寄存器内容与累加器内容互换 XCH A,Rn (n=1-7) 11001rrr (A)←(Rn) 1 1 A 内部RAM 内容与累加器内容互换XCH A,@Ri (i=0,1) 1100011i (A)←((Ri))1 1 A 内部RAM 低4位内容与累加器低4位内容互换XCHD A,@Ri (i=0,1) 1101011i (A)0∽3←((Ri))0∽3 1 1 A累加器高4位与低4位交换SWAP AC4H(A)0∽3←(A)4∽7111.4 逻辑运算指令ANL,ORL(按位进行)目的操作数指令机器码功能字节数机器周期逻辑与ANLA内容∧立即数ANL A ,#data54H A←(A)∧#data 2 1 A内容∧内部RAM或SFR当direct为端口地址P0∽P3时,操作数由端口锁存器读入。

关于51单片机程序汇编的指令周期表

关于51单片机程序汇编的指令周期表

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、XDATA、DATA、IDATA和BIT。

STACK_SEG SEGMENT IDATADATA_SEG SEGMENT DATA5、RSEG---再定位段选择指令再定位段选择指令为RSEG,用于选择一个已在前面定义过的再定位段作为当前段。

格式: RSEG 段名段名必须是在前面已经声明过的再定位段。

DATA_SEG SEGMENT DATA ;声明一个再定位DATA段RSEG DATA_SEG ;选择前面声明的再定位DATA段作为当前段6、绝对段选择指令CSEG---绝对代码段DSEG---内部绝对数据段XSEG---外部绝对数据段ISEG---内部间接寻址数据段BSEG---绝对位寻址数据段格式:CSEG [AT 绝对地址表达式]DSEG [AT 绝对地址表达式]XSEG [AT 绝对地址表达式]ISEG [AT 绝对地址表达式]BSEG [AT 绝对地址表达式]括号内是可选项,用来指定当前绝对段的基地址。

51单片机指令速查

51单片机指令速查

51单片机速查指令AC|辅助进位。

程序状态寄存器PSW的D6位;当进行加(或减)法运算时.如果低半字节D3向高半字节进(或借)位ACALL|■ACALL addr11 子程序调用;地址11位;2字节2周期。

ACC|累加器AADD|■ADD A,#data 加法指令;data+A→A ■ADD A,direct ■ADD A,Rn ■ADD A,@Ri ADDC|■ADDC A,#data 带进位位的加法指令;data+A+C→A ■ADDC A,direct ■ADDC A,Rn ■ADDC A,@RiAJMP|■AJMP addr11 短转移指令;地址为11位;addr11→PC;2字节2周期。

ANL|■ANL A,direct 逻辑与操作指令;A∧(direct)→A ■ANL direct,#data ■ANL A,#data ■ANL A,Rn ■ANL direct,A ■ANL A,@Ri ■ANL C,bit 位逻辑运算;C∧bit→C ■ANL C,/bit 把指定位取反后再和CY执行与操作。

B|寄存器B,主要用于乘法和除法运算,也可以当作一般寄存器。

C|进位位CY,是程序状态寄存器PSW的D7位。

CJNE|■CJNE A,direct rel 条件转移指令;如果A≠(direct)则转移,即PC+rel→PC。

■CJNE A,#data rel ■CJNE Rn,#data,rel ■CJNE @Ri,#data relCLR|■CLR A 清零指令;00H→A ■CLR C ■CLR bitCPL|■CPL A 取反指令;累加器A中的内容按位取反。

■CPL C 把C取反。

■3) CPL bit 指定位取反。

DA|■DA A 这是BCD码调整指令;单字节单周期。

DB|定义字节伪指令DEC|■DEC A 减1指令;A-1→A ■DEC direct ■DEC @Ri ■DEC RnDIV|■DIV AB 除法指令;用A中的无符号数除B中的无符号数,商放在A中,余数放在B中。

关于51单片机程序汇编的指令周期表

关于51单片机程序汇编的指令周期表

关于51单片机程序汇编的指令周期表MOVXA, @Ri((Ri))→(A)寄存器Ri指向片外RAM地址中的内容送到累加器A中。

12 MOVX @Ri, A(A)→((Ri))累加器中的内容送到寄存器Ri指向片外RAM地址中。

12 MOVXA, @DPTR((DPTR))→(A)数据指针指向片外RAM地址中的内容送到累加器A中。

12 MOVX @DPTR, A(A)→((DPTR))累加器中的内容送到数据指针指向片外RAM地址中。

12 MOVCA, @A+DPTR((A))+(DPTR)→(A)表格地址单元中的内容送到累加器A中。

12MOVC A, @A+PC ((PC))+1→(A),((A))+(PC)→(A)表格地址单元中的内容送到累加器A中。

12算术运算类指令XCH A,Rn(A)←→(Rn)累加器与工作寄存器Rn中的内容互换。

11 XCHA, @Ri(A)←→((Ri))累加器与工作寄存器Ri所指的存储单元中的内容互换。

11 XCHD A,data(data)→(A)累加器A的内容与直接寻址单元的内容交换。

21 XCHDA, @Ri(A3-0)←→((Ri)3-0)累加器与工作寄存器Ri所指的存储单元中的内容低半字节互换。

11 SWAP A(A3-0)←→(A7-4)累加器中的内容高低半字节互换。

11 POPdata(SP)→(data)(SP)-1→(SP),堆栈指针SP所指的单元数据送到直接寻址单元中,堆栈指针SP再进行减1操作22 PUSHdata(SP)+1→(SP),(data)→(SP)堆栈指针首先加1,直接寻址单元中的数据送到堆栈指针SP所指的单元中22 ADD A,Rn(A)+(Rn)→(A)累加器A中的内容与工作寄存器Rn中的内容相加,结果存在A中。

11 ADDA, @Ri(A)+((Ri))→(A)累加器A中的内容与工作寄存器Ri所指向地址单元中的内容相加,结果存在A中。

51单片机汇编指令总结

51单片机汇编指令总结

51单片机汇编指令总结51单片机汇编指令总结数据传输指令一.片内RAM数据传输指令1.以累加器A为目的操作数的指令:MOVA,RnMOVA,directMOVA,@RiMOVA,#data2.以寄存器Rn为目的操作数的指令:MOVRn,AMOVRn,directMOVRn,data3.以直接地址为目的操作数的指令:MOVdirect,AMOVdirect,RnMOVdirect1,derect2MOVdirect,@RiMOVdirect,#data4.间接地址为目的操作数的指令:MOV@Ri,AMOV@Ri,directMOV@Ri,#data5.十六位数据传送指令:MOVDPTR,#data16二.累加器A与片外RAM数据传送指令:MOVXA,@RiMOVXA,@DPTRMOVX@Ri,AMOVX@DPTR,A三.查表寻址:MOVCA,@A+DPTR(先PC←(PC)+1,后A←((A)+(DPTR)))+MOVCA,@A+PC(先PC←(PC)+1,后A←((A)+(PC)))四.交换指令:1.字节交换指令:XCHA,RnXCHA,directXCHA,@Ri2.半字节交换指令:XCHDA,@Ri3.累加器半字节交换指令:SWAPA五.栈操作指令:1.PUSH(入栈指令)PUSHdirect2.POP(出栈指令)POPdirect算术运算指令:一.加法减法指令:1.加法指令:ADDA,RnADDA,directADDA,@RiADDA,#data2.带进位加法指令:ADDCA,RnA←(A)+(Rn)+CYADDCA,directA←(A)+(direct)+CYADDCA,@RiA←(A)+((Ri))+CYADDCA,#dataA←(A)+(data)+CY3.带借位减法指令:SUBBA,RnA←(A)-CY-(Rn)SUBBA,directA←(A)-CY-(direct)SUBBA,@RiA←(A)-CY-((Ri))SUBBA,#dataA←(A)-CY-#data二.乘法除法指令:1.乘法指令:MULABBA←(A)×(B)高字节放在B中,低字节放在A中2.除法指令:DIVABA←(A)÷(B)的商,(B)←(A)÷(B)的余数三.加1减1指令:1.加1指令:INCAA←(A)+1INCRnRn←(Rn)+1INCdirectdirect←(direct)+1INC@Ri(Ri)←((Ri))+1INCDPTRDPTR←(DPTR)+12.减1指令:DECADECRnDECdirectDEC@Ri四.十进制调制指令:DAA调整累加器A的内容为BCD码逻辑操作指令:一.逻辑与、或、异或指令:1.逻辑与指令:ANLA,RnANLA,directANLA,@RiANLA,#data2.逻辑或这令:ORLA,RnORLA,directORLA,@RiORLA,#dataORLdirect,AORLdirect,#data3.逻辑异或指令:XRLA,RnXRLA,directXRLA,@RiXRLA,#dataXRLdirect,AXRLdirect,#data二.清零、取反指令:1.累加器A清零指令:CRLA2.累加器A取反指令:CPLA三.循环位移指令:1.累加器A循环左移指令:RLA2.累加器A循环右移指令:RRA3.累加器A连同进位位循环左移指令:RLCA4.累加器A连同进位位循环右移指令:RRCA控制转移指令:一.无条件转移指令:1.绝对转移指令:AJMPaddr11(先PC+2,然后将addr11的低十位传给PC,PC的高六位不变)2.长转移指令:LJMPaddr16(用addr16的值替换PC的值)3.相对转移(短转移)指令:SJMPrel(带符号的偏移字节数)(PC+2,再加rel赋值给PC)4.间接转移指令:JMP@A+DPTR(A)+(DPTR)→(PC)二.条件转移指令:1.累加器判零转移指令:JZrel先PC+2;后判断,A为0时转移,PC+rel赋值给PC;否则顺序执行JNZrel先PC+2,后判断,A不为0时转移,PC+rel赋值给PC;否则顺序执行2.比较转移指令:CJNE目的操作数,源操作数,relCJNEA,direct,rel先PC+3传回PC,再比较目的操作数和原操作数CJNEA,#data,rel 目>源时,程序转移,PC+rel传回PC且CY=0CJNERn,#data,rel目=源时,程序顺序执行CJNE@Ri,#data,rel目ORLC,bitORLC,bit三.位清零、置一、取反指令:1.位清零指令:CLRCCLRbit2.位置一指令:SETBCSTEBbi3.位取反指令:CPLCCPLbit这类指令的功能执行的结果不影响标志位,当直接寻址位地址为端口P0~P3中的某一位时,具有“读-改-写”的功能。

51单片机查表指令

51单片机查表指令

51单片机查表指令根据存放在ROM中数据表格的项数来查找和它对应的表中值。

专门的查表指令:MOVC A,@A+DPTRMOVC A,@A+PC------------------------------------------------------------------------------------------MOVC A,@A+DPTR执行过程:查表前要把数据表格起始地址放入DPTR,然后把要求查表的项数折算成相对数据表地址的的偏移量送入累加器A最后使用MOVC A,@A+DPTR可实现64KB地址范围内的数据查询。

MOVC A,@A+PC执行过程:1:利用传送指令把所查数据表格的项数送入累加器A2:使用ADD A,#data指令对累加器A进行修正。

Data值的确定公式:PC+data=数据表起始地址DTAB其中PC是查表指令的下一条指令码的起始地址所以data值等于查表指令和数据表存放初始地址之间的字节数。

3:利用MOVC A,@A+PC来完成查表只能实现256字节范围内的数据查询例:查表程序已知BLOCK1为起始的数据块(数据块长度在LEN单元),数块中每个存储单元中的高,低4位分别是两个十六进制数,请编程把他们转换成相应的ASCII码,并存放在BLOCK2开始的连续存储单元(低四位ASCII 码在前,高四位ASCII码在后)程序实例:ORG1000HLEN DATA30H;块长度BLOCK1DATA31H;源起始位置BLOCK2DATA51H;目标起始位置MOV R0,#BLOCK1;BLOCK1送R0MOV R1,#BLOCK2;BLOCK2送R1MOVA,@R0;取源数据块的数ANL A,#0FH;取与运算,得到后四位ADD A,#11H;第一次地址调整0x11=1+1+1+2+2+1+1+1+1+1+3+2就是17个字节MOVCA,@A+PCMOV@R1,A;存放第一次转换结果1BMOV A,@R0;重新取出被转换数1BSWAP A;高低四位交换1BANL A,#0FH;取低四位2BADD A,#09H;9=1+1+1+1+3+22B;第二次地址调位置调整的算法。

51单片机-查表指令-课件

51单片机-查表指令-课件

此条指令的含义是将累加器A中的值与寄存器DPTR中的值 相加,相加后的结果是程序存储器ROM中的某个存储单元 的地址。将这个地址中的数据传送到A中保存起来。
二、查表程序格式
在使用时,将DPTR赋值为欲查数据表的首地 址,累加器A赋值为要查的数据,即可实现查 表功能,查得的数据保存在A中。通用格式如 下: MOV DPTR,#TABLE MOVC A,@A+DPTR ……(其他程序段) TABLE:DB ……(数据库)
把控制码建成一个表,而利用MOVC A,@ A+DPTR做取码的操作,就可方便地处理一 些复杂的控制动作
三、举例 4、流程图
三、举例 5、程序段 查表指令控制流水灯.txt
三、举例
④ 数据表(平方表)在ROM中存放的示意图: (注意:这里,标号 TABLE实际上是数据表 的首地址,它是一个具 体的值。只不过在这里, 用TABLE这个标号来 表示更为方便而已。)
三、举例
⑤程序执行情况分析: MOV R0,#2;待查2的平方,将R0赋值为2 MOV DPTR,#TABLE;将平方表的首地址送入DPTR中,假 设为1000H(标号为TABLE) MOV A,R0;A=R0=2 MOVC A,@A+DPTR;将A与DPTR相加,即1002H(TABLE+2),以该值为 地址,到ROM中相应单元去取数。程序中该单元的数据为4,正是2的平 方。 (显示程序段……) TABLE: DB 0,1,4,9,16,25
MOVC A,@A+PC MOVC A,@A+DPTR
MOVC—程序存储器ROM向累加器A传送数据的指令 A—累加器,用于保存临时数据 PC—程序计数指针,PC的值等于当前要执行的指令的存放地址(举例) DPTR—16位寄存器,在查表程序中,DPTR的值一般等于待查数据表的首 地址。 @—表示间接寻址方式。

51内核单片机 111条 指令查询 大全

51内核单片机 111条 指令查询 大全
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
8 ANL C,bit 进位位和直接地址位的反码相“与”
9 ORL C,bit 进位位和直接地址位相“或”
10 ORL C,bit 进位位和直接地址位的反码相“或”
11 MOV C,bit 直接地址位送入进位位
12 MOV bit,C 进位位送入直接地址位
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 累加器十进制调整
15 DJNZ Rn,rel 寄存器减1,非零转移
16 DJNZ direct,rel 直接地址单元减1,非零转移
17 NOP 空操作
记住指令表是学好单片机的第一步,也是重要一步.
3 RET 子程序返回
4 RETI 中数返回
5 AJMP addr11 绝对(短)转移
6 LJMP addr16 长转移
7 SJMP rel 相对转移
8 JMP @A+DPTR 相对于DPTR 的间接转移
9 JZ rel 累加器为零转移
16 MOV DRTR,#dat16 16 位立即数送入地址寄存器
17 MOVC A,@A+DPTR 以DPTR为基地址变址寻址单元中的数据送入累加器

51单片机汇编指令表

51单片机汇编指令表

A,direct 直接地址“与”到累加器 A,@Ri 间接RAM“与”到累加器 A,#data 立即数“与”到累加器 direct,A 累加器“与”到直接地址 direct, #data 立即数“与”到直接地址 A,Rn 寄存器“或”到累加器 A,direct 直接地址“或”到累加器 A,@Ri 间接RAM“或”到累加器 A,#data 立即数“或”到累加器 direct,A 累加器“或”到直接地址 direct, #data 立即数“或”到直接地址 A,Rn 寄存器“异或”到累加器 A,direct 直接地址“异或”到累加器 A,@Ri 间接RAM“异或”到累加器 A,#data 立即数“异或”到累加器 direct,A 累加器“异或”到直接地址 direct, #data 立即数“异或”到直接地址 A 累加器清零 A 累加器求反 A 累加器循环左移 A 带进位累加器循环左移 A 累加器循环右移 A 带进位累加器循环右移 A 累加器高、低4 位交换 (控制转移类指令) @A+DPTR 相对DPTR 的无条件间接转移 rel 累加器为0 则转移 rel 累加器为1 则转移 A,direct,rel 比较直接地址和累加器,不相等 A,#data,rel 比较立即数和累加器,不相等转 Rn,#data,rel 比较寄存器和立即数,不相等转 @Ri,#data,rel 比较立即数和间接RAM,不相等 Rn,rel 寄存器减1,不为0 则转移 direct,rel 直接地址减1,不为0 则转移 空操作,用于短暂延时 add11 绝对调用子程序 add16 长调用子程序 从子程序返回 从中断服务子程序返回 add11 无条件绝对转移 add16 无条件长转移 rel 无条件相对转移 (布尔指令) C 清进位位 bit 清直接寻址位 C 置位进位位 bit 置位直接寻址位 C 取反进位位 bit 取反直接寻址位 C,bit 直接寻址位“与”到进位位 C,/bit 直接寻址位的反码“与”到进 C,bit 直接寻址位“或”到进位位 C,/bit 直接寻址位的反码“或”到进 C,bit 直接寻址位传送到进位位 bit, C 进位位位传送到直接寻址 rel 如果进位位为1 则转移 rel 如果进位位为0 则转移

单片机指令表汇总

单片机指令表汇总

51单片机指令表汇总51单片机是一种广泛应用的微控制器,其指令集是进行编程的基础。

下面将51单片机的指令表进行汇总,以帮助初学者更好地理解其指令集。

一、数据传输指令1、MOV指令:将源操作数的内容传送到目标操作数。

2、XCH指令:将两个操作数的内容互换。

3、MOVC指令:从外部存储器将数据传送到目标操作数。

4、MOVX指令:将外部存储器中的数据传送到目标操作数。

5、PUSH指令:将数据压入堆栈。

6、POP指令:从堆栈中弹出数据。

二、算术运算指令1、ADD指令:将两个操作数相加,并将结果存放在目标操作数中。

2、SUB指令:从目标操作数中减去源操作数,并将结果存放在目标操作数中。

3、MUL指令:将两个操作数相乘,并将结果存放在目标操作数中。

4、DIV指令:将目标操作数除以源操作数,并将结果存放在目标操作数中。

5、ANL指令:对目标操作数和源操作数进行按位与运算,并将结果存放在目标操作数中。

6、ORL指令:对目标操作数和源操作数进行按位或运算,并将结果存放在目标操作数中。

7、XRL指令:对目标操作数和源操作数进行按位异或运算,并将结果存放在目标操作数中。

8、CPL指令:对目标操作数进行按位取反运算,并将结果存放在目标操作数中。

9、INC指令:将目标操作数加1。

10、DEC指令:将目标操作数减1。

11、ASR指令:将目标操作数右移n位,最高位用符号位补齐。

12、LSR指令:将目标操作数右移n位,最低位用0补齐。

13、ROL指令:将目标操作数循环左移n位,最高位移入最低位。

14、ROR指令:将目标操作数循环右移n位,最低位移入最高位。

单片机汇编指令表一、概述在单片机的世界里,汇编语言扮演着举足轻重的角色。

它是一种低级语言,能够直接与硬件进行交互,提供高效的代码执行效率。

下面,我们将详细列出一些常见的单片机汇编指令,以及它们的功能。

二、指令表1、MOV指令:用于将数据从一个寄存器移动到另一个寄存器。

例如,MOV R1, R2将把 R2的内容移动到 R1中。

51单片机指令表

51单片机指令表
பைடு நூலகம்
数据传输指令
字节 执行周期 MOVC A,@A+DPTR MOVC A,@A+PC MOVX A,@DPTR MOVX @DPTR,A MOVX A,@Ri MOVX @Ri,A MOV A,direct MOV direct,A MOV direct,#data8 MOV direct1,direct2 MOV A,Rn MOV Rn,A MOV Rn,direct MOV direct,Rn MOV Rn,#data MOV @Ri,A MOV A,@Ri MOV @Ri,#data MOV @Ri,direct MOV DPTR,#data XCH A,Rn XCH A,@Rn XCH A,direct XCHD A,@Rn SWAP A PUSH direct POP NOP direct 把A中的数据与DPTR中的数据相加,结果作为一个地址,把这个地址中的数据传送给A. 把A中的数据与PC中的数据相加,结果作为一个地址,把这个地址中的数据传送给A. 把DPTR(一个16位数据指针)指向的存储单元中的数据传送给A. 把A中的数据存储到DPTR(一个16位数据指针)指向的存储单元中。 把Ri(R0或R1)指向的存储单元中的数据传送给A. 把A中的数据存储到Ri(R0或R1)指向的存储单元中。 把存储器direct(一个128字节内部存储器,00H≤direct≤7FH一般表达为XXH)中的数据传送给A 把累加器A中的数据传送给存储器direct(一个128字节内部存储器,00H≤direct≤7FH一般表达为XXH) 把立即数#data8(是一个8位数据,00H≤#data≤0FFH)传送给存储器direct. 把存储器direct2中的数据传送给存储器direct1 把工作寄存器Rn(0≤Rn≤7)中的数据传送到累加器A. 把累加器A中的数据传送给工作寄存器Rn(0≤Rn≤7). 把存储器direct中的数据传送给工作寄存器Rn. 把工作寄存器Rn中的数据传送到存储器direct. 把立即数#data据传送给工作寄存器Rn.(0≤Rn≤7) 把A中的数据存储到Ri()指向的存储单元中. 把Ri(R0或R1)指向的存储单元中的数据传送到A中. 把立即数#data(是一个8位数据,00H≤#data≤0FFH)中的数据传送到Ri(R0或R1)指向的存储单元中. 把direct中的数据传送到Ri(R0或R1)指向的存储单元中. 把立即数#data赋值给DPTR(一个16位数据指针) 把当前工作寄存器Rn(0≤Rn≤7)中的数据与累加器A进行交换 把累加器A中的数据与由Rn(0≤Rn≤7)指定的内部寄存器进行数据交换. 把累加器A中的数据与内部寄存器direct(一个128字节内部存储器,00H≤direct≤7FH)进行数据交换. 把累加器A中的低4位数据与内部寄存器Rn中的低4位进行数据交换. 把累加器A中的低4位数据与高4位数据进行交换. 把存储器direct中的数据推入由堆栈指针SP指定的存储单元. 把栈区顶部存储单元中的数据弹出到存储器direct中. 空操作不产生任何结果。执行时占一个机器周期。 1 1 1 1 1 1 2 2 3 3 1 1 2 2 2 1 1 2 2 3 1 1 2 2 1 2 2 24 24 24 24 24 24 12 12 24 24 12 12 12 24 12 12 12 12 24 24 12 12 12 12 12 24 24

单片机汇编语言指令查表

单片机汇编语言指令查表

1.片内ram 数据传送指令表2.程序调用及返回指令表 类型 指令机器码 功能字节数 机器周期 长调用 Lcall addr16 12H addr16 (PC )+3传至PC ;(SP)+1传至SP ;PC 7~0传至(SP ) 32 绝对调用 Acall addr11 Addr 10~810001,addr 7~0(SP)+1传至SP,PC 15~8传至(SP);addr 15~0传至PC 2 2 子程序返回 ret 22H (PC )+2传至PC;SP)+1传至SP,PC 7~0传至(SP )1 2 中断返回reti32H(SP)+1传至SP,PC 15~8传至(SP);addr 10~0传至PC.(SP)传至PC 15~8,SP -1传至SP. (SP)传至PC 7~0,SP -1传至SP. (SP)传至PC 15~8,SP -1传至SP. (SP)传至PC 7~0,SP -1传至SP.1 23.无条件转移指令表 类型 指令 操作码 功能 字节数 机器周期 长转移 Ljmp addr16 02H addr16 Addr 15~03 2 绝对转移Ajmp addr11 Addr 10~80000(PC)+2传至PC;addr 10~0传至2 2目的操作数 汇编指令机器码功能机器周期 字节数 A mov A ,#data 74H data data 传至A 1 2 A mov A ,direct E5H direct (direct)传至A 1 2 A mov A ,Rn 11101rrr (Rn)传至A 1 1 Amov A ,@Ri1110011i((Ri))传至A 1 1 direct mov direct ,#data 75H direct data data 传至direct 2 3 direct mov direct ,direct 85H direct direct (direct)传至direct2 3 direct mov direct ,A F5H direct(A)传至direct 1 2 direct mov direct ,Rn 10001rrr direct (Rn)传至direct 2 2 direct mov direct ,@Ri 1000011i direct ((Ri))传至direct 2 2 Rn mov Rn,#data 01111rrr data data 传至Rn 1 2 Rn mov Rn,direct 10101rrr direct (direct)传至Rn 2 2 Rn mov Rn,A11111rrr(A)传至Rn 2 1 @Ri mov @Ri,#data 0111011i data data 传至(Ri) 1 2 @Ri mov @Ri,direct 1010011i direct (direct)传至(Ri) 2 2 @Ri mov @Ri,A1111011i(A)传至(Ri)1 1 dptrmov dptr,#data1690H dataH dataLdata16传至dptr231,addr7~0PC;PC15~11不变相对转移Sjmp rel 80H rel (PC)+2+rel传至PC 2 2 间接转移jmp@A+dptr 73H (A)+(dptr)传至PC 1 24.条件转移指令类型汇编指令操作码功能字节数机器周期A为零转移Jz rel 60H rel (PC)+2传至PC;(A)=0,则(PC)+rel传至PC2 2A非零转移Jnz rel 70H rel (PC)+2传至PC;(A)≠0,则(PC)+rel传至PC2 2比较转移CjneA,#data,relB4H data rel (A)≠data,转移 3 2CjneA,direct,rel B5H directrel(A)≠direct,转移 3 2CjneRn,#data,rel 10111rrrdata rel(Rn)≠data,转移 3 2Cjne@Ri,#data,re l 1011011idata rel((Ri))≠data,转移 3 2减1不为零转移Djnz Rn,rel 11011rrr rel (Rn)-1≠0,转移 2 2 Djnzdirect,relD5H directrel(direct)-1≠0,转移 3 25.位操作指令类型汇编指令机器码功能字节数机器周期位传送Mov C,bit A2H bit (bit)传至C 2 1 Mov bit,C 92H bit (C)传至bit 2 1 位清零Clr C C3H 00H传至C 1 1 Clr bit C2H bit 00H传至bit 2 1 位置位Setb C D3H 01H传至C 1 1 Setb bit D2H bit 01H传至bit 2位求反Cpl C B3H /(C)传至C 1 1 Cpl bit B2H bit /(bit)传至bit 2 1 位逻辑与Anl C,bit 82H (C)^(bit)传至C 2 2 Anl C,/bit B0H bit (C)^/(bit)传至C 2 2 位逻辑或Orl C,bit 72H bit (C)v(bit)传至C 2 2 Orl C,/bit A0H bit (C)v/(bit)传至C 2 2 判位转移Jc rel 40H rel (PC)+2传至PC若Cy=1,则(PC)+rel传至PC若Cy=0,顺序执行2 2Jnc rel 50H rel (PC)+2传至PC若Cy=0,则(PC)+rel传至PC若Cy=1,顺序执行2 2Jb bit,rel 20H bit rel (PC)+3传至PC若(bit)=1,则(PC)+rel传至PC若(bit)=0,顺序执行3 2Jnb bit,rel 30H bit rel (PC)+3传至PC若(bit)=0,则(PC)+rel传至PC若(bit)=1,顺序执行3 2Jbc bit,rel 10H bit rel (PC)+3传至PC若(bit)=1,则0传至(bit),(PC)+rel传至PC若(bit)=0,顺序执行3 26.循环移位指令类型汇编指令机器码功能字节数机器周期左移Rl A 23H A0移位至A7循环 1 1 带进位左移Rlc A 33H A0移位至A7溢出位进Cy溢出进A0循环1 1 右移Rr A 03H A7移位至A0循环 1 1 带进位右移Rrc A 13H A7移位至A0溢出位进Cy溢出进A7循环1 17.程序存储器取数据指令汇编指令机器码功能字节数机器周期Movc A,@A+PC 83H ((A)+(PC))传至A 1 2 Movc A,@A+dptr 93H ((A)+(dptr))传至A 1 2 Movx A,@Ri 1110001i ((Ri))传至A 1 2 Movx A,@dptr E0H ((dptr))传至A 1 2 Movx @Ri,A 1111001i (Ri)传至A 1 2 Movx @dptr,A F0H (dptr)传至A 1 28.堆栈操作指令类型汇编指令机器码功能字节数机器周期进栈Push direct C0H direct (SP)+1传至SP(direct)传至(SP)2 2出栈Pop direct DoH direct ((SP))传至direct(SP)-1传至SP2 29.数据交换指令指令机器码功能字节数机器周期Xch A,direct C5H direct (direct)传至(A) 2 1 Xch A,Rn 11001rrr (Rn)传至(A) 1 1 Xch A,@Ri 1100011i ((Ri))传至(A) 1 1 Xchd A,@Ri 1101011i ((Ri))0~3传至(A)0~3 1 1 Swap A C4H (A)4~7传至(A)0~3 1 110.MCS-51系列单片机算术运算指令表类型汇编指令机器码功能字节数机器周期不带进位加法指令Add A,#data 24H data (A)+data传至A 2 1 Add A,direct 25H data (A)+(direct)传至A 2 1 Add A,Rn 00101rrr (A)+Rn)传至A 1 1 Add A,@Ri 0010011i (A)+((Ri))传至A 1 1带进位加法指令Addc A,#data 34H data (A)+data+Cy传至A 2 1 AddcA.direct35H direct (A)+data+Cy传至A 2 1Addc A,Rn 00111rrr (A)+(Rn)+Cy传至A 1 1 Addc A,@Ri 0011011i (A)+((Ri))+Cy传至A 1 1减法指令Subb A,#data 94H data (A)-data-Cy传至A 2 2 SubbA,direct95H direct (A)-(direct)-Cy传至A 2 1 Subb A,Rn 10011rrr (A)-(Rn)-Cy传至A 1 1Subb A,@Ri 1001011i (A)-((Ri))-Cy传至A 1 1 加1指令Inc A 04H (A)+1传至A 1 1 Inc direct 05H direct (direct)+1传至A 2 1Inc Rn 00001H (Rn)+1传至A 1 1Inc @Ri 0000011i ((Ri))+1传至A 1 1Inc dptr A3H (dptr)+1传至A 1 2 减1指令Dec A 14H (A)-1传至A 1 1 Dec direct 15H direct (direct)-1传至A 2 1Dec Rn 00011rrr (Rn)-1传至A 1 1Dec @Ri 0001011i ((Ri))-1传至A 1 1 乘法指令Mul AB A4H (A)x(B)传至A 1 4 除法指令Div AB 84H (A)除以(B)传至A(商)B(余数) 1 4 调整指令Da A D4H 对加法的结果进行十进制调整 1 1 更多。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51单片机汇编指令速查表
指令格式功能简述字节数周期
一、数据传送类指令
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 XCH A ,Rn 累加器与寄存器交换 1 1
XCH A ,@Ri 累加器与内部RAM单元交换 1 1
XCHD A ,direct 累加器与直接寻址单元交换 2 1 XCHD A ,@Ri 累加器与内部RAM单元低4位交换 1 1 SWAP A 累加器高4位与低4位交换 1 1
POP direct 栈顶弹出指令直接寻址单元 2 2
PUSH direct 直接寻址单元压入栈顶 2 2
二、算术运算类指令
ADD A, Rn 累加器加寄存器 1 1
ADD A,@Ri 累加器加内部RAM单元 1 1
ADD A, direct 累加器加直接寻址单元 2 1
ADD A, #data 累加器加立即数 2 1
ADDC A, Rn 累加器加寄存器和进位标志 1 1
ADDC A,@Ri 累加器加内部RAM单元和进位标志 1 1 ADDC A, #data 累加器加立即数和进位标志 2 1 ADDC A, direct 累加器加直接寻址单元和进位标志 2 1 INC A 累加器加1 1 1
INC Rn 寄存器加1 1 1
INC direct 直接寻址单元加1 2 1
INC @Ri 内部RAM单元加1 1 1
INC DPTR 数据指针加1 1 2
DA A 十进制调整 1 1
SUBB A, Rn 累加器减寄存器和进位标志 1 1
SUBB A,@Ri 累加器减内部RAM单元和进位标志 1 1 SUBB A, #data 累加器减立即数和进位标志 2 1 SUBB A, direct 累加器减直接寻址单元和进位标志 2 1 DEC A 累加器减1 1 1
DEC Rn 寄存器减1 1 1
DEC @Ri 内部RAM单元减1 1 1
DEC direct 直接寻址单元减1 2 1
MUL AB 累加器乘寄存器B 1 4
DIV AB 累加器除以寄存器B 1 4
三、逻辑运算类指令
ANL A, Rn 累加器与寄存器 1 1
ANL A,@Ri 累加器与内部RAM单元 1 1
ANL A, #data 累加器与立即数 2 1
ANL A, direct 累加器与直接寻址单元 2 1
ANL direct, A 直接寻址单元与累加器 2 1
ANL direct, #data 直接寻址单元与立即数 3 1
ORL A, Rn 累加器或寄存器 1 1
ORL A,@Ri 累加器或内部RAM单元 1 1
ORL A,#data 累加器或立即数 2 1
ORL A,direct 累加器或直接寻址单元 2 1
ORL direct, A 直接寻址单元或累加器 2 1
ORL direct, #data 直接寻址单元或立即数 3 1
XRL A, Rn 累加器异或寄存器 1 1
XRL A,@Ri 累加器异或内部RAM单元 1 1
XRL A,#data 累加器异或立即数 2 1
XRL A,direct 累加器异或直接寻址单元 2 1
XRL direct, A 直接寻址单元异或累加器 2 1
XRL direct, #data 直接寻址单元异或立即数 3 2
RL A 累加器左循环移位 1 1
RLC A 累加器连进位标志左循环移位 1 1
RR A 累加器右循环移位 1 1
RRC A 累加器连进位标志右循环移位 1 1
CPL A 累加器取反 1 1
CLR A 累加器清零 1 1
四、控制转移类指令类
ACCALL addr11 2KB范围内绝对调用 2 2
AJMP addr11 2KB范围内绝对转移 2 2
LCALL addr16 2KB范围内长调用 3 2
LJMP addr16 2KB范围内长转移 3 2
SJMP rel 相对短转移 2 2
JMP @A+DPTR 相对长转移 1 2
RET 子程序返回 1 2
RET1 中断返回 1 2
JZ rel 累加器为零转移 2 2
JNZ rel 累加器非零转移 2 2
CJNE 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 2
DJNZ direct ,rel 直接寻址单元减1不为零转移 3 2 NOP 空操作 1 1
五、布尔操作类指令(C表示进位标识)
MOV C, bit 直接寻址位送C 2 1
MOV bit, C C送直接寻址位 2 1
CLR C C清零 1 1
CLR bit 直接寻址位清零 2 1
CPL C C取反 1 1
CPL bit 直接寻址位取反 2 1
SETB C C置位 1 1
SETB bit 直接寻址位置位 2 1
ANL 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 2
JNC rel C为零转移 2 2
JB bit,rel 直接寻址位为1转移 3 2
JNB bit,rel 直接寻址为0转移。

相关文档
最新文档