MCS

您所在的位置:网站首页 dw汇编指令 MCS

MCS

2024-07-04 11:23:19| 来源: 网络整理| 查看: 265

上篇我们讲了汇编指令格式,寻址方式和指令系统分类,这篇我们讲一下单片机伪指令。

伪指令是汇编程序中用于指示汇编程序如何对源程序进行汇编的指令。伪指令不同于指令,在汇编时并不翻译成机器代码,只是会汇编过程进行相应的控制和说明。

伪指令通常在汇编程序中用于定义数据、分配存储空间、控制程序的输入/输出等。在MCS-51系统中,常用的伪指令有7条。接下来我们来一个一个学习。

伪指令 1.ORG伪指令

ORG伪指令称为起始汇编伪指令,常用于汇编语言某程序段的开始或某个数据块的开始。

一般格式为:

   [标号:]       ORG        16位地址

其标号为可选项。例如:

                       ORG       0040H

  MAIN:

                       MOV       SP,#0DFH

                       MOV       30H,#00H

此处的ORG伪指令指明后面的程序从0040H单元开始存放。

2.END伪指令

END伪指令称为结束汇编伪指令,用于汇编语言程序段的末尾,指示源程序在END处结束汇编,即便是END后面还有程序,也不做处理。

一般格式为:

END       

3.EQU伪指令

EQU伪指令称为赋值伪指令、其一般格式为:

 符号名   EQU   项(常数、常数表达式、字符串或地址标号)

EQU的功能是将右边的项赋值给左边。在汇编过程中,遇到EQU定义的符号名,就用其右边的项代替符号名。

注意:EQU只能先定义后使用

例题:EQU应用举例

 HOUR   EQU    30H                       ;定义变量HOUR的地址为30H

 MINU    EQU     31H                      ;定义MINU的地址为31H

 REG     EQU      R7                        ;定义字符串R7

 DISP    EQU     0800H                   ;定义变量DISP的地址为0800H

              MOV     HOUR,#09H         ;变量HOUR赋值9

              MOV     R0,#HOUR          ;使变量R0指向30H单元

              INC       R0                        ;指针R0增1

              MOV      @R0,#25             ;变量MINU赋值25

              MOV     REG,A                  ;(A)→R7

              LCALL   DISP                   ;调用首地址为0800H处子程序

4.DATA伪指令

DATA伪指令(地址+数据)称为数据地址赋值伪指令。

其一般格式为:

  符号名     DATA     常数或常数表达式

DATA的功能与EQU相似,是将右边的项赋值给左边。在汇编过程中遇到DATA定义的符号名,就用其右边的项符号名。该伪指令用于定义片外数据区变量。

与DATA类似的还有一条伪指令XDATA,用于定义片外数据区变量。

注意:DATA可以先定义后使用,当然也可以先使用后定义。

 HOUR   DATA    30H                      ;定义变量HOUR的地址为30H

 MINU    DATA    31H                      ;定义MINU的地址为31H

              MOV     HOUR,#09H         ;变量HOUR赋值9

              MOV     R0,#HOUR          ;使变量R0指向30H单元

              INC       R0                        ;指针R0增1

              MOV      @R0,#25             ;变量MINU赋值25

5.BIT指令

BIT伪指令称为位地址符号伪指令。其格式为:

  符号名       BIT      位地址

BIT伪指令的功能是把右边的地址赋值给昨天的符号名。位地址可以是前面所述的4中形式的任一种。

例如:

FLAGRUN  BIT  00H

FLAGMUS  BIT  01H

FLAGKEY  BIT  02H

FLAGALAR  BIT  P1.7

6.DB指令

DB伪指令称为定义字节伪指令。其格式为:

  [标号:]   DB   项(字节数据、字节数或字符、字符串)

它的功能是从指定单元开始定义(存储)若干个字节的数据或字符、字符串,字符或字符串需要用引号(单引号或双引号皆可)括起来,即用ASCII码表示。其中标号是可选的。

例如:

   TABLE:      DB    32,24H,'A',"B","EFGH"

7.DW指令

DW伪指令称为定义字伪指令。其格式为:

  [标号:]   DW   字数据或字数据表

DW伪指令的功能与DB伪指令的相似,是从指定单元开始定义(存储)若干个字数据,每个数据占2个字节,而用DB伪指令定义的数据只占1个字节。其中标号是可选的。

例如:

  ORG        1000H

 TABLE2:    DW             32,24H,1234H

上面这两行程序汇编后,从1000H单元开始,依次存放如下数据:

(1000H)=00H

(1001H)=20H

(1002H)=00H

(1003H)=24H

(1004H)=12H

(1005H)=34H

注意:高字节存放在前面(低地址),低字节存放在后面(高地址)。

汇编语言程序设计 简单程序设计

简单程序是指顺序执行的程序。简单程序从第一条指令开始,依次执行每一条指令,直到程序执行完毕,之间没有任何转移和子程序调用,整个程序只有一个入口和一个出口。

分支程序设计 

在许多情况下,程序会根据不同的条件,转向处理不同的处理程序,这种结构的程序称为分支程序。使用条件转移指令、比较转移指令和位条件转移指令,可以实现程序的分支处理。

在汇编语言程序中,分支结构式比较麻烦的,初学时应特别注意。

循环程序设计 

循环程序由一下几个部分组成

(1)循环初始化部分

(2)循环体部分

(3)循环结束部分

 子程序设计

子程序是指完成某一确定任务,并且能够被其他程序反复调用的程序段。采用子程序,可以简化程序,提高编程效率。

子程序在结构上有一定的要求,编写时需要注意:

(1)子程序第一条指令的地址称为入口地址,该指令前必须要有标号,其标号一般要能够说明子程序的功能。

(2)子程序末尾一定要有返回指令,而调用子程序的指令应该在其他程序中。

(3)在子程序中,要注意保护在主调函数中使用的寄存器和存储单元中的数据,必要时在子程序开始使其进栈保护,在子程序返回前再出栈恢复原来值。

(4)字子程序中,要明确指出“入口参数”和“出口参数”,入口参数就是在调用前需要给子程序准备的数据,出口参数就是程序的返回值。

参数的传递有以下几种方式

(1)通过寄存器R0~R7或累加器A

(2)传递地址。入口参数和出口参数的数据存放在存储器中,使用R0、R1或DPTR传递指向数据的地址。

(3)通过堆栈传递参数

 

有问题欢迎提出! 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭