版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第3章 MSC-51单片机的指令系统总体要求:总体要求: 熟练掌握熟练掌握MCS-51MCS-51单片机汇编言语的指令格式单片机汇编言语的指令格式 熟练掌握熟练掌握MCS-51MCS-51单片机指令的寻址方式单片机指令的寻址方式 了解机器言语指令格式了解机器言语指令格式 掌握掌握MCS-51MCS-51指令系统的分类、符号商定和常指令系统的分类、符号商定和常用指令用指令 可以独立完本钱章作业可以独立完本钱章作业学习重点:学习重点: MCS-51 MCS-51单片机的指令格式和寻址方式单片机的指令格式和寻址方式 MCS-51 MCS-51指令系统中各条指令的助记符格式、指令系统中各条指令的助记
2、符格式、 功能等特性功能等特性第第3 3章章 MCS-51 MCS-51单片机的指令系统单片机的指令系统 第3章 MSC-51单片机的指令系统3.1 3.1 指令格式和寻址方式指令格式和寻址方式3.2 3.2 指令系统指令系统2 第3章 MSC-51单片机的指令系统3.1 3.1 指令格式和寻址方式指令格式和寻址方式3.1.1 3.1.1 指令格式指令格式 MCS-51 MCS-51单片机的指令和普通的微型单片机的指令和普通的微型计算机一样,具有两级方式:汇编言语计算机一样,具有两级方式:汇编言语级和机器言语级。对用户而言,主要运级和机器言语级。对用户而言,主要运用汇编言语来编写程序,然后由汇
3、编程用汇编言语来编写程序,然后由汇编程序机器汇编或手工汇编将汇编言语序机器汇编或手工汇编将汇编言语源程序翻译成二进制代码组成的机器言源程序翻译成二进制代码组成的机器言语程序。汇编言语的特点是对每一条指语程序。汇编言语的特点是对每一条指令都给出了助记符。由于助记符具有用令都给出了助记符。由于助记符具有用英文单词的缩写来描画指令的特征,因英文单词的缩写来描画指令的特征,因此它不但便于记忆,也便于了解和分类。此它不但便于记忆,也便于了解和分类。 第3章 MSC-51单片机的指令系统 1. 汇编言语指令格式 MCS-51单片机汇编言语指令格式为: 标号: 操作码 操作数 ;注释 各字段之间用规定的符号
4、隔开。方括号的部分为可选项。 例如:LOOP:MOV A,54H ;A54H 各字段的意义如下: 标号:标号给出了该指令位置的符号地址,即该指令机器代码存储单元的地址。它是以英文字母开场的由18个字母或数字组成的字符串,并以“:终了。 操作码:操作码部分给出了指令所实现的操作功能。操作码用助记符的方式给出。 第3章 MSC-51单片机的指令系统 操作数:操作数部分给出了指令中参与操作的对象。操操作数:操作数部分给出了指令中参与操作的对象。操作数普通分为目的操作数上例中累加器作数普通分为目的操作数上例中累加器A和源操作数上和源操作数上例中的例中的54H,两者之间用,两者之间用“,分隔。任何指令的
5、操作都,分隔。任何指令的操作都是实现是实现“从源操作数到目的操作数,因此,目的操作数和源从源操作数到目的操作数,因此,目的操作数和源操作数的书写顺序不能颠倒。需求指出的是:也有些指令根操作数的书写顺序不能颠倒。需求指出的是:也有些指令根据其功能只指明了一个操作数或不需求指明操作数。据其功能只指明了一个操作数或不需求指明操作数。 注释:注释部分是用户为方便阅读而加的注释。注释以注释:注释部分是用户为方便阅读而加的注释。注释以“;为开场。注释部分对汇编言语来讲可有可无,它不参与计为开场。注释部分对汇编言语来讲可有可无,它不参与计算机的操作,不影响指令的执行。算机的操作,不影响指令的执行。 例如:例
6、如: MOV A,00H ;将累加器清;将累加器清0 第3章 MSC-51单片机的指令系统 . 机器言语指令格式 机器言语指令是一种二进制码,包括操作码和操作数。操作码规定了该指令操作的性质,操作数那么阐明了操作的对象。MCS-51的指令系统有单字节、双字节和三字节这三种方式的指令,分别占有13个存储单元。 (1) 单字节指令:如 RETI对应的机器言语指令格式为: (2) 双字节指令: 如 MOV A,54H对应的机器言语指令格式为: 00110010B (32H) 操作码 01110100B (74H)操作码01010100B (54H)操作数 第3章 MSC-51单片机的指令系统 (3)
7、 三字节指令:如MOV 30H,54H对应的机器言语指令格式为:01110101 B (75H)操作码00110000 B (30H)目的操作数01010100B (54H)源操作数 单字节指令的操作码本身就隐含了操作数的信息;普通情况下,双字节指令的首字节为操作码,第二字节为操作数或操作数的地址;三字节指令的首字节为操作码,后面两个字节为操作数或操作数的地址。指令字节越多,所占内存单元越多,但执行时间的长短只取决于执行该指令需求多少个机器周期。 第3章 MSC-51单片机的指令系统3.1.2 3.1.2 寻址方式寻址方式 在指令系统中,操作数是一个重要的组成部分,它在指令系统中,操作数是一个
8、重要的组成部分,它指定了参与运算的数或数所在的地址单元。如何找到操指定了参与运算的数或数所在的地址单元。如何找到操作数地址的方式就称为寻址方式。寻址方式就是在规定作数地址的方式就称为寻址方式。寻址方式就是在规定的地址范围内如何灵敏地、方便地找到所需求的操作数的地址范围内如何灵敏地、方便地找到所需求的操作数地址。地址。 MCS-51 MCS-51单片机指令操作数或操作数地址主要有以下单片机指令操作数或操作数地址主要有以下7 7种寻址方式。种寻址方式。 第3章 MSC-51单片机的指令系统9 1. 立刻寻址 立刻寻址就是在指令中的操作数8位或16位,这个操作数称为立刻数。用符号“表示立刻数,以区别
9、直接地址。 例如:MOV A,3AH ;A3AH 功能:把3AH这个数送入累加器A中。 例如:MOV DPTR,0123H ;DPTR0123H 功能:将数据指针DPTR传送16位的立刻数,立刻数的高8位送入DPH中,低8位送入DPL中。此为三字节的指令,指令代码为90H、01H、23H。立刻寻址表示图如图3-1所示。 第3章 MSC-51单片机的指令系统 aMOV A,#3AH bMOV DPTR,#0123H 图3-1 立刻寻址表示图 第3章 MSC-51单片机的指令系统2. 2. 直接寻址直接寻址 直接寻址就是在指令中直接给出了操作数的地址。直接寻址就是在指令中直接给出了操作数的地址。提
10、供了访问内部数据存储器提供了访问内部数据存储器3 3种地址空间的方法:可以种地址空间的方法:可以访问内部访问内部RAM128RAM128个字节单元、个字节单元、221221个位地址空间以及特个位地址空间以及特殊功能存放器殊功能存放器SFRSFR,且,且SFRSFR和位地址空间只能用直接寻址和位地址空间只能用直接寻址的方式来访问。的方式来访问。 例如:例如:MOV AMOV A,70H70H;A(70H)A(70H) 功能:把片内功能:把片内RAM 70HRAM 70H单元的内容送入累加器单元的内容送入累加器A A中,中,图图3-23-2示。示。 第3章 MSC-51单片机的指令系统12图3-2
11、 直接寻址表示图 第3章 MSC-51单片机的指令系统3. 3. 存放器寻址存放器寻址 存放器寻址是在指令中指定某一存放器的内容为操存放器寻址是在指令中指定某一存放器的内容为操作数。对累加器作数。对累加器A A、通用存放器、通用存放器B B、数据指针存放器、数据指针存放器DPTRDPTR和进位位和进位位CYCY,其寻址时详细的存放器已隐含在其操作码,其寻址时详细的存放器已隐含在其操作码中,而对选定的中,而对选定的8 8个任务存放器个任务存放器R0R0R7R7那么用操作码的低那么用操作码的低三位指明所用的存放器。用户可用三位指明所用的存放器。用户可用PSWPSW中的中的RS1RS1、RS0RS0
12、来选来选择存放器组择存放器组 。 例如:例如:MOV AMOV A,R5R5;AR5AR5 功能:把功能:把R5R5中的内容设中的内容设R5R561H61H送入累加器送入累加器A A中。中。该指令执行过程如图该指令执行过程如图3-33-3所示。所示。 第3章 MSC-51单片机的指令系统图3-3 存放器寻址表示图 第3章 MSC-51单片机的指令系统 4. 存放器间接寻址 存放器间接寻址是把指令中指定的存放器的内容作为操作数的地址,把该地址单元的内容作为操作数。这种寻址方式用于访问内部RAM和外部RAM。可用来间接寻址的存放器有R0、R1、堆栈指针SP以及16位的数据指针DPTR,运用时前面加
13、符号表示间接寻址。 例如:MOV A,R1 ;A(R1) 其指令代码方式为11100111,十六进制为E7H,留意最低位为1,表示如今运用的存放器为 R1。现假设任务存放器为第0组,R1中存放的是75H。那么执行该指令过程如图3-4所示。 第3章 MSC-51单片机的指令系统图3-4 存放器间接寻址表示图 第3章 MSC-51单片机的指令系统 5. 变址寻址变址寻址变址寻址是以某个存放器的内容为基地址,然后在变址寻址是以某个存放器的内容为基地址,然后在这个基地址的根底上加上地址偏移量构成真正的操作数这个基地址的根底上加上地址偏移量构成真正的操作数地址地址MCS-51单片机可由单片机可由DPTR
14、或或PC作为基址存放器,作为基址存放器,由累加器由累加器A作为偏移量存放器。这种寻址方式常用于查作为偏移量存放器。这种寻址方式常用于查表操作。表操作。 例如:例如:MOVC A,A+DPTR ;A(A+DPTR) 功能:把功能:把DPTR中的内容和中的内容和A中的内容相加作为中的内容相加作为16位的位的程序存储器地址,再把该地址对应单元的内容送入累加程序存储器地址,再把该地址对应单元的内容送入累加器器A中。执行该指令过程如图中。执行该指令过程如图3-5所示。所示。17 第3章 MSC-51单片机的指令系统图3-5 变址寻址表示图 第3章 MSC-51单片机的指令系统6. 6. 相对寻址相对寻址
15、相对寻址用于转移指令的操作,将程序计数器相对寻址用于转移指令的操作,将程序计数器PCPC中中的当前值相对转移指令后的字节地址与指令第二字的当前值相对转移指令后的字节地址与指令第二字节给出的偏移量相加,将其结果作为转移指令的目的地节给出的偏移量相加,将其结果作为转移指令的目的地址。指令第二字节给出的偏移量有正负号,在指令中以址。指令第二字节给出的偏移量有正负号,在指令中以补码方式给出,转移的范围在补码方式给出,转移的范围在-128-128+127+127之间。之间。 例如;例如;JZ 30HJZ 30H ;A A0 0条件成立转移条件成立转移 功能:假设功能:假设A0A0,不跳转继续执行下一条指
16、令;假,不跳转继续执行下一条指令;假设设A A0 0,那么以,那么以PCPC中的当前值为基地址,加上偏移量中的当前值为基地址,加上偏移量30H30H后所得到的结果为该转移指令的目的地址,从而实现程后所得到的结果为该转移指令的目的地址,从而实现程序的转移。序的转移。 第3章 MSC-51单片机的指令系统 设该指令存放于0100H、0101H单元,取出指令后,PC当前值为0102H;对A进展判别,假设A0,那么PC内容与偏移量30H相加,得到转移目的地址0132H。故执行完该指令后,PC中的值为0132H,程序从0132H处开场执行。执行过程如图3-6所示。20 第3章 MSC-51单片机的指令系
17、统图3-6 相对寻址表示图 第3章 MSC-51单片机的指令系统 在实践任务中,有时要根据知源地址和目的地址计算偏移量rel。现以两字节相对转移指令为例讨论偏移量rel的计算。 正向跳转:rel目的地址-源地址-2地址差-2 目的地址小于源地址,rel用负数的补码表示。 反向跳转:rel(目的地址-源地址-2)补 (目的地址-(源地址+2) 第3章 MSC-51单片机的指令系统 7. 7. 位寻址位寻址位寻址是指对片内位寻址是指对片内RAMRAM的位寻址区和某些有位地址的的位寻址区和某些有位地址的特殊功能存放器进展位操作时的寻址方式。位地址与直特殊功能存放器进展位操作时的寻址方式。位地址与直接
18、寻址中的字节地址方式完全一样,主要由操作码来区接寻址中的字节地址方式完全一样,主要由操作码来区分。分。 例如:例如:MOV CMOV C,07H07H 功能:把内部功能:把内部RAM 20HRAM 20H单元的单元的D7D7位位地址为位位地址为07H07H的内容传到位累加器的内容传到位累加器C C即即CYCY中,其操作过程如图中,其操作过程如图3-73-7所示。所示。 23 第3章 MSC-51单片机的指令系统图3-7 位寻址表示图 第3章 MSC-51单片机的指令系统3.2 3.2 指令系统指令系统 MCS-51 MCS-51单片机共有单片机共有111111条指令,按字条指令,按字节数分类,
19、单字节指令节数分类,单字节指令4949条,双字节指令条,双字节指令4545条,三字节指令条,三字节指令1717条;按执行时间分类,条;按执行时间分类,单机器周期指令单机器周期指令6464条,双机器周期指令条,双机器周期指令4545条,只需乘法和除法指令占用四个机器周条,只需乘法和除法指令占用四个机器周期。假设系统时钟为期。假设系统时钟为12MHz12MHz,大多数指令,大多数指令执行时间仅需执行时间仅需1s1s;按功能分类可划分为;按功能分类可划分为五类:五类: (1) (1) 数据传送类指令数据传送类指令2828条;条; (2) (2) 算术运算类指令算术运算类指令2424条;条; (3)
20、(3) 逻辑操作类指令逻辑操作类指令2525条;条; (4) (4) 控制转移类指令控制转移类指令1717条;条; (5) (5) 位操作类指令位操作类指令1717条。条。 第3章 MSC-51单片机的指令系统在汇编言语指令中,商定采用以下符号: Rnn=17指定当前选中的任务存放器组中名为R0R7的任务存放器,被选中的任务存放器组由PSW中RS0、RS1确定。 Rii=0、1指定当前选中的任务存放器组中可作为地址指针的两个任务存放器R0、R1。 data 代表8位立刻数,包含在指令中的8位常数。 data16 代表16位立刻数,即包含在指令中的16位常数。 direct 代表8位片内RAM单
21、元的直接地址。 addr11 代表11位目的地址。用于ACALL 和AJMP指令中,目的地址必需在下一条指令第一个字节同一2K字节程序存储器地址空间内。 第3章 MSC-51单片机的指令系统 addr16 代表16位目的地址。用于LCALL和LJMP指令中,目的地址在64K程序存储器地址空间内。 rel 指定补码方式的8位地址偏移量。用于相对转移指令中,偏移量以下一条指令第一字节地址为基址,地址偏移量范围为-128+127。 bit 代表片内RAM或SFR可直接寻址的位地址。 间接寻址方式中,表示间址存放器的符号。 / 位操作指令中,表示先对该位求反再参与操作,但不影响该位原值。 () 表示由
22、所指地址单元中的内容。 指令操作流程,将箭头右边的内容送到箭头左边的单元中。 $ 指本条指令的起始地址 第3章 MSC-51单片机的指令系统3.2.1 3.2.1 数据传送类指令数据传送类指令 传送类指令主要用于数据传送、保管以及交换等传送类指令主要用于数据传送、保管以及交换等场所。场所。 数据传送指令除经过累加器进展数据传送之外,还可数据传送指令除经过累加器进展数据传送之外,还可以是数据存储器之间或任务存放器与数据存储器之间进展以是数据存储器之间或任务存放器与数据存储器之间进展数据传送。它普通是把源操数传送到目的操作数,指令执数据传送。它普通是把源操数传送到目的操作数,指令执行后源操作数不变
23、,目的操作数修正为源操作数。此类指行后源操作数不变,目的操作数修正为源操作数。此类指令普通不影响标志位,只需堆栈操作可以直接修正程序形令普通不影响标志位,只需堆栈操作可以直接修正程序形状字状字PSWPSW。另外,对目的操作数为累加器。另外,对目的操作数为累加器A A的指令将影响奇的指令将影响奇偶标志偶标志P P位。位。 数据传送类指令用到的助记符有数据传送类指令用到的助记符有MOVMOV、MOVCMOVC、MOVXMOVX、XCHXCH、XCHDXCHD、SWAPSWAP、PUSHPUSH、POPPOP共共8 8种。源操作数可以种。源操作数可以采用存放器、存放器间接、直接、立刻、变址采用存放器
24、、存放器间接、直接、立刻、变址5 5种寻址方式,种寻址方式,目的操作数采用前三种寻址方式。目的操作数采用前三种寻址方式。 第3章 MSC-51单片机的指令系统1. 对内部RAM和SFR的普通数据传送指令15条 (1) 以累加器A为目的操作数的指令4条 功能:把源操作数指定的内容送入累加器A中。运用存放器寻址、直接寻址、存放器间接寻址和立刻寻址4种寻址方式。 MOV A,Rn ;ARn MOV A,direct ; A(direct) MOV A,Ri ; A(Ri) MOV A,data ; Adata 第3章 MSC-51单片机的指令系统 (2) 以存放器Rn为目的操作数的指令3条 功能:把
25、源操作数指定的内容送到所选定的任务存放器Rn中。运用存放器寻址、直接寻址和立刻寻址3种寻址方式。 MOV Rn ,A ; RnA MOV Rn ,direct ; Rn(direct ) MOV Rn ,data ; Rndata 第3章 MSC-51单片机的指令系统 (3) 以直接地址为目的操作数的指令5条 功能:把源操作数指定的内容送到由直接地址direct所指定的片内RAM中。运用存放器、直接、存放器间接和立刻4种寻址方式。 MOV direct,A ;(direct) A MOV direct,Rn ;(direct )Rn MOV direct1,direct2 ;(direct1)
26、(direct2) MOV direct, Ri ; (direct) (Ri) MOV direct,data ; (direct) data 第3章 MSC-51单片机的指令系统 (4) 以间接地址为目的操作数的指令3条 功能:把源操作数指定的内容送到以Ri中的内容为地址的片内RAM中。运用存放器、直接和立刻3种寻址方式。 MOV Ri,A ;(Ri)A MOV Ri,direct ;(Ri)(direct) MOV Ri,# data ;(Ri)data 第3章 MSC-51单片机的指令系统例3.1 利用直接寻址把立刻数32H送到内部RAM的20H单元。 MOV 20H,32H 例3.2
27、 利用存放器间接寻址把立刻数32H送入内部RAM的20H单元。 MOV R0,20H MOV R0,32H 例3.3 利用直接寻址把P1口的内容传送到P3口。 MOV P3,P1 例3.4 利用存放器间接寻址把累加器A的内容传送到外部数据存储器4000H单元。 MOV DPTR,4000H MOVX DPTR,A 第3章 MSC-51单片机的指令系统2. 累加器与程序存储器的传送指令2条 功能:对存放于程序存储器中的表格数据进展查找传送。运用变址寻址方式。MOVC A,A+DPTR ;A(A+DPTR)MOVC A,A+PC ;A(A+PC) 3. 累加器与片外RAM传送指令4条功能:累加器A
28、与片外RAM间的相互传送。片外扩展的I/O口与片外RAM是一致编址的,故以下4条指令也可以作为输入/输出指令。其运用存放器间接寻址方式。MOVX A, DPTR ;A(DPTR) 或读I/O线MOVX DPTR,A ;(DPTR)A 或写I/O线MOVX A,Ri ; A (Ri) 或读I/O线MOVX Ri,A ;(Ri) A 或写I/O线 第3章 MSC-51单片机的指令系统4. 堆栈操作类指令2条 功能:把直接寻址单元的内容传送到堆栈指针SP所指的单元中,以及把SP所指单元的内容送到直接寻址单元。 PUSH direct ; SPSP+1 (SP)(direct) POP direct
29、; SPSP-1 (direct)(SP) 前一条指令称为入栈指令,后一条指令称为出栈指令,51机复位后,(SP)=07H,为防止与任务存放器组发生冲突,普通需重新设定SP的初始值。由于压入堆栈的第一个数必需存放在SP+1所指存储单元,故实践的栈底为SP+1所指存储单元。 第3章 MSC-51单片机的指令系统 例3.5 设(10H)01H,(20H)1AH。将内部RAM 10H与20H单元的内容交换。 MOVSP,30H PUSH10H ;10H单元内容进栈 PUSH20H ;20H单元内容进栈 POP10H ;将栈顶元素弹出,送往10H单元 POP20H ;下一个元素出栈,送20H 单元 执
30、行结果:(10H)1AH,(20H)01H 第3章 MSC-51单片机的指令系统 例3.6 根据累加器A中的数(09)查平方表的子程序。 COUNT:PUSHDPH;维护DPTR内容 PUSHDPL MOVDPTR,TABLE ;赋表首址 MOVCA,A+DPTR ;查表并传送给A POPDPL;恢复DPTR原值 POPDPH RET;前往主程序控制 TABLE:DB 00,01,04,09,16,25 DB 36,49,64,81 第3章 MSC-51单片机的指令系统 5. 交换指令4条 功能:把累加器A中的内容与源操作数所指出的数据相互交换。运用存放器、直接和存放器间接3种寻址方式。 XC
31、HA,Rn ;ARn XCHA,direct ;A(direct ) XCHA,Ri ;A(Ri) XCHDA,Ri ;A30(Ri)30 6. 16位数据传送类指令1条 MOV DPTR,data16 功能:把16位常数送入数据指针存放器。运用立刻寻址方式。译成机器码时,高位字节在前,低位字节在后。 第3章 MSC-51单片机的指令系统3.2.2 3.2.2 算术运算类指令算术运算类指令算术运算类指令主要完成加、减、乘、除四那么运算,算术运算类指令主要完成加、减、乘、除四那么运算,以及加以及加1 1、减、减1 1和和BCDBCD码的运算、调整等。除加码的运算、调整等。除加1 1、减、减1 1
32、运算外,运算外,这类指令大多数都要影响到程序形状字存放器这类指令大多数都要影响到程序形状字存放器PSWPSW。虽然算术逻辑单元虽然算术逻辑单元ALUALU仅能对仅能对8 8位无符号整数进展运算,但位无符号整数进展运算,但利用进位标志利用进位标志CYCY,可进展多字节无符号整数的运算;利用,可进展多字节无符号整数的运算;利用溢出标志,还可方便地对带符号数进展补码运算。算术运溢出标志,还可方便地对带符号数进展补码运算。算术运算类指令用到的助记符有:算类指令用到的助记符有:ADDADD、ADDCADDC、SUBBSUBB、INCINC、DECDEC、DADA、MULMUL和和DIVDIV八种。八种。
33、 第3章 MSC-51单片机的指令系统40 1. 加法指令4条 ADD A,data ;AA+data ADD A,direct ;AA +(direct) ADD A,Ri ;AA+(Ri) ADD A,Rn ;AA+Rn 以上指令把立刻数、直接地址、间接地址以及任务存放器的内容与累加器A中内容相加,结果送入A中。 第3章 MSC-51单片机的指令系统 例3.7 A0C3H,R00AAH,执行ADD A,R0指令,那么操作如下: 11000011 ) 10101010 101101101 运算后,CY1,OV1,AC0,P1,A6DH。 上例中假设C3H和AAH看作无符号数相加,那么不思索溢
34、出,结果为15DH;假设把C3H和AAH看作有符号数,那么得到2个负数相加得正数的错误结论,此时OV1,表示出错。 第3章 MSC-51单片机的指令系统 2. 带进位加法指令4条 ADDC A,data ;AA+data+CY ADDC A,direct ;AA+(direct)+CY ADDC A,Ri ;AA+(Ri)+CY ADDC A,Rn ;AA+Rn+CY 以上指令除了需思索进位位外,和前面的普通加法指令完全一样。 第3章 MSC-51单片机的指令系统 例3.8 A0AEH,R081H,CY1,执行 ADDC A,R0指令,那么操作如下: 10101110 10000001 ) 1
35、 100110000 运算后,CY=1,OV=1,AC=1,P=0,A=30H。 第3章 MSC-51单片机的指令系统44 例3.9 利用ADDC指令进展双字节加法运算。 设在双字节加法运算中,被加数存放在30H、31H单元,加数放在40H、41H单元,和存放到50H、51H单元,编程如下: MOV A,30H ;取低字节被加数 ADD A,40H ;低位字节相加 MOV 50H,A ;结果送50H单元 MOV A,31H ;取高字节被加数 ADDC A,41H ;加高字节和低位来的进位 MOV 51H,A ;结果送51H单元 第3章 MSC-51单片机的指令系统 3. 3. 带借位减法指令带
36、借位减法指令4 4条条 SUBB A SUBB A,data data ;AA-data-CYAA-data-CY SUBB A SUBB A,direct direct ;AA-(direct)-CYAA-(direct)-CY SUBB A SUBB A,Ri Ri ;AA-(Ri)-CYAA-(Ri)-CY SUBB A SUBB A, Rn Rn ;AA-Rn-CYAA-Rn-CY 以上指令把立刻数、直接地址、间接地址及任务存以上指令把立刻数、直接地址、间接地址及任务存放器的内容和借位位放器的内容和借位位CYCY与累加器与累加器A A中内容相减,结果送回中内容相减,结果送回A A中。中
37、。 OV OV1 1表示带符号数相减时,从一个正数中减去一个表示带符号数相减时,从一个正数中减去一个负数结果为负数,或从一个负数中减去一个正数结果为负数结果为负数,或从一个负数中减去一个正数结果为正数的错误情况。正数的错误情况。 第3章 MSC-51单片机的指令系统 例3.10 AC9H,R354H,CY1,执行指令 SUBB A,R3,那么操作如下: 11001001 01010100 ) 1 01110100 运算后,CY=0,AC=0,OV=1,P=0,A=74H。 留意:在进展单字节或多字节减法的低位运算前,要保证借位标志位CY的值为0,故在进展运算前要对CY清0。 第3章 MSC-5
38、1单片机的指令系统47 例3.11 利用SUBB指令进展双字节的减法运算。 设被减数存放在30H、31H单元中,减数存放在40H、41H单元中,差存在50H、51H单元中。编程如下: MOVA,30H ;被减数低字节送A CLRC ;低字节减无借位CY清0 SUBBA,40H ;低位字节相减 MOV50H,A ;结果送50H单元 MOVA,31H ;被减数高字节送A SUBBA,41H;高字节相减 MOV51H,A ;结果送51H单元 第3章 MSC-51单片机的指令系统 4. 4. 乘法指令乘法指令1 1条条 MUL AB MUL AB ; BAA BAAB B 功能:将累加器功能:将累加器
39、A A和存放器和存放器B B中的中的8 8位无符号整数相乘,位无符号整数相乘,所得所得1616位乘积的低位乘积的低8 8位存放在位存放在A A中,高中,高8 8位存放在位存放在B B中。假中。假设乘积大于设乘积大于FFHFFH,那么溢出标志,那么溢出标志OVOV为为1 1,否那么为,否那么为0 0,乘法,乘法运算总使进位标志运算总使进位标志CY=0CY=0。 例例3.12 A=4EH3.12 A=4EH,B=5DHB=5DH,执行,执行 MUL AB MUL AB指令,指令,那么结果如下:那么结果如下: A=55H B=1CH OV=1 P=0 A=55H B=1CH OV=1 P=0 第3章
40、 MSC-51单片机的指令系统 例3.13 利用乘法指令编写15H33H的程序,将乘积的高8位存入31H单元,低8位存入30H单元。编程如下: MOV A,15H;被乘数送A MOV B,33H;乘数送B MUL AB;相乘 MOV 30H,A ;积的低8位送30H MOV 31H,B ;积的高8位送31H 第3章 MSC-51单片机的指令系统 5. 除法指令1条 DIV AB ;AAB的商,B余数 功能:把累加器A中的8位无符号整数除以存放器B中8位无符号整数,所得商送入A中,余数送入B中。除法运算总使CY和OV清0。 假设除数(B中内容)为00H,那么执行结果为不定值,此时OV1,表示除法
41、溢出。 例3.14 A=87H,B=0CH,执行DIV AB 指令,那么结果如下所示: A=0BH B=03H OV=0 CY=0 第3章 MSC-51单片机的指令系统 6. 加1指令5条 INC A ;AA+1 INC direct ;(direct)(direct)+1 INC Ri ;(Ri)(Ri)+1 INC Rn ;RnRn+1 INC DPTR ;DPTRDPTR+1 功能:把所指定存放器或存储单元的内容加1,结果仍送回原存放器或存储单元,运算结果不影响任何标志位。假设原来的内容为0FFH,那么加1后将为00H。该组指令运用了直接、存放器、存放器间接寻址方式。 在第二条指令中,假
42、设直接地址是I/O口,那么进展“读改写操作。其功能是先读入端口锁存器的内容,然后在CPU中加1,继而再输出到该端口。 第3章 MSC-51单片机的指令系统 7. 7. 减指令减指令4 4条条 DEC A DEC A ;AA-1AA-1 DEC direct DEC direct ;(direct)(direct)-1(direct)(direct)-1 DEC Ri DEC Ri ;(Ri)(Ri)-1(Ri)(Ri)-1 DEC Rn DEC Rn ;RnRn-1RnRn-1 DEC DEC指令把所指定存放器或存储单元的内容减指令把所指定存放器或存储单元的内容减1 1,结,结果仍送回原存放器
43、或存储单元,假设原来的内容为果仍送回原存放器或存储单元,假设原来的内容为00H00H,那么减那么减1 1后将为后将为0FFH0FFH,运算结果不影响任何标志位,该组,运算结果不影响任何标志位,该组指令运用了直接、存放器和存放器间接寻址。指令运用了直接、存放器和存放器间接寻址。 同同INCINC指令一样,在第二条指令中,假设直接地指令一样,在第二条指令中,假设直接地址是址是I/OI/O口,那么同样是进展口,那么同样是进展“读改写操作。读改写操作。 第3章 MSC-51单片机的指令系统53 8. 十进制BCD码调整指令1条 DA A 在进展BCD码运算时,跟在ADD和ADDC指令之后,将相加后存放
44、在累加器A中的结果进展调整修正。 修正的条件和方法为: 假设(A03)9或(AC)=1,那么(A03)(A03)+6H 假设(A47)9或(CY)=1,那么(A47)(A47)+60H 假设以上两条同时发生,或高4位虽等于9,但低4位修正后有进位,那么应加66H调整。 第3章 MSC-51单片机的指令系统 例3.15 利用十进制加法调整指令作十进制减法运算应采用补码相加的方法,用9AH减去减数即得以10为模的减数补码。 设被减数存放在30H单元,减数存放在40H单元,结果存放在50H单元,编程如下:CLR C ;清进位位MOV A,9AH ;求减数补码 SUBB A,40H ADD A,30H
45、 ;与补码相加 DA A ;十进制调整 MOV 50H,A ;结果存放在50H单元 第3章 MSC-51单片机的指令系统3.2.3 3.2.3 逻辑运算类指令逻辑运算类指令 逻辑运算类指令包括与、或、异或、清零、求反、逻辑运算类指令包括与、或、异或、清零、求反、左右移位等操作指令。其对应的寻址方式有直接寻址、左右移位等操作指令。其对应的寻址方式有直接寻址、存放器寻址和存放器间接寻址。执行时普通不影响程序存放器寻址和存放器间接寻址。执行时普通不影响程序形状存放器形状存放器PSWPSW,仅当目的操作数为,仅当目的操作数为A A时对奇偶标志时对奇偶标志P P位有位有影响,带进位的移位指令影响影响,带
46、进位的移位指令影响CYCY位。逻辑运算指令用到位。逻辑运算指令用到的助记符有的助记符有ANLANL、ORLORL、XRLXRL、RLRL、RLCRLC、RRRR、RRCRRC、CLRCLR和和CPLCPL共共9 9种。种。 第3章 MSC-51单片机的指令系统 1. 循环移位指令4条 RR A ; RL A ; RLC A ; RRC A ; 第3章 MSC-51单片机的指令系统 前两条指令是将累加器A的内容循环左移或右移一位,后两条指令是将累加器A的内容连同进位位CY一同循环左移或右移一位。 例3.16 利用累加器循环左移指令对A中内容进展乘10操作。设A=X,编程如下: RL A ;得到2
47、 X MOV B,A;转存到B RL A ;得到4 X RL A ;得到8 X ADD A,B ;A(8 X +2 X) 第3章 MSC-51单片机的指令系统58 2. 2.累加器半字节交换指令累加器半字节交换指令1 1条条 SWAP A SWAP A ;A3A30 0A7A74 4 功能:将累加器功能:将累加器A A的高低两半字节交换。如的高低两半字节交换。如(A)=50H(A)=50H,执行执行SWAP ASWAP A指令后,结果指令后,结果(A)=05H(A)=05H。 3. 3.求反指令求反指令1 1条条 CPL A CPL A ;AAAA 4. 4.清清0 0指令指令1 1条条 CL
48、R A CLR A ;A0A0 第3章 MSC-51单片机的指令系统 5. 5.逻辑与指令逻辑与指令6 6条条 ANL A ANL A,data data ; AAdata AAdata ANL direct ANL direct,data data ;(direct)(direct)data(direct)(direct)data ANL A ANL A,Rn Rn ; AARn AARn ANL A ANL A,direct direct ; AA(direct) AA(direct) ANL direct ANL direct,A A ;(direct)(direct)A(direct)
49、(direct)A ANL A ANL A, Ri Ri ; AA(Ri) AA(Ri) 这组指令的第二条和第五条指令中,假设直接地址正这组指令的第二条和第五条指令中,假设直接地址正好是好是I/OI/O口,那么也是进展口,那么也是进展“读改写操作。读改写操作。 第3章 MSC-51单片机的指令系统 6.逻辑或指令6条ORL A,data ;AAdata ORL direct,data ;(direct)(direct)dataORL A,Rn ;AARnORL A,direct ;AA(direct)ORL direct,A ;(direct)(direct)AORL A, Ri ;AA(Ri
50、) 这组指令的第二条和第五条也具有“读改写功能。7.逻辑异或指令6条XRL A,data; AAdataXRL direct,data ;(direct)(direct)data XRL A,Rn;AARn XRL A,direct ;AA(direct) XRL direct,A ;(direct)(direct)A XRL A, Ri ;AA(Ri) 第3章 MSC-51单片机的指令系统 例3.17 设P1中内容为AAH,A中内容为15H,执行以下程序:ANL P1,0F0H;P1=0A0H ORL P1,0FH ;P1=0AFH XRL P1,A;P1=0BAH 从上例可见,逻辑操作是按
51、位进展的,所以“ANL操作常用来屏蔽字节中的某些位,要保管的位用“1去“与,要去除的位用“0去“与。“ORL操作常用来对字节中的某些位置“1,要保管的位用“0去“或,要置1的位用“1去“或。“XRL操作常用来对字节中的某些位求反,要保管的位用“1去“异或。 第3章 MSC-51单片机的指令系统62例3.18 把累加器A中的低4位送到外部RAM的2000H单元中,程序为: MOVDPTR,2000H ;DPTR2000H ANLA,0FH ;AA0FH(屏蔽A的高4位) MOVXDPTR,A ;DPTRA 第3章 MSC-51单片机的指令系统3.2.4 3.2.4 控制转移类指令控制转移类指令
52、控制转移类指令用于控制程序的走向。包括:无条件控制转移类指令用于控制程序的走向。包括:无条件转移指令、条件转移指令以及子程序调用和前往指令,作转移指令、条件转移指令以及子程序调用和前往指令,作用区间是程序存储器空间,普通不影响标志位。控制转移用区间是程序存储器空间,普通不影响标志位。控制转移类指令用到的助记符有:类指令用到的助记符有:LJMPLJMP、AJMPAJMP、SJMPSJMP、JMPJMP、JZJZ、JNZJNZ、CJNECJNE、DJNZDJNZ等多种。等多种。 第3章 MSC-51单片机的指令系统 1.无条件转移指令4条 无条件转移指令的功能是当程序执行完此类转移指令后,程序就无
53、条件地转到指令所提供的目的地址去。 LJMP addr16 ;PCaddr16 AJMP addr11 ;PCPC+2,PC100addr11, ; PC1511不变 SJMP rel ;PCPC+2+rel JMP A+DPTR ;PCA+DPTR64 第3章 MSC-51单片机的指令系统 第一条指令称为长转移指令。该指令为3字节指令,指令中提供16位目的地址,将指令中第二字节和第三字节地址码分别装入PC的高8位和低8位中,以实现程序的转移。所以该指令转移的目的地址范围是在整个64K字节的存储空间内。 第二条指令称为绝对转移指令。该指令为2字节指令,指令中提供11位目的地址,所以该指令转移的
54、目的地址范围是从下条指令开场的2K字节的存储空间内,如图3-8所示。 由图3-8可见,该指令的转移地址由指令操作码的高3位和第二字节组成,可以在2K字节的存储空间内实现转移。 第3章 MSC-51单片机的指令系统图3-8 AJMP 指令执行表示图 AJMP指令第一字节(操作码)第二字节 A10 A9 A8 0 0 0 0 1A7 A6 A5 A4 A3 A2 A1 A0 PCPC高5位PC低11位 Addr 11 第3章 MSC-51单片机的指令系统 第三条指令称为相对转移指令又称为短转移指令。该指令为2字节指令,指令中的rel是一个带符号的相对偏移量,范围为-128+127。负数表示向后转移
55、,正数表示向前转移,该指令执行后程序转移到当前PC值与rel之和所指示的单元地址处。 第四条指令称为间接转移指令又称散转移指令。转移地址由数据地址指针DPTR与该累加器A中的8位无符号数之和构成。该指令执行后不影响DPTR和A中的原内容,也不影响任何标志位,只是把相加的结果直接送PC,以实现程序的转移。 第3章 MSC-51单片机的指令系统 例3.19 根据data的数值设计散转表程序,当data=0时,转处置程序G0,当data=1时,转处置程序G1, ,当data=n时,转处置程序Gn。编程如下: MOV A,data RL A ;将A修正为偶数 MOV DPRT,TABLE ;表首址送D
56、PTR JMP A+DPTR ;以A中内容为偏移量跳转TABLE:AJMPG0 AJMP G1 AJMP G2 AJMP Gn 留意:data可以是恣意数,但由于AJMP是双字节指令, 所以A中的数值必需修正为偶数。 第3章 MSC-51单片机的指令系统 2.条件转移指令条件转移指令13条条 条件转移指令是根据某种特定条件实现转移的指令。条条件转移指令是根据某种特定条件实现转移的指令。条件满足时实现转移,其目的地址在下一条指令的起始地址件满足时实现转移,其目的地址在下一条指令的起始地址为中心的为中心的256个字节范围内个字节范围内-128+127;条件不满足;条件不满足时那么顺序执行下面一条指
57、令。时那么顺序执行下面一条指令。 条件转移指令非常丰富,包括判累加器零转移、判位形条件转移指令非常丰富,包括判累加器零转移、判位形状转移、比较转移和循环转移共状转移、比较转移和循环转移共4组。组。 JZ rel ;假设;假设A0,那么转移,那么转移,PCPC+2+rel 假设假设A0,那么顺序执行,那么顺序执行,PCPC+2 JNZ rel ;假设;假设A0,那么转移,那么转移,PCPC+2+rel 假设假设A0,那么顺序执行,那么顺序执行,PCPC+2 第3章 MSC-51单片机的指令系统 CJNE A,direct,rel ;假设A(direct),那么顺序执行, PCPC+3,C0 假设
58、A(direct),那么转移, PCPC+3+rel,C0 假设A(direct),那么转移, PCPC+3+rel,C1 CJNEA,#data,rel ;假设Adata,那么顺序执行, PCPC+3,C0 假设Adata,那么转移, PCPC+3+rel,C0 假设Adata,那么转移, PCPC+3+rel,C1 第3章 MSC-51单片机的指令系统 CJNERn,#data,rel ;假设Rndata,那么顺序执行, PCPC+3,C0 假设Rndata,那么转移, PCPC+3+rel,C0 假设Rndata,那么转移, PCPC+3+rel,C1 CJNERi,#data,rel
59、;假设(Ri)data,那么顺序执行, PCPC+3,C0 假设(Ri)data,那么转移, PCPC+3+rel,C0 假设(Ri)data,那么转移, PCPC+3+rel,C1 第3章 MSC-51单片机的指令系统 DJNZRn,rel ;RnRn-1,假设Rn0,那么转移 PCPC+2+rel假设Rn0,那么顺序 执行,PCPC+2 DJNZdirect,rel ;(direct)(direct)-1,(direct)0, 那么转移,PCPC+3+rel 假设(direct)0,那么顺序执行, PCPC+3 JC rel ;假设C=1,那么转移,PCPC+2+ rel 假设C=0,顺序
60、执行,PCPC+2 JNC rel ;假设C=0,那么转移,PCPC+2+ rel 假设C=1,顺序执行,PCPC+2 第3章 MSC-51单片机的指令系统 JB bit,rel ;假设(bit)=1,那么转移,PCPC+3+ rel 假设(bit)=0,顺序执行,PCPC+3 JNB bit,rel ;假设(bit)=0,那么转移,PCPC+3+ rel 假设(bit)=1,顺序执行,PCPC+3 JBC bit,rel ;假设(bit)=1,那么转移,PCPC+3+ rel 且(bit)0 假设(bit)=0,顺序执行, PCPC+3 第3章 MSC-51单片机的指令系统 JZ和JNZ指令
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技进步与项目优化
- 专利使用权及收益分配合同版B版
- 2025年度运动健身器材试用买卖服务合同4篇
- 二零二五年度大数据中心建设不可撤销数据安全保密合同3篇
- 2025年度产学研产学研合作企业社会责任合作协议:社会责任履行与产业和谐发展3篇
- 2025年度文化用品场买卖合同规范文本4篇
- 二零二五年度猎头服务与人才效能提升合作协议3篇
- 2024药店门店店长聘用合同范本3篇
- 二零二五年度车辆租赁与车辆租赁行业规范制定协议3篇
- 专用消防设备增补协议规范文本版B版
- 电梯安全守则及乘客须知
- IT硬件系统集成项目质量管理方案
- 水下炸礁施工组织设计
- 《容幼颖悟》2020年江苏泰州中考文言文阅读真题(含答案与翻译)
- 3dmin软件3dmine教程基础知识
- API520-安全阀计算PART1(中文版)
- 政府采购专家评审实务培训XXXX
- 2023年广东省广州地铁城际铁路岗位招聘笔试参考题库附带答案详解
- 2023年一级健康管理师《基础知识》考前冲刺题库资料(含答案)
- 直流电机电枢绕组简介
- GB/T 524-2007平型传动带
评论
0/150
提交评论