MCS-C51的指令系统.ppt
《MCS-C51的指令系统.ppt》由会员分享,可在线阅读,更多相关《MCS-C51的指令系统.ppt(91页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 单片机原理及应用单片机原理及应用主主 讲:梁德胜讲:梁德胜联系方式:联系方式:办公地点:教五楼办公地点:教五楼 408室室 1/28/20231西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 常用的编程语言常用的编程语言1.机器语言机器语言 机器语言是用二进制代码表示的计算机能直接识别和执行机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。机器语言具有灵活、直接执行和的一种机器指令的集合。机器语言具有灵活、直接执行和速度快等特点。速度快等特点。用机器语言编写程序用机器语言编写程序,编程
2、人员要首先熟记所用计算机的编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时全部指令代码和代码的涵义。手编程序时,程序员得自己程序员得自己处理每条指令和每一数据的存储分配和输入输出处理每条指令和每一数据的存储分配和输入输出,还得记还得记住编程过程中每步所使用的工作单元处在何种状态。而且住编程过程中每步所使用的工作单元处在何种状态。而且,编出的程序全是些编出的程序全是些0和和1的指令代码的指令代码,直观性差直观性差,还容易出还容易出错。错。1/28/20232西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 2.汇编语言汇编语言 为了克服机器语言难读、难编、难记
3、和易出错的缺点为了克服机器语言难读、难编、难记和易出错的缺点,人们就用与代码指人们就用与代码指令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码令实际含义相近的英文缩写词、字母和数字等符号来取代指令代码,于是就产于是就产生了汇编语言。所以说生了汇编语言。所以说,汇编语言是一种用助记符表示的仍然面向机器的计算汇编语言是一种用助记符表示的仍然面向机器的计算机语言。汇编语言亦称符号语言。汇编语言由机语言。汇编语言亦称符号语言。汇编语言由 于是采用了助记符号来编写程于是采用了助记符号来编写程序序,比用机器语言的二进制代码编程要方便些比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过
4、程。在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对而且助记符与指令代码一一对应应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性器的特性,得到质量较高的程序。得到质量较高的程序。汇编语言中由于使用了助记符号汇编语言中由于使用了助记符号,计算机不能象用机器语言编写的程序计算机不能象用机器语言编写的程序一样直接识别和执行一样直接识别和执行,必须通过预先放入计算机的必须通过预先放入计算机的“汇编程序汇编程序“的加工和翻译的
5、加工和翻译,才能变成能够被计算机识别和处理的二进制代码程序。才能变成能够被计算机识别和处理的二进制代码程序。汇编语言像机器指令一样汇编语言像机器指令一样,是硬件操作的控制信息是硬件操作的控制信息,因而仍然是面向机器因而仍然是面向机器的语言的语言,使用起来还是比较繁琐费时使用起来还是比较繁琐费时,通用性也差。汇编语言是低级语言。但通用性也差。汇编语言是低级语言。但是是,汇编语言用来编制系统软件和过程控制软件汇编语言用来编制系统软件和过程控制软件,其目标程序占用内存空间少其目标程序占用内存空间少,运行速度快运行速度快,有着高级语言不可替代的用途。有着高级语言不可替代的用途。1/28/20233西安
6、理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 3.高级语言高级语言 不论是机器语言还是汇编语言都是面向硬件的具体操作的,不论是机器语言还是汇编语言都是面向硬件的具体操作的,语言对机器的过分依赖,要求使用者必须对硬件结构及其工作原语言对机器的过分依赖,要求使用者必须对硬件结构及其工作原理都十分熟悉。理都十分熟悉。高级语言是面向用户的语言。无论何种机型的计算机高级语言是面向用户的语言。无论何种机型的计算机,只要配只要配备上相应的高级语言的编译或解释程序备上相应的高级语言的编译或解释程序,则用该高级语言编写的则用该高级语言编写的程序就可以通用。程序就可以通用。计算机并不能直接地接受
7、和执行用高级语言编写的源程序计算机并不能直接地接受和执行用高级语言编写的源程序,源源程序在输入计算机时程序在输入计算机时,通过通过“翻译程序翻译程序”翻译成机器语言形式的翻译成机器语言形式的目标程序目标程序,计算机才能识别和执行。计算机才能识别和执行。每一种高级语言每一种高级语言,都有自己规定的专用符号、英文单词、语法都有自己规定的专用符号、英文单词、语法规则和语句结构。高级语言与自然语言更接近规则和语句结构。高级语言与自然语言更接近,而与硬件功能相而与硬件功能相分离分离,便于广大用户掌握和使用。高级语言的通用性强便于广大用户掌握和使用。高级语言的通用性强,兼容性好兼容性好,便于移植。便于移植
8、。1/28/20234西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 第第3 3章章 MCS-51 MCS-51指令系统指令系统 3.1 指令格式及常用符号指令格式及常用符号3.2 MCS-51的寻址方式的寻址方式 3.3 数据传送类指令(数据传送类指令(29条条)3.4 算术运算类指令(算术运算类指令(24条)条)3.5 逻辑运算与循环类指令(逻辑运算与循环类指令(24条)条)3.6 位操作类指令(位操作类指令(17条)条)3.7 控制转移类指令(控制转移类指令(17条)条)1/28/20235西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 3.1 指
9、令格式及常用符号指令格式及常用符号3.1.1 3.1.1 机器指令的机器指令的编码编码格式格式一、一、单单字字节节指令指令 1.8 1.8位位编码仅为编码仅为操作操作码码:如:如:INC A 该该指令的指令的编码为编码为:0000 0100B,其十六,其十六进进制表示制表示为为04H,累加器,累加器A隐隐含在操作含在操作码码中。指令的中。指令的功能是累加器功能是累加器A的内容加的内容加1。注意:在指令中用注意:在指令中用“A”表示累加器,而用表示累加器,而用 “ACC”表示累加器表示累加器对应对应的地址(的地址(E0H)。)。指令要指明指令要指明操作操作和和操操作对象作对象1/28/20236
10、西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 28位编码含有操作码和寄存器编码位编码含有操作码和寄存器编码高高5位位为为操操作作码码,低低3位位为为存存放放操操作作数数的的寄寄存存器器编码。如:编码。如:MOV A,R0 编编码码为为1110 1000B,其其十十六六进进制制表表示示为为E8H(低低3位位000为为寄寄存存器器R0的的编编码码)。功功能能是是将将当前工作寄存器当前工作寄存器R0中的数据传送到累加器中的数据传送到累加器A中。中。如何知道是哪一组寄存器?如何知道是哪一组寄存器?1/28/20237西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系
11、统 二、双字二、双字节节指令指令 第一字第一字节节表示操作表示操作码码,第二个字第二个字节节表示参表示参与操作的数据或数据存放的地址。与操作的数据或数据存放的地址。如:如:MOV A,#50H 编码编码为为0111 0100B,0101 0000B。其十六其十六进进制表示制表示为为74H,50H。功能功能是将立即是将立即数数“50H”传传送到累加器送到累加器A中。中。注意:指令中带注意:指令中带#的是立即数,不带的是立即数,不带#的是地址的是地址50H是存储在程是存储在程序区还是数序区还是数据区?据区?1/28/20238西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 三、
12、三字三、三字节节指令指令 指令的第一字指令的第一字节节表示表示该该指令的操作指令的操作码码,后后两个字两个字节节表示参与操作的数据或数据存放的地表示参与操作的数据或数据存放的地址。如:址。如:MOV 20HMOV 20H,#50H#50H 编码编码为为0111 0101B0111 0101B,0010 0000B0010 0000B,0101 0101 0000B0000B。其十六。其十六进进制表示制表示为为75H75H,20H20H,50H50H。功功能能是将立即数是将立即数“50H”“50H”传传送到内部送到内部RAM RAM 的的20H20H单单元元中中。如何知道是传输如何知道是传输到内
13、部到内部RAM中?中?1/28/20239西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 3.1.2 3.1.2 符号指令的格式符号指令的格式一般格式为:一般格式为:操作助记符操作助记符 目的操作数目的操作数,源操作数,源操作数;注;注释释 多数指令为两操作数指令多数指令为两操作数指令;当指令操作数隐;当指令操作数隐含在操作助记符中时,在形式上这种指令含在操作助记符中时,在形式上这种指令无操无操作数作数;另有一些指令为;另有一些指令为单操作数单操作数指令或指令或三操作三操作数数指令。指令的一般格式中使用了可选择符号指令。指令的一般格式中使用了可选择符号“”,包含的内容因指令
14、的不同可以有或无。,包含的内容因指令的不同可以有或无。在在两个操作数的指令中,通常目的操作数两个操作数的指令中,通常目的操作数 写在左边,源操作数写在右边写在左边,源操作数写在右边。1/28/202310西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 如:指令如:指令ANL A,40H 功能功能是将立即数是将立即数“40H”同累加器同累加器A中的数中的数进行进行“与与”操作,结果送回累加器。操作,结果送回累加器。ANL为为“与与”操作的助记符,立即数操作的助记符,立即数“40H”为源操作数,累加器为源操作数,累加器A为目的操作数。为目的操作数。注:在指令中,多数情况下累加器
15、用注:在指令中,多数情况下累加器用“A”表示,仅在直接寻址方式中,用表示,仅在直接寻址方式中,用“ACC”表示累表示累加器在加器在SFR区的具体地址区的具体地址E0H。试比较,指令试比较,指令MOV A,30H的机器码为的机器码为74H、30H;而指令;而指令MOV ACC,30H的机的机器码为器码为75H、E0H、30H。两个指令的执行效率两个指令的执行效率是不一样的前一个是不一样的前一个为单周期指令而后为单周期指令而后一个为双周期指令。一个为双周期指令。1/28/202311西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 3.1.3 3.1.3 符号指令及其注符号指令及
16、其注释释中常用的符号中常用的符号Rn(n=07)-当前选中的工作寄存器组中的当前选中的工作寄存器组中的寄存器寄存器R0R7之一;之一;Ri(i=0,1)-当前选中的工作寄存器组中的当前选中的工作寄存器组中的寄存器寄存器R0或或R1;-间址寄存器前缀;间址寄存器前缀;#data-8位立即数;位立即数;#data16-16位立即数;位立即数;direct-片内低片内低128个个RAM单元地址及单元地址及SFR地址(可用符号名称表示)地址(可用符号名称表示)1/28/202312西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 addr11-11位目的地址;位目的地址;addr16
17、-16位目的地址;位目的地址;rel-补码形式表示的补码形式表示的8位地址偏移量,值在位地址偏移量,值在128127范围内;范围内;bit-片内片内RAM位地址、位地址、SFR的位地址(可用符号名的位地址(可用符号名称表示);称表示);/-位操作数的取反操作前缀;位操作数的取反操作前缀;()-表示表示 地址单元或寄存器中的内容;地址单元或寄存器中的内容;()-表示以表示以 单元或寄存器内容为地址间接单元或寄存器内容为地址间接寻址单元的内容;寻址单元的内容;-将箭头右边的内容送入箭头左边的单元中。将箭头右边的内容送入箭头左边的单元中。1/28/202313西安理工大学课堂教学讲稿西安理工大学课堂
18、教学讲稿 指令系统指令系统 3.2 MCS-51的的寻寻址方式址方式寻址方式是寻找操作数或指令的地址的方式寻址方式是寻找操作数或指令的地址的方式。寻址方式包含两方面内容:一是操作数的寻址,二是寻址方式包含两方面内容:一是操作数的寻址,二是指令地址的寻址(如转移指令、调用指令)。指令地址的寻址(如转移指令、调用指令)。寻址方式有七种寻址方式有七种。即:寄存器寻址、直接寻址、寄存。即:寄存器寻址、直接寻址、寄存器间接寻址、立即寻址、基址寄存器加变址寄存器变器间接寻址、立即寻址、基址寄存器加变址寄存器变址寻址、相对寻址和位寻址址寻址、相对寻址和位寻址 对于两操作数指令,源操作数有寻址方式,目的操对于
19、两操作数指令,源操作数有寻址方式,目的操作数也有寻址方式。若不特别声明,我们后面提到的作数也有寻址方式。若不特别声明,我们后面提到的寻址方式均指寻址方式均指源操作数的寻址源操作数的寻址方式。方式。1/28/202314西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 1/28/202315西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 操作数存放在寄存器中,操作数存放在寄存器中,指令中直接给出该寄存器名称指令中直接给出该寄存器名称的寻址方式称为寄存器寻址。的寻址方式称为寄存器寻址。采用寄存器寻址可以获得较高采用寄存器寻址可以获得较高的传送和运算速度。的传送
20、和运算速度。寄存器可以是:寄存器可以是:R0R7;累加器累加器A(注:使用符号(注:使用符号ACC表示累加器时属于直接寻址);寄存器表示累加器时属于直接寻址);寄存器B(以(以A、B寄存器对寄存器对形式出现);数据指针形式出现);数据指针DPTR。3.2.1 3.2.1 寄存器寄存器寻寻址址如:MOV A,R0 1/28/202316西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 指令操作码之后的字节存放的是操作数的地址,指令操作码之后的字节存放的是操作数的地址,操作操作数本身存放在该地址指示的存储单元中数本身存放在该地址指示的存储单元中的寻址方式称为直的寻址方式称为直接寻
21、址。接寻址。在直接寻址方式中的在直接寻址方式中的SFR经常采用符号形式表示。经常采用符号形式表示。寻址空间为:寻址空间为:片内片内RAM低低128字节(以地址形式表示);字节(以地址形式表示);SFR(以地址或(以地址或SFR的符号形式表示的符号形式表示)。)。3.2.2 3.2.2 直接直接寻寻址址如:MOV A,50H 注:直接寻址是特殊功能寄存器唯一的访问方式注:直接寻址是特殊功能寄存器唯一的访问方式1/28/202317西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 寄存器中的内容为地址,从该地址去取操作数寄存器中的内容为地址,从该地址去取操作数的寻址方式称为寄存器
22、间接寻址的寻址方式称为寄存器间接寻址。寄存器间接寄存器间接寻址的存储空间寻址的存储空间为片内为片内RAM或片或片外外RAM。片内片内RAM的数据传送采用的数据传送采用“MOV”类指令,类指令,间接寻址寄间接寻址寄存器采用寄存器存器采用寄存器R0或或R1(堆栈操作时采用(堆栈操作时采用SP)。)。片外片外RAM的数据传送采用的数据传送采用“MOVX”类指令,这时间接寻类指令,这时间接寻址寄存器有两种选择,一是采用址寄存器有两种选择,一是采用R0和和R1作间址寄存器,这作间址寄存器,这时时R0或或R1提供低提供低8位地址(由位地址(由P2口提供高口提供高8位地址);二位地址);二是采用是采用DPT
23、R作为间址寄存器。作为间址寄存器。3.2.3 3.2.3 寄存器寄存器间间接接寻寻址址注意:访问片内片外注意:访问片内片外RAM的的MOV指令不同指令不同1/28/202318西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 寄存器间接寻址对应的空间为:寄存器间接寻址对应的空间为:片内片内RAM(采用(采用R0,R1或或SP););片外片外RAM(采用(采用R0,R1或或DPTR)。)。如:MOV A,R0 1/28/202319西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 指令编码中直接给出操作数指令编码中直接给出操作数的寻址方式称为立即寻址。的寻址方
24、式称为立即寻址。在这种寻址方式中,紧跟在操作码之后的操作数称为立即在这种寻址方式中,紧跟在操作码之后的操作数称为立即数。立即数可以为一个字节,也可以是两个字节,并要用数。立即数可以为一个字节,也可以是两个字节,并要用符号符号“”来标识。来标识。由于立即数是一个常数,所以只能作由于立即数是一个常数,所以只能作为源操作数。为源操作数。立即寻址所对应的立即寻址所对应的寻址空间寻址空间为:为:ROM 3.2.4 3.2.4 立即立即寻寻址址如:MOV A,50H 1/28/202320西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 以一个基地址加上一个偏移量地址形成操作数地址以一个
25、基地址加上一个偏移量地址形成操作数地址的的寻址方式称为变址寻址。在这种寻址方式中,以数据指针寻址方式称为变址寻址。在这种寻址方式中,以数据指针DPTR或程序计数器或程序计数器PC作为基址寄存器,累加器作为基址寄存器,累加器A作为偏移作为偏移量寄存器,基址寄存器的内容与偏移量寄存器的内容之和量寄存器,基址寄存器的内容与偏移量寄存器的内容之和作为操作数地址。作为操作数地址。变址寻址所对应的变址寻址所对应的寻址空间寻址空间为:为:ROM3.2.5 3.2.5 变变址址寻寻址址如:MOVC A,A+DPTR 1/28/202321西安理工大学课堂教学讲稿西安理工大学课堂教学讲稿 指令系统指令系统 相对
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS C51 指令系统
限制150内