首页 理论教育 MCS-51单片机汇编语言简介

MCS-51单片机汇编语言简介

时间:2023-06-22 理论教育 版权反馈
【摘要】:MCS-51单片机指令采用助记符表示的汇编语言指令格式如下:[标号:]操作码 操作数或操作数地址 {;注释}标号。MCS-51单片机指令系统共使用了7种寻址方式:立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。

MCS-51单片机汇编语言简介

1.指令格式

指令是指示计算机执行某种操作的命令。一台计算机所能执行的全部指令的集合称为这台计算机CPU的指令系统。指令系统的功能强弱在很大程度上决定了这台计算机性能的高低。

由于计算机只能识别二进制数,因此用二进制编码表示的机器语言,计算机能直接执行。例如:计算10+20,则在MCS-51单片机中用机器码编程如下:

01110100 ;将某一数送到累加器A中

00001010 ;被送的数是10(0AH)

00100100 ;将累加器A中的内容与某数相加,结果送到A中

00010100 ;被加数是20(14H)

为便于书写,用十六进制代码表示指令,即

74H 0AH 24H 14H

显然,用机器语言编写程序不易记忆、不易查错、难于阅读和调试、容易出错而且出错不易查找,为克服上述缺点,可采用有一定含义的符号,即指令助记符来表示,于是出现了汇编语言

汇编语言是用助记符、符号和数字来表示指令的程序语言,容易理解和记忆,它与机器语言指令是一一对应的,如上述MCS-51单片机汇编语言可写出:

MOV A,#0AH ;将数10(0AH)送到累加器A中

ADD A,#14H ;将累加器A中的内容与20(14H)相加,结果送到A中

MCS-51单片机指令系统共有33种功能,42种助记符,111条指令,将在以下各章中予以介绍。

MCS-51单片机指令采用助记符表示的汇编语言指令格式如下:

[标号:]操作码 操作数或操作数地址 {;注释}

(1)标号。标号是根据编码需要给指令设定的符号地址,可省略;标号由1~8个字符组成,第一个字符必须是字母或下划线,不能是数字或其他,标号后必须用冒号。注意标号不能与汇编语言保留字重名。

(2)操作码。操作码表示指令的操作类型,即执行什么样的操作,不能省略。

(3)操作数。操作数表示参加运算的数据或数据的有效地址。视指令的不同可以没有操作数,可以只有一个,也可以有两个。

(4)注释。注释是对指令的解释说明,提高程序的可读性,之前必须加“;”号,是非执行语句。

注意:书写指令时出现的所有标点符号均是英文半角状态下的符号,不能用中文标点符号。

2.寻址方式

所谓寻址方式,就是如何寻找存放操作数的地址,把操作数提取出来的方法。

在汇编语言程序设计中,要根据系统的硬件环境编程,数据的存放、传送、运算都要通过汇编指令完成,汇编者必须自始至终都十分清楚操作数的位置(地址),以便将它们送到适当的地方(地址)去操作。

在汇编语言中,操作数一般可以存放在寄存器中、片内某一单元中或指令中。

MCS-51单片机指令系统共使用了7种寻址方式:立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。

1)立即数寻址

立即数寻址是指操作数直接包含在指令中,即数据以指令字节的形式存放于程序存储器中。执行这类指令时,操作码译码后就能立即在其后的单元中取得操作数。其寻址空间为程序存储器。例如:

MOV A,# 20H ;A←20H,将数值20H送入累加器A(H表示该数为十六进制数)

机器指令:74H 20H

该指令的含义是:数据20H在指令中给出,将常数20H 传送到累加器A中。

注意:立即数前面必须加“#”,用以区别立即数和直接地址。

立即数寻址执行过程如图2.1所示。

2)直接寻址

直接寻址是指存放数据的地址直接写在指令中。其寻址空间是:内部RAM的低128字节(00H~7FH);特殊功能寄存器SFR区(80H~FFH)。

应当指出,直接寻址是访问特殊功能寄存器的唯一方法。例如:

MOV A,30H ;A←(30H),30H单元的数据送入累加器A

该指令的含义是:数据20H在片内RAM地址30H中,从30H单元取出数据20H放入累加器A中。

直接寻址执行过程如图2.2所示。

图2.1 立即数寻址执行过程

图2.2 直接寻址执行过程

3)寄存器寻址

寄存器寻址是指数据存放在给定的寄存器中。寄存器包括工作寄存器R0~R7、累加器A、通用寄存器B、地址寄存器DPTR等。例如:

MOV A, R1 ;A←R1中的内容送入累加器A

该指令的含义是:数据在R1中,取出存放在R1中的数据送到累加器A中。

寄存器寻址执行过程如图2.3所示。

4)寄存器间接寻址

寄存器间接寻址是指存放数据的地址在寄存器中,指令中给出存放地址的寄存器。在指令执行时,首先根据寄存器的内容找到数据的地址,再由这个地址找到数据。

注意:指令中给出的寄存器前必须加上“@”,以区别寄存器寻址,此时寄存器中的内容不是数据,而是数据所在存储元的地址。

例如:

MOV R0,#30H

MOV A,@R0 ;A←(R0)寄存器R0中的内容作为地址,将该地址的内容送入A

该指令含义是:数据的地址在R0,R0中的内容为30H,所以数据在地址30H中,将地址30H存放的数据送到累加器A中。

寄存器间接寻址执行过程如图2.4所示。

注意:该寻址方式的寄存器只能是R0、R1和DPTR。

图2.3 寄存器寻址执行过程

图2.4 寄存器间接寻址执行过程

5)变址寻址

变址寻址是指将基址寄存器与变址寄存器的内容相加,其结果作为数据的地址。这类寻址方式主要用于查表操作。

基址寄存器:16位的程序计数器PC或16位的数据指针DPTR。

变址寄存器:8位的累加器A。例如:

MOVC A,@A+DPTR ;A←(A+DPTR)。

该指令的含义是:数据的地址为16位,A和DPTR相加后的结果作为数据的地址,将该地址的数据取出送到累加器A中。假定指令执行前(A)=02H,(DPTR)=0FFEH,而1000H单元的内容为20H,故该指令执行结果是A的内容为20H。

变址寻址执行过程如图2.5所示。

图2.5 变址寻址执行过程

注意:@表示相加后的值作为要取的数据的地址。

6)相对寻址

相对寻址是指将程序计数器PC的当前作为基准,与指令中给出的相对偏移量(REL)相加,其结果作为跳转指令的转移地址。这类寻址方式主要用于跳转指令。

一般在指令中给出转移标号(地址),机器码中的偏移量在汇编时给出。写程序时不需要自己计算,只需写出转移标号就可以了。例如:

SJMP LOOP

表示程序跳转标号为“LOOP”的地方执行。

7)位寻址

位寻址是指按位进行的寻址方式。其数据是1位(bit),不同于以上所说的数据均为8位(byte)。存放位的地址可以是片内位寻址区域的位地址或特殊功能寄存器中的部分位地址。

在MCS-51 单片机系统中,位地址的表示可以采用以下几种方式。

(1)直接地址表示法。用地址位地址来表示。例如:

MOV C ,7FH ;其中7FH表示位地址

(2)点操作符表示法。用地址单元的某位表示。 例如:

MOV C ,20H.4 ;表示20H单元的第4位

(3)位名称表示法。适用于有名称的特殊功能寄存器中的位。例如:

SETB RS1 ;RS1为特殊功能寄存器PSW(程序状态寄存器)中的一位。

3.MCS-51单片机执行指令的过程

单片机的工作过程就是执行程序的过程,也就是执行指令的过程。指令的执行分为取指令和执行指令两个阶段,所以单片机的工作过程就是周而复始地取指令和执行指令的过程。

在取指令阶段,单片机从程序存储器中取出指令操作码,送指令寄存器,再经指令译码器译码,产生一系列的控制信号,然后进入指令执行阶段,就是利用指令译码产生的控制信号,进行本指令规定的数据操作。

计算10+20,在MCS-51单片机中用汇编语言编程为

MOV A, #0AH ;将数10(用十六进制表示为0AH)送到累加器A中

ADD A, #14H ;将累加器A中的内容与数20(用十六进制表示为14H)相加,结果送到A中用机器码编程为

01110100 ;将某一数送到累加器A中

00001010 ;被送的数是10(0AH)

00100100 ;执行将累加器A中的内容与某数相加,结果送到A中

00010100 ;被加数是20(14H)

为便于书写,编译后产生的机器码用十六进制代码表示指令,即

74H 0AH 24H 14H

编好的程序以指令代码形式存入程序存储器,共占4个存储单元,假定从0000H单元开始存放,如图2.6所示。

1)取指令

单片机开机后,程序计数器PC=0000H,第一条指令的取指令阶段如下:

(1)PC中的0000H送到片内的地址寄存器。

(2)PC的内容自动加1,变为0001H,指向下一个指令字节。

(3)地址寄存器中的内容0000H通过内部地址总线送到存储器,经存储器中的地址译码选中0000H单元。

(4)CPU通过控制内部总路线发出读命令。

(5)被选中单元的内容74H送内部数据总线,该内容通过内部数据总线到单片机内部的指令寄存器。

图2.6 机器码程序存储

(6)读出的操作码送指令寄存器(IR)。

(7)经指令译码器译码,发出执行本指令所需的控制信号。

到此,第一条指令的取指令过程结束,进入执行指令过程。

2)执行指令

第一条指令执行阶段如下:

(1)指令寄存器中的内容经指令译码后,表示把一个立即数送入A中。

(2)PC的内容为0001H,送内地址寄存器,译码选中0001H单元,同时PC的内容自动加1变为0002H。

(3)CPU同样通过控制总线发出读命令。

(4)0001H单元的内容0AH读出经内部数据总线送至A。

至此,第一条指令执行完毕,0AH被送入累加器A中。

然后,单片机执行第二条指令的取指令操作,取出加法指令的操作码。在指令的执行阶段,取出数14H,与A中内容相加,并把相加结果保存累计器中,程序执行完毕。

4.MCS-51单片机指令系统

MCS-51单片机指令系统共有111条指令。下面按指令的执行功能分类,简单描述它们的作用。

数据传送指令主要完成数据的传送。数据传送指令的操作码助记符为MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP等。

这类指令除了直接用指令修改PSW内容外均不影响程序状态标志位CY、AC、OV位,但可能会影响到P标志位,视不同指令而定。

数据传送操作是指把数据从源地址传送到目的地址,源地址的值不变,根据源操作数与目的操作地址的不同,可分为片内数据传送指令、片外数据传送指令、程序单元的数据传送等。

1)8位数据传送指令

(1)以累加器A为目的地址的数据传送指令。

MOV A,Rn ;A←Rn

MOV A,direct ;A←(direct)

MOV A,@Ri ;A←(Ri)

MOV A,# data ;A←# data

这组指令的功能是把源操作数的内容送入累加器A。源操作数有寄存器寻址、直接寻址、寄存器间接寻址和立即数寻址等寻址方式。

这组指令运行后改变累加器A的值,指令的运行结果影响程序状态寄存器PSW中的P标志位。

例如:

MOV A,# 21H ;A←21H,指令执行后,A中的内容为21H

MOV A,21H ; A←(21H),指令执行后,21H单元内容不变,A中的内容为21H单元的内容

(2)以Rn为目的地址的数据传送指令。

MOV Rn,A ;Rn←A

MOV Rn,direct ;Rn←(direct)

MOV Rn,#data ;Rn←data

这组指令的功能是把源操作数的内容送入当前工作寄存器R0~R7中某一个寄存器。源操作数有寄存器寻址、直接寻址和立即数寻址等寻址方式。例如:

MOV R0,A ;R2←A

MOV R1,20H ;R1←(20H)

MOV R2,# 0FAH ;R2←FAH

(3)以直接地址为目的地址的传送指令。

MOV direct,A ;direct←A

MOV direct,Rn ;direct←Rn

MOV direct,direct ;direct←direct

MOV direct,@Ri ;direct←(Ri)

MOV direct,# data ;direct←data

这组指令的功能是把源操作数送入由直接地址指出的存储单元。源操作数有寄存器寻址、直接寻址、寄存器间接寻址和立即数寻址等寻址方式。例如:

MOV 00H,# 10H ;00H←10H

MOV 50H,R1 ;50H←R1

MOV 0E0H,30H ;E0H←(30H)

MOV 50H,@R0 ;50H←(R0)(www.xing528.com)

(4)以寄存器间接地址为目的地址的传送指令。

MOV @Ri,A ;(Ri)←A

MOV @Ri,direct ;(Ri)←(direct)

MOV @Ri,# data ;(Ri)←data

这组指令的功能是把源操作数内容送入R0或R1指出的内部RAM存储单元中,源操作数有寄存器寻址、直接寻址和立即寻址等寻址方式。例如:

MOV @R0,A ;(R0)←A

MOV @R1,30H ;(R1)←(30H)

MOV @R0,# 80H ;(R0)←80H

2)16位数据传送指令

16位数据传送指令格式为

MOV DPTR,# data16 ;DPTR←data16

这条指令的功能是把16位常数送入DPTR。

16位的数据指针DPTR既可当作一个16位的寄存器使用,也可以分成两个8位寄存器DPH和DPL使用,DPH中存放DPTR中的高8位,DPL中存放DPTR中的低8位。例如:

MOV DPTR,# 1234H ;DPTR←1234H,即DPH←12H,DPL←34H

3)堆栈操作指令

(1)进栈指令。

PUSH direct ;SP←SP+1,(SP)←(direct)

该指令将direct直接地址单元的内容送到堆栈区栈顶地址保存,同时修改栈顶指针SP。应当指出,这条指令的源操作数的寻址方式只能是直接寻址方式。例如:

(SP)=30H,(ACC)=10H,(B)=20H,执行下列程序段

PUSH ACC ;SP←SP+1,即(SP)=31H,(31H)←(ACC)

PUSH B ;SP←SP+1,即(SP)=32H,(31H)←(B)

结果是:(31H)=10H,(32H)=20H,(SP)=32H,如图2.7和图2.8所示。

图2.7 入栈前示意图

图2.8 入栈后示意图

(2)出栈指令。

POP direct ;(direct)←(SP),SP←SP-1

该指令是将堆栈区栈顶地址的内容取出放到direct直接地址单元中,同时修改栈顶指针SP。例如:

(SP)=32H,(32H)=20H,(31H)=10H,执行下列程序段:

POP DPH ;DPH←(SP),SP←SP-1

POP DPL ;DPL←(SP),SP←SP-1

结果是:(DPTR)=2010H,(SP)=30H,如图2.9和图2.10所示。

图2.9 出栈前示意图

图2.10 出栈后示意图

4)字节交换指令

XCH A,Rn ;A←→Rn

XCH A,direct ;A←→(direct)

XCH A,@Ri ;A←→(Ri)

这组指令的功能是将累加器A的内容和源操作数内容互相交换。源操作数有寄存器寻址、直接寻址和寄存器间接寻址等寻址方式。这组指令结果影响程序状态寄存器PSW的P标志位。

XCHD A,@Ri ;(A)0~3←→((Ri))0~3

该指令将累加器A中的低4位与Ri中的内容所指示的片内RAM单元中的低4位数据相互交换,其执行结果不影响程序状态寄存器PSW的标志位。

5)片外数据传送指令

(1)外部RAM与累加器A之间的传送指令。

① 外部RAM256字节单元与累加器A之间的数据传送。

MOVX A, @Ri ;A←(Ri)

MOVX @Ri, A ;(Ri)←A

这组指令与P2配合应用也可以寻址64 KB范围。例如:

MOV P2,# 10H ;P2口锁存器置10H,P2引脚也输出10H

MOV R0,# 60H ;R0赋值60H

MOVX A,@R0 ;A←(1060H)

② 64 KB外部RAM单元与累加器A之间的数据传送。

MOVX A,@DPTR ;A←(DPTR)

MOVX @DPTR,A ;(DPTR)←A

这组指令也可以看作外部I/O的输入输出指令。

(2)程序存储器ROM与累加器A之间的传送指令。

MOVC A,@A+PC ; PC←(PC)+1,A←((A)+(PC))

MOVC A,@A+DPTR ; A←(( A )+(DPTR))

【例2.1】设片内RAM的30H单元的内容为40H,40H单元的内容为10H,10H单元的内容为00H,端口P1中的内容为0CAH。试分析下列程序并说明:

① 各条指令是什么寻址方式?

② 程序执行后各单元、寄存器及端口的内容。

MOV R0,# 30H ;立即数寻址,R0←30H

MOV A,@R0 ;寄存器间接寻址,A←40H

MOV R1,A ;寄存器寻址,R1←40H

MOV B,@R1 ;寄存器间接寻址,B←10H

MOV @R1,P1 ;寄存器间接寻址,40H←0CAH

MOV 10H, # 20H ;立即数寻址,10H←20H

程序执行后,R0=30H,A=40H,B=10H,P2=0CAH,P1=0CAH,(40)=0CAH,(10H)=20H。

6)算术运算指令

算术运算指令可以完成加、减、乘、除运算以及加1、减1和BCD码(二进码+进数)调整操作,指令助记符为ADD、ADDC、SUBB、MUL、DIV、INC、DEC、DA等。

这类指令除加1、减1外的执行结果将影响程序状态字PSW中的CY、AC、OV位。由于奇偶校验位P始终跟随累加器A的内容变化,所以通常所说的被影响的标志位中不包含P位。

7)逻辑运算指令

逻辑运算指令包括逻辑与、逻辑或、逻辑异或、对累加器A清零、取反、移位等操作。指令助记符为ANL、ORL、XRL、RL、CPL、CLR等,逻辑运算指令只要改变累加器A的内容,都会改变PSW中P标志位,其他不影响标志位。

MCS-51单片机的移位指令只能对累加器A进行移位,有不带进位的循环左右移和带进位的循环左右移指令,共4条。

(1)循环左移指令。

汇编指令格式: RL A

该指令是将累加器A的内容向左循环左移1位,原D0位数移入D1位,D1位数移入D2位,…,D6位数移入D7位,最高位(D7位)移入最低位(D0位)。该指令不影响标志位。

例如:A中值为78H,则执行:RL A

78H转换为二进制数为01111000,按照上述规定移动,01111000左移后变为11110000,转换为十六进制为F0H。

(2)带进位循环左移指令。

汇编指令格式: RLC A

该指令是将累加器A的内容和进位标志一起循环向左移动1位,原D0位数移入D1位,D1位数移入D2位,…,D6位数移入D7位,最高位(D7位)移入进位位CY,CY移入最低位D0。该指令结果影响程序状态寄存器PSW的P标志和进位标志CY,不影响其他标志位。

例如:A中的值为78H,C中的值为1,则执行:RLC A

78H为01111000,加上进位位101111000,按上述规律向左移动后为0111101,也就是C进位位的值变成了0,而A的内容变成F1H。

(3)循环右移指令。

汇编指令格式: RR A

该指令的功能是将累加器A的内容向右循环移动1位,原D7位数移入D6位,D6位数移入D5位,…D1位的数移入D0位,最低位D0位移入最高位D7位。该指令不影响标志位。

例如:A中的值为56H,则执行:RR A

开始,A=56H=01010110B,执行RR A后,A=00101011B,即A=2BH。

(4)带进位循环右移指令。

汇编指令格式: RRC A

该指令的功能是将累加器A的内容和进位标志CY一起循环向右移动1位,最低位D0进入进位位CY,CY移入最高位D7,D7位数移入D6位,D6位数移入D5位,…,D1位的数移入D0位。该指令结果影响程序状态寄存器PSW的P标志和进位标志位CY,不影响其他标志。

例如:A中的值为56H,C中的值为1,执行:RRC A

101010110,执行RRC命令后变为0 10101011,也就是C进位位的值变为0,A=10101011B,即A=ABH。

8)控制转移指令

控制转移指令可以修改程序计数器的值,从而改变程序的执行方向。控制转移指令包括无条件转移指令、条件转移指令、子程序调用和返回指令,指令助记符为LJMP、AJMP、SJMP、JMP、ACALL、LCALL、JB、JNB、JC、JNC、JZ、JNZ、CJNE、DJNZ、RET、RETI等。

程序的顺序执行是由程序计数器PC自动加1实现的。要改变程序的执行顺序,实现分支转向,应通过强迫改变PC值的方法来实现,这就是控制转移类指令的基本功能。共有两类转移:无条件转移和条件转移。

(1)无条件转移指令。无条件转移指令是无条件地改变程序的执行方向,此操作可以改变PC的值,即将转移的目的地址赋值给PC,根据赋值的方式不同分为以下四种。

绝对转移指令:

AJMP addr11 ;PC10~0←addr11

AJMP指令的功能是构造程序转移的目的地址,实现程序转移。构造方法为:以指令提供的11位去替换PC的低11位的内容,其余高5位不变,形成新的PC值,此即转移的目的地址。即执行指令时,先PC加2,然后把addr11送入PC.10~PC.0,PC.15~PC.11保持不变,程序转移到目标地址。

例如:程序中2070H地址单元有绝对转移指令:

2070H AJMP 16AH

取出绝对转移指令后,PC=2070H+2=2072H

addr11是地址,是无符号数,其最小值为000H,最大值为7FFH,因此绝对转移指令所能转移的最大范围是2 KB,即这条指令执行完(PC+2)后的当前地址的2 KB范围。

相对转移指令(短转移指令):

SJMP rel ;PC←PC+rel

SJMP是相对寻址方式转移指令,其中rel为相对偏移量,其功能是计算目的地址,并按计算得到的目的地址实现程序的相对转移。计算公式为:目的地址=PC+2+rel。

偏移量rel是一个带符号的8位二进制补码数。相对跳转指令可以跳转到以当前指令为基准的256 B范围内。在编写程序时,直接写上要转向的目标地址标号就可以。例如:

长跳转指令:

LJMP addr16 ;PC←add16

该指令执行后把16位地址(addr16)送入PC,从而实现程序转移。

该指令为三字节指令,3个字节依次存放操作码、PC的高8位地址和低8位地址。该指令执行后,PC将无条件地转向addr16指示的目标地址。目标地址可以在64 KB程序存储器地址空间的任何位置。

间接转移指令(散转指令):

JMP @A + DPTR ;PC←A+DPTR

该指令可以跳转到64 KB范围内,指令的转移地址由DPTR和累加器的和决定。

该指令一般通过改变A的值可使程序跳到不同的地址执行。以DPTR内容作为基址,A的内容作为变址。给A赋予不同的值,即可实现程序的多分支转移。

(2)条件转移指令。所谓条件转移,就是程序转移是有条件的,当指令中规定的条件满足时,则进行程序转移,否则程序顺序执行。

减1非零转移指令DJNZ:

寄存器减1条件转移指令

格式:DJNZ Rn,rel

功能:Rn←Rn-1

若Rn≠0,则PC←PC+rel,转移;否则(Rn=0),顺序执行。

直接寻址单元减1条件转移指令

格式:DJNZ direct,rel

功能:direct←(direct)-1

若(direct)≠0,则PC←(PC)+rel,转移;否则,((direct)=0),顺序执行。

这组指令的操作是先将工作寄存器或直接地址单元的操作数减1,并保存在原单元中。若减1后操作数不为0,则转移到规定的地址执行;若操作数减1后为0,则继续向下执行,其执行流程如图2.11所示:指令DJNZ常用在循环程序中控制循环次数。

图2.11 减1非零转移指令执行流程

累加器A判零转移指令:

JZ rel

功能:若(A)=0,则转移,PC←(PC)+2+rel;若(A)≠0,则程序顺序执行。

JNZ rel

功能:若(A)≠0,则转移,PC←(PC)+2+rel;若(A)=0,则程序顺序执行。

注:指令DJNZ、JZ、JNZ都占用2个机器周期。

9)位操转移指令

MCS-51单片机拥有位操作类指令,这是由于MCS-51单片机内含有一个位(布尔)处理器,它是以位为单位进行操作的,具有位处理功能。位操作指令可以完成位传送、位运算、位控制转移等功能。

10)伪指令

汇编语言程序的机器汇编是由计算机自动完成的。为此,在源程序中应有向汇编程序发出的指示信息,指示应该如何完成汇编工作。这一任务是通过伪指令来实现的。伪指令不是真正的汇编指令,无对应的机器码,在汇编时不产生目标代码(机器码),只是用来对汇编过程进行某种控制,如控制汇编程序的输入输出、定义数据和符号、条件汇编、分配存储空间等功能。

本项目中用到的两个常用汇编伪指令为ORG和END。

(1)ORG: 汇编起始地址指令。

① 格式:[<标号:>]ORG 16位地址

② 功能:规定该伪指令后面程序的汇编地址,即汇编后生成目标存放的起始地址。例如:

ORG 0100H ;表示汇编后程序从100H地址开始存放

ORG出现时,下一条指令的地址就重新定位

(2)END:汇编结束指令。

格式:END ;表示程序到此结束

END为汇编语言源程序结束标志,用于整个汇编程序的末尾处,在编译时指明程序到此结束,停止编译,即在END之后所有的汇编语言指令均不予以汇编。一个源程序只能有一条END指令。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈