目录

数据传送指令

一: 内部数据传送指令

1,立即寻址型传送指令

2,直接寻址型传送指令

3,寄存器寻址传送指令

4,寄存器间接寻址传送指令

二:外部数据传送指令

三: 堆栈操作指令

四:数据交换指令

五:程序存储器数据传送指令

算术运算指令

一:加法指令

1,不带Cy(Carry进位标志)的加法指令

2,带Cy(Carry进位标志)的加法指令, Cy用于保存低字节向高字节的进位

3,加1指令

4,十进制调整指令

二:减法指令

1,减法指令

2,减1指令

三:乘法指令和除法指令

1,单字节乘法指令

2,单字节除法指令

逻辑运算和移位运算指令

一:逻辑与指令,又叫逻辑乘指令

二:逻辑或指令,又叫逻辑加指令

三:逻辑异或指令,又叫半加指令

四:累加器清零与取反指令

五:移位指令

位操作指令

一:位传送指令

二:位置位/复位指令

三:位运算指令

控制转移指令

一:无条件转移指令

二:子程序调用与返回指令

1,调用指令,LCALL指令为长调用指令,ACALL绝对调用指令

2,子程序返回指令

三:条件转移指令

1,转移指令包括:A是否为零,2个字节数据是否相等,一个操作数减1后是否为零和一个bit的状态等

2,比较条件转移指令

3,减1条件转移指令

四:位控制转移指令

1,以Cy中内容为条件的转移指令

2,以位地址中的内容为条件的转移指令

五:空操作指令


数据传送指令

一: 内部数据传送指令

内部数据传送指令的源操作数和目的操作数都在单片机内部, 一般格式如下:
MOV 目的操作数, 源操作数       ;目的操作数<-源操作数,源操作数不变(相当于COPY)

1,立即寻址型传送指令

(1)MOV A,#data            ;(A)<-data
(2)MOV Rn,#data          ;(Rn)<-data
(3)MOV @Ri,#data       ;((Ri))<-data
(4)MOV direct,#data     ;(direct)<-data

2,直接寻址型传送指令

(1)MOV A,direct            ;(A)<-(direct)
(2)MOV direct,A            ;(direct)<-(A)
(3)MOV Rn,direct          ;(Rn)<-(direct)
(4)MOV @Ri,direct        ;((Ri))<-(direct)
(5)MOV direct2,direct1  ;(direct2)<-(direct1)

3,寄存器寻址传送指令

(1)MOV A,Rn              ;(A)<-(Rn)
(2)MOV Rn,A              ;(Rn)<-(A)
(3)MOV direct,Rn        ;(direct)<-(Rn)

4,寄存器间接寻址传送指令

(1)MOV A,@Ri             ;(A)<-((Ri))
(2)MOV @Ri,A             ;((Ri))<-((A))
(3)MOV direct,@Ri       ;(direct)<-((Ri))

二:外部数据传送指令

外部数据传送指令用于CPU存取外部数据存储器中的数据,数据传送及相关指令共6条,如下:

(1)MOV  DPTR,#data16   ;(DPTR)<-data16, DPTR中一般是外部数据存储器单元的地址,16位传送指令
(2)INC  DPTR                   ;(DPTR)<-(DPTR) + 1, 16位加法指令
(3)MOVX A,@DPTR        ;(A)<-((DPTR)),将DPTR指定的外部数据存储单元中数据存入A
(4)MOVX @DPTR,A        ;((DPTR))<-(A)
(5)MOVX A,@Ri               ;(A)<-((Ri))
(6)MOVX @Ri,A               ;((Ri))<-(A)

三: 堆栈操作指令

堆栈指令操作数只能采用直接寻址方式
(1)PUSH direct         ;进栈指令:(SP)<-(SP)+1,((SP))<-(direct)
(2)POP  direct          ;出栈指令:(direct)<-((SP)),(SP)<-(SP)-1

四:数据交换指令

数据交换指令用于A与寄存器或内部数据存储单元相互交换数据
(1)XCH A,Rn               ;(A)<->(Rn):字节(8bit)相互交换
(2)XCH A,direct           ;(A)<->(direct):字节(8bit)相互交换
(3)XCH A,@Ri             ;(A)<->((Ri)):字节(8bit)相互交换
(4)XCHD A,@Ri          ;(A.3~0)<->((Ri).3~0):半字节(低4bit)相互交换

五:程序存储器数据传送指令

查表指令采用变址寻址方式,以DTPR或PC作为基址,用来存放表格起始地址,以A作为偏移量。
(1)MOVC A,@A+DPTR      ;(A)<-((A)+(DPTR)),DTPR存放表格起始地址,A存放偏移量
(2)MOVC A,@A+PC           ;(PC)<-(PC)+1,(A)<-((A)+(PC)),PC存放表格起始地址,A存放偏移量

算术运算指令

一:加法指令

1,不带Cy(Carry进位标志)的加法指令

(1)ADD A,Rn              ;(A)<-(A)+(Rn)
(2)ADD A,direct         ;(A)<-(A)+(direct)
(3)ADD A,@Ri           ;(A)<-(A)+((Ri))
(4)ADD A,#data         ;(A)<-(A)+data

2,带Cy(Carry进位标志)的加法指令, Cy用于保存低字节向高字节的进位

(1)ADDC A,Rn              ;(A)<-(A)+(Rn)+(Cy)
(2)ADDC A,direct          ;(A)<-(A)+(direct)+(Cy)
(3)ADDC A,@Ri           ;(A)<-(A)+((Ri))+(Cy)
(4)ADDC A,#data         ;(A)<-(A)+data+(Cy)

3,加1指令

(1)INC A                  ;(A)<-(A)+1
(1)INC Rn                ;(Rn)<-(Rn)+1
(1)INC direct            ;(direct)<-(direct)+1
(1)INC @Ri              ;((Ri))<-((Ri))+1

4,十进制调整指令

十进制调整指令专门用于BCD码十进制加法运算
DA A

二:减法指令

1,减法指令

减法指令没有不带Cy(Carry)的减法指令
(1)SUBB A,Rn              ;(A)<-(A)-(Rn)-(Cy)
(2)SUBB A,direct          ;(A)<-(A)-(direct)-(Cy)
(3)SUBB A,@Ri           ;(A)<-(A)-((Ri))-(Cy)
(4)SUBB A,#data         ;(A)<-(A)-data-(Cy)

2,减1指令

(1)DEC A                  ;(A)<-(A)-1
(1)DEC Rn                ;(Rn)<-(Rn)-1
(1)DEC direct            ;(direct)<-(direct)-1
(1)DEC @Ri              ;((Ri))<-((Ri))-1

三:乘法指令和除法指令

1,单字节乘法指令

MUL AB                  ;(B)(A)<-(A)X(B),若积大于255,Cy被置1

2,单字节除法指令

DIV AB                  ;(A)[商]...(B)[余数]<-(A)/(B),Cy,OV被无条件清零

逻辑运算和移位运算指令

一:逻辑与指令,又叫逻辑乘指令

(1)ANL A,Rn             ;(A)<-(A)&(Rn)
(2)ANL A,direct         ;(A)<-(A)&(direct)
(3)ANL A,@Ri           ;(A)<-(A)&((Ri))
(4)ANL A,#data         ;(A)<-(A)&data
(5)ANL direct,A          ;(direct)<-(direct)&(A)
(6)ANL direct,#data    ;(direct)<-(direct)&data

二:逻辑或指令,又叫逻辑加指令

(1)ORL A,Rn             ;(A)<-(A)|(Rn)
(2)ORL A,direct         ;(A)<-(A)|(direct)
(3)ORL A,@Ri           ;(A)<-(A)|((Ri))
(4)ORL A,#data         ;(A)<-(A)|data
(5)ORL direct,A         ;(direct)<-(direct)|(A)
(6)ORL direct,#data    ;(direct)<-(direct)|data

三:逻辑异或指令,又叫半加指令

(1)XRL A,Rn              ;(A)<-(A)^(Rn)
(2)XRL A,direct          ;(A)<-(A)^(direct)
(3)XRL A,@Ri            ;(A)<-(A)^((Ri))
(4)XRL A,#data          ;(A)<-(A)^data
(5)XRL direct,A          ;(direct)<-(direct)^(A)
(6)XRL direct,#data    ;(direct)<-(direct)^data

四:累加器清零与取反指令

(1)CLR A               ;(A)<-0
(2)CPL A               ;(A)<-(~A), CPL是取反指令

五:移位指令

(1)RL A                  ;不带Cy左移,(b7)<-(b6)...(b1)<-(b0)<-(b7)
(2)RR A                 ;不带Cy右移,(b7)->(b6)...(b1)->(b0)->(b7)
(3)RLC A               ;带Cy左移,(Cy)<-(b7)<-(b6)...(b1)<-(b0)<-(Cy)
(4)RRC A              ;带Cy右移,(Cy)->(b7)->(b6)...(b1)->(b0)->(Cy)
(5)SWAP A           ;A的高4bit和低4bit互相交换

位操作指令

一:位传送指令

(1)MOV C,bit           ;(Cy)<-(bit)
(2)MOV bit,C           ;(bit)<-(Cy)

二:位置位/复位指令

(1)CLR C                 ;(Cy)<-0
(2)CLR bit               ;(bit)<-0
(3)SETB C              ;(Cy)<-1
(4)SETB bit             ;(bit)<-1

三:位运算指令

(1)ANL C,bit             ;(Cy)<-(Cy)&(bit)
(2)ANL C,(~bit)        ;(Cy)<-(Cy)&(~bit),(~bit)表示对bit取反
(3)ORL C,bit            ;(Cy)<-(Cy)|(bit)
(4)ORL C,(~bit)        ;(Cy)<-(Cy)|(~bit)
(5)CPL C                  ;(Cy)<-(~Cy)
(6)CPL bit                ;(bit)<-(~bit)

控制转移指令

一:无条件转移指令

(1)LJMP addr16         ;(PC)<-addr16,长转移指令
(2)AJMP addr11         ;(PC)<-(PC)+2,(PC10~0)<-addr11,绝对转移指令
(3)SJMP rel                ;(PC)<-(PC)+2,(PC)<-(PC)+rel,短转移指令
(4)JMP @A+DPTR    ;(PC)<-(A)+(DPTR),变址转移指令

二:子程序调用与返回指令

1,调用指令,LCALL指令为长调用指令,ACALL绝对调用指令

(1)LCALL addr16        ;(PC)<-(PC)+3
                                    ;(SP)<-(SP)+1,((SP))<-(PC7~0)
                                    ;(SP)<-(SP)+1,((SP))<-(PC15~8)
                                    ;(PC)<-addr16
(2)ACALL addr11        ;(PC)<-(PC)+2
                                    ;(SP)<-(SP)+1,((SP))<-(PC7~0)
                                    ;(SP)<-(SP)+1,((SP))<-(PC15~8)
                                    ;(PC10~0)<-addr11

2,子程序返回指令

RET                            ;(PC15~8)<-((SP));(SP)<-(SP)-1
                                    ;(PC7~0)<-((SP));(SP)<-(SP)-1

三:条件转移指令

1,转移指令包括:A是否为零,2个字节数据是否相等,一个操作数减1后是否为零和一个bit的状态等

(1)JZ rel              ;若(A)=0,则(PC)<-(PC)+2+rel:转移
                           ;若(A)!=0,则(PC)<-(PC)+2:继续执行下一条

(2)JNZ rel             ;若(A)!=0,则(PC)<-(PC)+2+rel:转移
                             ;若(A)=0,则(PC)<-(PC)+2:继续执行下一条

2,比较条件转移指令

(1)CJNE A,#data,rel    ;(A)=data,(PC)<-(PC)+3:继续执行下一条
                       ;(A)!=data,(PC)<-(PC)+3+rel:转移
                       ;设置Cy标志位
(2)CJNE A,direct,rel   ;(A)=(direct),(PC)<-(PC)+3:继续执行下一条
                       ;(A)!=(direct),(PC)<-(PC)+3+rel:转移
                       ;设置Cy标志位
(3)CJNE Rn,#data,rel   ;(Rn)=(direct),(PC)<-(PC)+3:继续执行下一条
                       ;(Rn)!=(direct),(PC)<-(PC)+3+rel:转移
                       ;设置Cy标志位
(4)CJNE @Ri,#data,rel  ;((Ri))=(direct),(PC)<-(PC)+3:继续执行下一条
                       ;((Ri))!=(direct),(PC)<-(PC)+3+rel:转移
                       ;设置Cy标志位

3,减1条件转移指令

(1)DJNZ Rn,rel         ;(Rn)<-(Rn)-1,若(Rn)!=0,则(PC)<-(PC)+2+rel:转移
                       ;若(Rn)=0,(PC)<-(PC)+2:继续执行下一条
(2)DJNZ direct,rel     ;(direct)<-(direct)-1,若(direct)!=0,则(PC)<-(PC)+3+rel:转移
                       ;若(direct)=0,(PC)<-(PC)+3:继续执行下一条

四:位控制转移指令

1,以Cy中内容为条件的转移指令

(1)JC rel              ;若(Cy)=1,则(PC)<-(PC)+2+rel:转移
                       ;若(Cy)=0,则(PC)<-(PC)+2:继续执行下一条
(2)JNC rel             ;若(Cy)=0,则(PC)<-(PC)+2+rel:转移
                       ;若(Cy)=1,则(PC)<-(PC)+2:继续执行下一条

2,以位地址中的内容为条件的转移指令

(1)JB bit,rel          ;若(bit)=1,则(PC)<-(PC)+3+rel:转移
                       ;若(bit)=0,则(PC)<-(PC)+3:继续执行下一条
(2)JNB bit,rel         ;若(bit)=0,则(PC)<-(PC)+3+rel:转移
                       ;若(bit)=1,则(PC)<-(PC)+3:继续执行下一条
(3)JBC bit,rel         ;若(bit)=1,则(bit)<-0,(PC)<-(PC)+3+rel:转移
                       ;若(bit)=0,则(PC)<-(PC)+3:继续执行下一条

五:空操作指令

NOP                    ;(PC)<-(PC)+1

MCS-51指令系统相关推荐

  1. MCS—51汇编语言程序

    ;计算C=A^2+B^2,B<=10 NUMA EQU 20H NUMB EQU 21H NUMC EQU 22HMOV A,NUMALCALL POWER2MOV R0,AMOV A,NUMB ...

  2. 基于51单片机的水温可测液体温度的控制器设计

    1 引言 1.1鸡舍温度控制系统设计的意义 随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度控制系统发展的主流方向.特别是近年来,温度控制系统已应用到人们生活的各个方面,但 ...

  3. 51单片机八位抢答器c语言设计,基于51单片机八路抢答器的设计

    基于51单片机八路抢答器的设计 毕业设计(论文)题 目:基于 51 单片机八路抢答器的设计 系 部: 专 业: 学 号: 学生姓名: 指导教师姓名: 指导教师职称: 2013 年 xx 月 xx 日X ...

  4. 计算机单片机原理考试题库,单片机原理及应用试题库-淮阴工学院

    MOV A, 20H MOVX DPTR, #2FFFH MOVX @DPTR, A 4.把DPTR的内容压入堆栈 PUSH DPH PUSH DPL 四.填写下表(每空2分,共10分) 指令 CLR ...

  5. C51单片机寻址方式

    所谓寻址方式, 就是寻找操作数地址的方式, 在用汇编语言编程时, 数据的存放.传送.运算都要通过指令来完成. 编程者必须自始至终都要十分清楚操作数的位置, 以及如何将它们传送到适当的寄存器去参与运算. ...

  6. 青岛理工大学微型计算机系统,青岛理工大学2012-2013年微型计算机技术试题a.docx...

    教师试做时间 60分分钟 出题教师 赵艳秋 取题时间 审核 教研室主任 出题单位 自动化学院 使用班级 电气10 1-4 考试日期 2011.12. 22 院(部)主任 考试成绩期望值 75 印刷份数 ...

  7. 毕设-基于单片机的声光电子琴

    目录 毕设-基于单片机的声光电子琴 一.作品展示 1.1.作品实物图 1.2.焊接布局图 1.3.PCB原理图 1.4.PCB图 二.设计流程 2.1.系统基本设计思路 2.1.1. 各部分说明 2. ...

  8. 51单片机学习随笔(1)

    51单片机感觉还是很好触摸的,二十多块买了一个最小系统板,一个keil uVision4,再有一个stc-isp就基本可以先简单的玩一玩学一学了.在学习过程中我遇到了一些问题,简单的记一下随笔. 一. ...

  9. 软件与计算机硬件加密,51单片机程序进行软件加密和硬件解密的方法

    由于固化在片外EPROM 里的单片机程序容易复制,所以,如不在技术上采取保护措施,则程序中所采用的处理方法易被他人分析仿制.对单片机程序进行加密是一种有效的保护措施,也是一项实用的技术.虽然本身带有E ...

  10. 10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10]

    10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10] 该系列主仓库地址:https://gitee.com/langcai1943/8051-from-boot-to-app ...

最新文章

  1. 【python练习】支付宝自动偷取能量
  2. richTextBoxFontClass
  3. 腾讯云服务器CentOS安装JDK+Tomcat+MySQL详细步骤(以及遇到的各种坑)
  4. python 重复执行任务_使用Python自动执行数字艺术家的重复任务
  5. 关于T-SQL中exists或者not exists子查询的“伪优化”的做法
  6. 用python编辑word_使用PYTHON编辑和读取WORD文档
  7. S32DS for PowrPC中对dcc编译器的支持
  8. 我是如何在GitHub上开源一个项目的(截图说明) (VS2010可以安装git插件)
  9. 【简单易上手】姓氏头像制作生成头像组合微信小程序源码下载
  10. 民国传奇女子——张爱玲
  11. Windows内核原理与实现之Windows设备驱动程序
  12. 腾讯互娱旗下工作室一览
  13. 230个形容人性格的英语词汇
  14. 保留三位有效数字,四舍六入五成双
  15. 京东2019春招编程题
  16. 苏轼《定风波》词两首
  17. array()、range() 和 arange()函数的区别和用法
  18. ...mapMutations的使用
  19. 以资深面试官的角度告诉大家面试前可以做的准备
  20. DS18B20数字温度传感器及单总线协议规定

热门文章

  1. OpenCV开发笔记(五十七):红胖子8分钟带你深入了解直方图反向投影(图文并茂+浅显易懂+程序源码)
  2. 免费好用的数据可视化软件工具
  3. VGG网络讲解——小白也能懂
  4. WK2124下linux驱动分析与移植
  5. word字体设置:如何为常用字体设置快捷键
  6. 头条限流是什么原因_今日头条限流吗 头条号限流是什么状态
  7. 小白学习HCIA2022
  8. 新浪大赚,阿里吃亏------剖析阿里巴巴入股新浪微博
  9. Java实现输出水仙花(易懂)
  10. SPM 3D医学图像配准