51单片机汇编语言教程:11课单片机算术运算指令(1)

合集下载

单片机指令的算术运算分析单片机指令中的算术运算功能

单片机指令的算术运算分析单片机指令中的算术运算功能

单片机指令的算术运算分析单片机指令中的算术运算功能单片机(Microcontroller)是一种集成了处理器、存储器和输入/输出(I/O)接口的微型计算机系统。

它广泛应用于各种电子设备中,如智能手机、电视机、汽车电子系统等。

而在单片机的编程中,算术运算是一项重要的功能,它使得单片机能够进行各种数值计算和逻辑判断。

本文将对单片机指令中的算术运算功能进行分析。

1. 加法运算在单片机中,加法运算是最常见的算术运算之一。

单片机中一般有专门的指令用于执行加法运算。

这些指令通常包括将两个操作数相加的指令和将运算结果存储到目标寄存器中的指令。

通过这些指令,单片机可以实现对不同长度和精度的数值进行加法运算。

2. 减法运算除了加法运算,单片机还可以执行减法运算。

减法运算可以通过将被减数与减数取负后再执行加法运算来实现。

单片机中的减法指令包括减法运算的指令和将运算结果存储到目标寄存器的指令。

3. 乘法运算乘法运算是单片机中较复杂的一种算术运算。

通常情况下,单片机的乘法运算是通过多次执行加法运算来实现的。

单片机通过将乘法操作数分解为多个部分,并使用不同的加法指令逐步计算得到最终的乘积。

4. 除法运算与乘法运算相似,除法运算也是相对复杂的一种算术运算。

单片机中一般使用迭代逼近法(Iterative approximation)来执行除法运算。

这种方法通过多次迭代计算,使得除法运算逐步逼近最终结果。

5. 移位运算除了基本的四则运算,单片机还可以执行移位运算。

移位运算包括逻辑左移、逻辑右移、算术左移和算术右移等。

移位运算可以将操作数的二进制表示进行平移,从而实现乘以或除以2的幂次方的计算。

通过以上分析,我们可以看出单片机的算术运算功能十分强大。

不仅可以执行基本的加减乘除运算,还能进行移位运算等。

这些功能使得单片机能够满足各种复杂的计算需求,并在各种电子设备中发挥重要作用。

总结起来,单片机指令中的算术运算功能是一项重要的功能,它使得单片机能够实现各种数值计算和逻辑判断。

51单片机指令总结

51单片机指令总结

51单片机指令总结51单片机是一种经典的单片机型号,由英特尔公司推出。

它是一种基于哈佛结构的8位单片机,具有强大的功能与广泛的应用领域,包括嵌入式系统、自动控制、仪器仪表、通信等等。

51单片机的指令集是其核心功能之一,本文将对51单片机的指令进行详细总结。

1.数据传送指令:用于数据在寄存器之间的传递,包括MOV、XCH、PUSH、POP等指令。

MOV指令用于将数据从一个寄存器传送到另一个寄存器,XCH指令用于交换两个寄存器的值,PUSH和POP指令用于将数据从寄存器压入堆栈或从堆栈弹出。

2.算术指令:用于进行算数运算,包括ADD、SUB、MUL、DIV等指令。

ADD指令用于两个操作数相加,SUB指令用于两个操作数相减,MUL指令用于两个操作数相乘,DIV指令用于两个操作数相除。

3.逻辑指令:用于进行逻辑运算,包括AND、OR、XOR、NOT等指令。

AND指令用于进行按位与运算,OR指令用于进行按位或运算,XOR指令用于进行按位异或运算,NOT指令用于进行按位非运算。

4.跳转指令:用于控制程序的跳转,包括JMP、JZ、JC、DJNZ等指令。

JMP指令用于无条件跳转到指定地址,JZ指令用于如果结果为零则跳转,JC指令用于如果进位标志位为1则跳转,DJNZ指令用于如果结果不为零则跳转。

5.输入输出指令:用于与外部设备进行数据的输入与输出,包括IN、OUT指令。

IN指令用于从指定的端口读取一个字节数据,OUT指令用于向指定的端口写入一个字节数据。

6.中断指令:用于处理中断事件,包括EI、DI、INT等指令。

EI指令用于使能中断,DI指令用于禁止中断,INT指令用于产生软件中断。

7.位操作指令:用于对特定位进行操作,包括SETB、CLR、CPL、RL、RR等指令。

SETB指令用于将指定位设置为1,CLR指令用于将指定位清零,CPL指令用于对指定位进行取反操作,RL指令用于循环左移操作,RR指令用于循环右移操作。

单片机指令的算术运算与数值处理技巧

单片机指令的算术运算与数值处理技巧

单片机指令的算术运算与数值处理技巧单片机(Microcontroller Unit,MCU)作为一种集成了处理器核心、存储器和各种外设接口的微型计算机,通常用于嵌入式系统中。

在单片机的编程过程中,算术运算和数值处理是其中一个重要的方面。

本文将介绍单片机指令的算术运算和数值处理的技巧和方法。

一、算术运算指令在单片机中,常见的算术运算指令包括加法、减法、乘法、除法等。

这些指令的使用需要掌握相应的编程知识和技巧。

1. 加法运算在单片机中执行加法运算可以使用ADD指令。

例如,使用ADD A, B指令可以将A寄存器的值与B寄存器的值相加,并将结果保存在A寄存器中。

同时,还可以使用ADD指令进行带进位的加法,比如使用ADDC A, B指令。

2. 减法运算减法运算可以使用SUB指令进行。

例如,使用SUB A, B指令可以将A寄存器的值减去B寄存器的值,并将结果保存在A寄存器中。

还可以使用SUBB指令进行带借位的减法。

3. 乘法运算单片机中一般没有专门的乘法指令,但可以通过多次执行移位和加法运算来实现乘法运算。

例如,可以使用循环结构和移位指令来实现乘法运算,将被乘数左移一位,然后与乘法因子相加。

重复这个过程直到完成相应的乘法运算。

4. 除法运算除法运算在单片机中也没有专门的指令。

如果需要进行除法运算,可以通过循环结构和移位指令来实现。

例如,可以使用循环结构和移位指令将被除数逐步减去除法因子,直到被除数小于除法因子为止,最后得到商和余数。

二、数值处理技巧除了基本的算术运算指令外,单片机的数值处理还需要掌握一些常用的技巧和方法,以提高程序的效率和准确性。

1. 数据类型选择在进行数值处理时,应根据实际需要选择合适的数据类型。

例如,如果处理的数值范围比较小,可以选择使用无符号整型(unsigned int)来提高存储效率。

而如果需要处理负数,可以选择有符号整型(signed int)。

2. 溢出处理在进行算术运算时,可能会出现溢出的情况。

常见51单片机指令及详解

常见51单片机指令及详解

常见51单片机指令及详解1. 简介单片机是一种集成电路,具备处理和控制功能。

51单片机是指Intel公司推出的一系列8位单片机,常用于嵌入式系统和物联网设备。

本文将介绍一些常见的51单片机指令,并对其进行详解。

2. 数据传送指令2.1 MOV指令MOV指令用于将数据从一个寄存器或内存位置传送到另一个寄存器或内存位置。

例如:MOV A, #10 ;将立即数10传送给累加器AMOV R0, R1 ;将寄存器R1的值传送给R02.2 XCH指令XCH指令用于交换两个寄存器或内存位置中的数据。

例如:XCH A, B ;交换累加器A和B的值3. 算术运算指令3.1 ADD指令ADD指令用于将两个操作数相加,并将结果保存在累加器中。

例如:ADD A, B ;将累加器A和寄存器B的值相加,结果存储在A中3.2 SUBB指令SUBB指令用于将第二个操作数的补码与累加器的值相减,并将结果存储在累加器中。

例如:SUBB A, B ;将B的补码与累加器A的值相减,结果存储在A中4. 逻辑运算指令4.1 ANL指令ANL指令用于对两个操作数进行按位与运算,并将结果存储在目的操作数中。

例如:ANL A, B ;将累加器A和寄存器B的值按位与,结果存储在A 中4.2 ORL指令ORL指令用于对两个操作数进行按位或运算,并将结果存储在目的操作数中。

例如:ORL A, B ;将累加器A和寄存器B的值按位或,结果存储在A 中5. 跳转指令5.1 JMP指令JMP指令用于无条件跳转至指定的目标地址。

例如:JMP 2000H ;跳转至内存地址2000H处执行指令5.2 JZ指令JZ指令用于在累加器为零时跳转至指定的目标地址。

例如:JZ 3000H ;当累加器为零时,跳转至内存地址3000H处执行指令6. 输入输出指令6.1 IN指令IN指令用于将外部设备的数据输入到累加器或指定的寄存器中。

例如:IN A, P1 ;将P1端口的数据输入到累加器A中6.2 OUT指令OUT指令用于将累加器或指定的寄存器中的数据输出到外部设备。

单片机指令的算术和逻辑运算

单片机指令的算术和逻辑运算

单片机指令的算术和逻辑运算在计算机科学与电子工程领域,单片机指令的算术和逻辑运算是非常重要的内容。

本文将深入探讨单片机指令的算术和逻辑运算,介绍其基本原理、应用场景以及相关的编程技巧。

一、算术运算算术运算主要包括加法、减法、乘法和除法。

在单片机中,这些运算由相应的指令来实现。

以加法为例,单片机通常使用ADD指令来执行此操作。

ADD指令可以将两个操作数相加,并将结果存储在目标寄存器中。

类似地,SUB指令用于减法运算,MUL指令用于乘法运算,DIV指令用于除法运算。

除了基本的算术运算指令,单片机还提供了其他相关的指令,如累加指令(INC)和累减指令(DEC)。

这些指令用于对寄存器或内存中的数值进行自增或自减操作。

通过结合这些指令,开发者可以灵活地进行各种复杂的算术运算。

除了整数运算外,单片机还支持浮点数运算。

浮点数是一种表示实数的方法,包括小数部分和指数部分。

单片机中的浮点数运算通常由相应的指令库来实现。

这些指令库提供了一系列的浮点数运算指令,如浮点数加法指令、浮点数乘法指令等。

通过使用这些指令,单片机可以高效地进行复杂的浮点数计算,满足各种实际应用的需求。

二、逻辑运算逻辑运算主要包括与、或、非、异或等操作。

在单片机中,逻辑运算由相应的指令来实现。

以与运算为例,单片机通常使用AND指令来执行此操作。

AND指令可以将两个操作数的对应位进行与运算,并将结果存储在目标寄存器中。

类似地,OR指令用于或运算,NOT指令用于非运算,XOR指令用于异或运算。

逻辑运算在单片机编程中被广泛应用。

它们可以用于条件判断、位操作、数据处理等多个方面。

例如,在某些应用场景下,我们需要对某个输入信号进行判断,并根据判断结果来执行相应的操作。

这时,我们可以利用逻辑运算指令来进行条件判断,并根据判断结果来选择不同的执行路径。

此外,逻辑运算还可以用于位操作。

位操作主要涉及对数据的位进行开关操作,如位与、位或、位取反等。

通过逻辑运算指令,我们可以实现对数据位的精确控制,提高程序的效率和可靠性。

51单片机汇编指令总结

51单片机汇编指令总结

51单片机汇编指令总结数据传输指令一.片内RAM数据传输指令1.以累加器A为目的操作数的指令:MOV A , RnMOV A , directMOV A , @RiMOV A , #data2.以寄存器Rn为目的操作数的指令:MOV Rn , AMOV Rn ,directMOV Rn ,data3.以直接地址为目的操作数的指令:MOV direct ,AMOV direct ,RnMOV direct1 ,derect2MOV direct ,@RiMOV direct ,#data4.间接地址为目的操作数的指令:MOV @Ri ,AMOV @Ri ,directMOV @Ri ,#data5.十六位数据传送指令:MOV DPTR , #data16二.累加器A与片外RAM数据传送指令:MOVX A ,@RiMOVX A , @DPTRMOVX @Ri ,AMOVX @DPTR ,A三.查表寻址:MOVC A ,@A+DPTR (先PC←(PC)+1,后A←((A)+(DPTR)))+MOVC A ,@A+PC (先PC←(PC)+1,后A←((A)+(PC)))四.交换指令:1.字节交换指令:XCH A ,RnXCH A ,directXCH A ,@Ri2.半字节交换指令:XCHD A ,@Ri3.累加器半字节交换指令:SWAP A五.栈操作指令:1.PUSH(入栈指令)PUSH direct2.POP(出栈指令)POP direct算术运算指令:一.加法减法指令:1.加法指令:ADD A ,RnADD A ,directADD A ,@RiADD A ,#data2.带进位加法指令:ADDC A ,Rn A←(A)+(Rn)+CYADDC A ,direct A←(A)+(direct)+CYADDC A ,@Ri A←(A)+((Ri))+CYADDC A ,#data A←(A)+(data)+CY3.带借位减法指令:SUBB A ,Rn A←(A)-CY-(Rn)SUBB A ,direct A←(A)-CY-(direct)SUBB A ,@Ri A←(A)-CY-((Ri))SUBB A ,#data A←(A)-CY-#data二.乘法除法指令:1.乘法指令:MUL AB BA←(A) ×(B)高字节放在B中,低字节放在A中2.除法指令:DIV AB A←(A) ÷(B)的商,(B) ←(A) ÷(B)的余数三.加1减1指令:1.加1指令:INC A A←(A)+1INC Rn Rn←(Rn)+1INC direct direct←(direct)+1INC @Ri (Ri) ←((Ri))+1INC DPTR DPTR←(DPTR)+12.减1指令:DEC ADEC RnDEC directDEC @Ri四.十进制调制指令:DA A 调整累加器A的内容为BCD码逻辑操作指令:一.逻辑与、或、异或指令:1.逻辑与指令:ANL A ,RnANL A ,directANL A ,@RiANL A ,#data2.逻辑或这令:ORL A ,RnORL A ,directORL A ,@RiORL A ,#dataORL direct ,AORL direct ,#data3.逻辑异或指令:XRL A ,RnXRL A ,directXRL A ,@RiXRL A ,#dataXRL direct ,AXRL direct ,#data二.清零、取反指令:1.累加器A清零指令:CRL A2.累加器A取反指令:CPL A三.循环位移指令:1.累加器A循环左移指令:RL A2.累加器A循环右移指令:RR A3.累加器A连同进位位循环左移指令:RLC A4. 累加器A连同进位位循环右移指令:RRC A控制转移指令:一.无条件转移指令:1.绝对转移指令:AJMP addr11 (先PC+2,然后将addr11的低十位传给PC,PC的高六位不变)2.长转移指令:LJMP addr16 (用addr16的值替换PC的值)3.相对转移(短转移)指令:SJMP rel(带符号的偏移字节数)(PC+2,再加rel赋值给PC)4.间接转移指令:JMP @A+DPTR (A)+(DPTR) →(PC)二.条件转移指令:1.累加器判零转移指令:JZ rel 先PC+2;后判断,A为0时转移,PC+rel赋值给PC;否则顺序执行JNZ rel 先PC+2,后判断,A不为0时转移,PC+rel赋值给PC;否则顺序执行2.比较转移指令:CJNE 目的操作数,源操作数,relCJNE A,direct,rel 先PC+3传回PC,再比较目的操作数和原操作数CJNE A,#data,rel 目>源时,程序转移,PC+rel传回PC且CY=0CJNE Rn,#data,rel 目=源时,程序顺序执行CJNE @Ri,#data,rel 目<源时,程序转移,PC+rel传回PC且CY=13.减一非0指令:DJNZ Rn,rel 先PC\+2,Rn-1,当Rn为0时程序顺序执行,否则PC+rel传回PCDJNZ direct,rel 先PC+3,direct-1,direct为0时程序顺序执行,否则PC+rel 传回PC二.子程序调用、返回指令:1.绝对调用指令ACALL:ACALL addr11 先PC+2,SP+1将PC的低八位存入SP;SP+1,将PC的高八位存入SP。

51单片机教材(免费完整版)

51单片机教材(免费完整版)

单片机教程原作:进墨者目录单片机教程第一课:单片机概述 (2)单片机教程第二课:单片机的内部、外部结构(一) (2)单片机教程第三课:几个基本概念 (5)单片机教程第四课:第一个小程序 (8)单片机教程第五课:延时程序分析 (10)单片机教程第六课:单片机的内外部结构分析(四) (12)单片机教程第七课:单片机内部结构分析(五) (15)单片机教程第八课(寻址方式与指令系统) (19)单片机教程第九课:数据传递指令 (22)单片机教程第十课数据传递类指令指令 (25)单片机教程第十一课:算术运算类指令 (28)单片机教程第十二课:逻辑运算类指令: (32)单片机教程第十三课:逻辑与指令 (34)单片机教程第十四课:条件转移指令 (38)单片机教程第十五课:位及位操作指令 (41)单片机教程第十六课:计数器与定时器 (44)单片机教程第十七课:定时/计数器的方式控制字 (46)单片机教程第十八课:中断系统 (49)单片机教程第十九课:定时、中断练习一 (52)单片机教程第二十课:定时/计数器实验2 (57)单片机教程第二十一课:串行接口 (60)单片机教程第二十二课:串行口应用编程实例 (65)单片机教程第二十三课:LED数码显示器的连接与编程 (68)单片机教程第二十四课:动态扫描显示接口 (72)单片机教程第二十五课:键盘接口与编程 (78)单片机教程第二十六课:矩阵式键盘接口技术及编程 (83)单片机教程第二十七课:初学单片机几个不易掌握的概念 (87)单片机教程第二十八课:单片机音乐程序的设计与实验 (90)单片机教程第一课:单片机概述1、何谓单片机一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。

在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。

而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如A/D,D/A等。

51单片机或命令的用法

51单片机或命令的用法

51单片机或命令的用法51单片机是一种常见的微控制器,广泛应用于各种嵌入式系统中。

以下是51单片机常用指令的用法:1、数据传输指令数据传输指令主要用于在寄存器、内存单元和输入/输出端口之间进行数据传输。

MOV:将源操作数传送到目标操作数。

MOV A, #data:将8位立即数data传送到累加器A中。

MOV R0, R2:将寄存器R2的值传送到寄存器R0中。

MOV @R0, A:将累加器A的值传送到R0所指定的存储单元中。

MOV DPTR, #data:将16位立即数data传送到数据指针DPTR寄存器中。

2、算术指令算术指令主要用于对两个操作数进行算术运算,并将结果存储在目标操作数中。

ADD:将两个操作数相加,并将结果存储在目标操作数中。

ADD A, R1:将累加器A与R1的值相加,将结果存入累加器A中。

ADD A, #data:将累加器A与8位立即数data相加,将结果存入累加器A中。

ADDC:在相加时,将进位标志位C的状态自动加到结果的最低有效位上。

ADDC A, R2:将累加器A与R2的值以及进位标志位C相加,将结果存入累加器A中。

3、控制转移指令控制转移指令主要用于实现程序的跳转和流程控制。

AJMP:无条件跳转到指定地址。

LJMP:长跳转到指定地址。

SJMP:短跳转到指定地址。

4、位操作指令位操作指令主要用于对单个位进行操作。

SETB:设置位。

CLR:清除位。

CPL:取反位。

:定时器是51单片机中的一个重要模块,它可以用来产生精确的定时/计数功能,常用于测量时间间隔或者产生定时中断。

51单片机的定时器有三种工作模式:模式0(工作方式1):当m1,m2设置成0,0时,定时器/计数器就工作在方式0,工作方式0是一种13位定时器/计数器方式,可用来测量外信号的脉冲宽度所持续的时间。

模式1(工作方式2):工作方式1为16位定时器/计数其结构和操作与工作方式0基本相同,唯一的区别是工作方式1的计数器由tl0的8位和th0的8位共同组成16位的计数器,其定时时间为:t=(2^16-t0初值)×时钟周期×12 。

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

51 单片机汇编语言教程-慧净电子会员收集整理(全部 28 课)
51 单片机汇编语言教程:第 11 课-单片机算术运算指令
(基于 HL-1、HJ-C52、HJ-3G 实验板)
(图片 HL-1 开发板)
不带进位位的单片机加法指令
ADD A,#DATA ;例:ADD A,#10H
ADD A,direct ;例:ADD A,10H
ADD A,Rn ;例:ADD A,R7
ADD A,@Ri ;例:ADD A,@R0
用途:将A中的值与其后面的值相加,最终结果否是回到A
中。

例:MOV A,#30H
ADD A,#10H
则执行完本条指令后,A中的值为
40H。

下面的题目自行练习
MOV 34H,#10H
MOV R0,#13H
MOV A,34H
ADD A,R0
MOV R1,#34H
ADD A,@R1
带进位位的加法指令
ADDC A,Rn
推荐使用慧净51实验板。

推荐51学习网淘宝网:/
51 单片机汇编语言教程-慧净电子会员收集整理(全部 28 课)
ADDC A,direct
ADDC A,@Ri
ADDC A,#data
用途:将A中的值和其后面的值相加,并且加上进位位C中的值。

说明:由于51单片机是一种8位机,所以只能做8位的数学运算,但8位运算的范围只有0-255,这在实际工作中是不够的,因此就要进行扩展,一般是将2 个8 位的数学运算合起来,成为一个16位的运算,这样,能表达的数的范围就能达到0-65535。

如何合并呢?其实很简单,让我们看一个10进制数的例程:
66+78。

这两个数相加,我们根本不在意这的过程,但事实上我们是这样做的:先做6+8(低位),然后再做6+7,这是高位。

做了两次加法,只是我们做的时候并没有刻意分成两次加法来做罢了,或者说我们并没有意识到我们做了两次加法。

之所以要分成两次来做,是因为这两个数超过了一位数所能表达的范置(0-9)。

在做低位时产生了进位,我们做的时候是在适当的位置点一下,然后在做高位加法是将这一点加进去。

那么计算机中做16位加法时同样如此,先做低8位的,如果两数相加产生了进位,也要“点一下”做个标记,这个标记就是进位位C,在PSW中。

在进行高位加法是将这个C加进去。

例:1067H+10A0H,先做67H+A0H=107H,而107H显然超过了0FFH,因此最终保存在A中的是7,而1则到了PSW中的CY位了,换言之,CY就相当于是100H。

然后再做10H+10H+CY,结果是21H,所以最终的结果是2107H。

带借位的单片机减法指令
SUBB A,Rn
SUBB A,direct
SUBB A,@Ri
SUBB A,#data
设(每个H,(R2)=55H,CY=1,执行指令SUBB A,R2之后,A中的值为73H。

说明:没有不带借位的单片机减法指令,如果需要做不带位的减法指令(在做第一次相减时),只要将CY清零即可。

乘法指令
MUL AB
此单片机指令的功能是将A和B中的两个8位无符号数相乘,两数相乘结果一般比较大,因此最终结果用1个16位数来表达,其中高8位放在B中,低8位放在A中。

在乘积大于FFFFFH(65535)时,0V 置 1(溢出),不然 OV 为 0,而 CY 总是
0。

例:(A)=4EH,(B)=5DH,执行指令
MUL AB 后,乘积是 1C56H,所以在 B 中放的是 1CH,而 A 中放的则是 56H。

除法指令
DIV AB
此单片机指令的功能是将A中的8位无符号数除了B中的8位无符号数(A/B)。

除法一般会出现小数,但计算机中可没法直接表达小数,它用的是我们小学生还没接触到小数时用的商和余数的概念,如13/5,其商是2,余数是3。

除了以后,商放在A中,余数放在B 中。

CY 和 OV 都是 0。

如果在做除法前 B 中的值是 00H,也就是除数为 0,那么 0V=1。

加1指令
INC A
INC Rn
INC direct
推荐使用慧净51实验板。

推荐51学习网淘宝网:/
51 单片机汇编语言教程-慧净电子会员收集整理(全部 28 课)
INC @Ri
INC DPTR
用途很简单,就是将后面目标中的值加1。

例:(A)=12H,(R0)=33H,(21H)=32H,(34H)
=22H,DPTR=1234H。

执行下面的指令:
INC A (A)=13H
INC R2 (R0)=34H
INC 21H (21H)=33H
INC @R0 (34H)=23H
INC DPTR ( DPTR)=1235H
后结果如上所示。

说明:从结果上看INC A和ADD A,#1差不多,但INC A是单字节,单周期指令,而ADD#1 则是双字节,双周期指令,而且 INC A 不会影响 PSW 位,如(A)=0FFH,INC A 后(A) =00H,而 CY 依然保持不变。

如果是 ADD A ,#1,则(A)=00H,而 CY 一定是 1。

因此
加1 指令并不适合做加法,事实上它主要是用来做计数、地址增加等用途。

另外,加法类指令都是以A为核心的&#0;&#0;其中一个数必须放在A中,而运算结果也必须放在A中,而
加1 类指令的对象则广泛得多,能是寄存器、内存地址、间址寻址的地址等等。

减1 指令
减1 指令
DEC A
DEC RN
DEC direct
DEC @Ri
与加1指令类似,就不多说
了。

综合练习:
MOV A,#12H
MOV R0,#24H
MOV 21H,#56H
ADD A,#12H
MOV DPTR,#4316H
ADD A,DPH
ADD A,R0
CLR C
SUBB A,DPL
SUBB A,#25H
INC A
SETB C
ADDC A,21H
INC R0
SUBB A,R0
MOV 24H,#16H
CLR C
ADD A,@R0
先写出每步运行结果,然后将以上题目建入,并在软件仿真中运行,观察寄存器及有关单元的内容的变化,是否与自已的预想结果相同。

推荐使用慧净51实验板。

推荐51学习网淘宝网:/
51 单片机汇编语言教程-慧净电子会员收集整理(全部 28 课)
重要说明
需要51学习板的朋友请QQ:3981150881、本教程是《慧净电子》网上收整理,版权归互联网,全部免费共享,为了支持慧净免费助学加上了慧净51实验板的链接。

2、教程中的实验不保证 100%正确,当你能认真学习时你会有能力修正实验中的小错误。

3、请不要再问如何学单片机,如何写程序,为什么这样写程序的问题,慧净不提供源码分析,如果你有心学单片机的,全部由你自己自学完成,推荐你用慧净电子的HJ-C52实验板配套学习。

祝你学业有成,以后多点共享各种单片机资料,使中国电子技术更强
推荐使用慧净51实验板。

推荐51学习网淘宝网:/
推荐你使用 HJ-C52 学习板,想学单片机详细了解一下
推荐使用慧净51实验板。

推荐51学习网淘宝网:/
推荐使用慧净51实验板。

推荐51学习网淘宝网:/
HJ-C52 功能模块
推荐使用慧净51实验板。

推荐51学习网淘宝网:/
推荐使用慧净51实验板。

推荐51学习网淘宝网:/
慧净电子
交流QQ:398115088
慧净单片机学习网址:
淘宝网址:/
2012 年 11 月 11 日
推荐使用慧净51实验板。

推荐51学习网淘宝网:/。

相关文档
最新文档