伪指令是程序员发给汇编程序的命令,用来设置符号值、保留和初始化存储空间、控制用户程序代码的位置。在汇编时伪指令自身不产生机器码,不属于指令系统。常用的伪指令有以下几种。1.汇编起始地址命令ORG该命令总是出现在源程序的开头位置,用于规定目标程序的起始地址。在END之后所写的指令,汇编程序不再处理。一个源程序只能有一个END指令,并放在所有指令的最后。例如:以上指令经汇编后,将对1000H开始的若干内存单元赋值。......
2023-11-17
MCS-51单片机逻辑运算及移位类指令包括与、或、异或、清0、取反、移位等操作指令。这类指令有CLR、CPL、RL、RLC、RR、RRC、ANL、ORL、XRL共9种。这些指令执行时,一般不影响标志位,如表3-4所示。
1.逻辑“与”运算指令
逻辑“与”运算指令共有以下6条:
这组指令中的前4条指令完成源操作数与累加器(A)的内容相与,并将结果送入累加器(A)中。后两条指令则实现源操作数与直接地址指示的单元内容相与,结果送入直接地址指示的单元,若直接地址正好是I/O端口时,则是“读—修改—写”操作。6条指令的源操作数有寄存器寻址、直接寻址、寄存器间接寻址和立即寻址的寻址方式。当所寻址的寄存器不是累加器(A)或程序状态字(PSW)时,不影响任何标志位,否则会对标志位有影响。
例如,若已知(A)=00011111B,(30H)=10000011B,执行指令
后结果为:(A)=00000011B,(30H)=10000011B不变。
2.逻辑“或”运算指令
逻辑“或”运算指令共有以下6条:
这组指令在所寻址的单元之间进行逻辑“或”操作,并将结果存放到目的单元中去。其寻址方式、标志位影响、端口操作与ANL指令相同。
表3-4 逻辑运算及移位类指令
注:√表示该指令影响某一标志位。
3.逻辑“异或”运算指令
逻辑“异或”运算指令共有以下6条:
这组指令在所寻址的单元之间进行逻辑“异或”操作,并将结果存放到目的单元中去。其寻址方式、标志位影响、端口操作与ANL指令相同。
4.循环移位指令
循环移位指令共有以下4条:
移位情况如图3-10所示。
(www.chuimin.cn)
图3-10 循环移位指令执行图
前两条指令的功能分别是将累加器(A)的内容循环左移或右移一位,后两条指令的功能分别是将累加器(A)的内容连同进位标志位CY一起循环左移或右移一位。
【例3-12】编程实现16位数的算术左移。设16位数存放在片内RAM的20H、21H单元,低位在前。
【解】算术左移是指将操作数整体左移一位,最低位补充0,相当于完成对16位数的乘2操作。
5.清零和取反指令
前一条指令的作用是将A的内容清0,后一条指令的作用是将A的内容按位取反后送回到A中。
例如,设(A)=10101010B,执行指令
后结果为:(A)=01010101B。
【例3-13】将累加器A的低4位状态通过P1口的高4位输出。【程序】
【例3-14】把在R4和R5中的两个字节数(作为一个字)取补(高位在R4中)。
【程序】
【例3-15】设在片外RAM的2000H中存放有两个BCD码数,试编一程序将这两个BCD码分别存到2000H和2001H的低4位中。
【程序】
指令举例说明
有关单片机基础及应用的文章
伪指令是程序员发给汇编程序的命令,用来设置符号值、保留和初始化存储空间、控制用户程序代码的位置。在汇编时伪指令自身不产生机器码,不属于指令系统。常用的伪指令有以下几种。1.汇编起始地址命令ORG该命令总是出现在源程序的开头位置,用于规定目标程序的起始地址。在END之后所写的指令,汇编程序不再处理。一个源程序只能有一个END指令,并放在所有指令的最后。例如:以上指令经汇编后,将对1000H开始的若干内存单元赋值。......
2023-11-17
MCS-51单片机的算术运算类指令包括加、减、乘、除、加1、减1等指令。这类指令有ADD、ADDC、INC、SUBB、DEC、DA、MUL、DIV共8种。表3-3算术运算类指令注:√表示该指令影响某一标志位。运算结果对PSW的影响同上述4条ADD指令。6.十进制调整指令十进制调整指令只有以下1条:该指令用于BCD码加法运算时,对BCD码的加法运算结果自动进行调整,但对BCD码的减法运算不能用此指令来调整。在运算过程中,单片机按二进制规则进行运算。......
2023-11-17
MCS-51的所有指令均不超过3个字节,且多为单字节指令。为了使“乱飞”程序在程序区迅速纳入正轨,应在编程时多用单字节指令,并在关键的地方人为地插入一些单字节指令NOP,或将有效单字节指令重写,称之为指令冗余。需要注意的是,乱飞的PC必须指向程序运行区,并且必须执行到冗余指令才能使PC纳入正确轨道。......
2023-11-17
条件转移指令共有8条。1.累加器判零转移指令累加器判零转移指令共有两条:这组指令的功能是对累加器的内容为“0”和不为“0”进行检测并转移。当各自的条件满足时,程序转向指定的目标地址。目标地址的计算与SJMP指令情况相同。指令执行时对标志位无影响。例如,已知累加器=00H,执行指令:2.数值比较转移指令数值比较转移指令共有4条。利用这两条指令可实现循环控制,循环次数存放于寄存器中或直接寻址单元中。......
2023-11-17
1.操作数类型在众多指令中,大多数指令执行时都需要使用操作数,因此就存在怎样寻找操作数的问题。单片机指令系统中的操作数的类型有立即数、寄存器操作数和存储器操作数3种。通常在指令中给出寄存器的名称。存储器操作数存储器操作数是把操作数存放在存储器中,因此在汇编指令中给出的是存储器的地址。2.指令描述约定为便于学习寻址方式和指令,在此先对指令中使用到的一些符号的约定予以说明。用于SJMP和所有条件转移指令。......
2023-11-17
2)数据传送指令,加1、减1指令,逻辑运算指令不影响CY、OV和AC位。标志位的状态是控制转移类指令的判断条件。数据传送类指令是使用最频繁的指令,主要用于数据的复制、保存及交换。数据传送类指令的助记符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP。其通用数据传送类指令格式为MOV 目的操作数,源操作数表3-2数据传送类指令注:√表示该指令影响某一标志位。外部RAM或I/O口之间的数据传送指令共有4条。......
2023-11-17
8051有5个中断源,即两个外部中断、两个定时/计数器中断和一个串行发送/接收中断。1.外部中断外部中断是由连接到单片机外部引脚信号变化而引起的中断,反映外部某一事件的发生。CPU是在每个机器周期的S5P2检测P 3.2和P 3.3上的信号,如果是有效信号则对定时器控制寄存器TCON中的IE0或IE1置1,建立中断请求标志。表6-1中断源的主要内容及说明......
2023-11-17
指令有右移位指令、左移位指令、循环右移位指令、循环左移位指令。循环移位指令类别见表1-12。SHRB指令如图1-15所示,移位寄存器以功能框的形式编程,指令名称为SHRB。在语句表中,移位寄存器的指令格式为SHRB DATA,S_BIT,N。例如,移位寄存器指令的应用如图1-16所示。图1-16 移位寄存器指令应用从图1-16中可以看出,S_BIT=V10.0,N=4>0,最高位为V10.3。......
2023-06-26
相关推荐