文档详情

单片微型计算机原理及接口技术-6-汇编语言程序设计基础知识.pptx

发布:2025-04-27约2.84千字共14页下载文档
文本预览下载声明

单片微型计算机原理及接口技术(6)1/14

从本节开始,介绍单片机的汇编语言程序设计,对应教材的第4章。如果只使用编程效率很高的C语言进行程序开发,可跳过本章内容。2/14

为什么还要学汇编语言?(1)汇编语言有助于原理理解。(2)资源有限。(3)时序要求严格的情况。(4)在嵌入式操作系统的移植过程中,还用到少许的汇编语言。(5)此时不学,今后没有汇编语言相关课程的讲解了。3/14

内容提纲一汇编语言程序设计基础知识二汇编语言程序仿真过程4/14

内容提纲一汇编语言程序设计基础知识二汇编语言程序仿真过程5/14

1.伪指令伪指令并不产生目标程序,不影响程序的执行,仅仅产生供汇编用的某些指令,以便在汇编时执行一些特殊操作。(1)设置起始地址ORG(Origin)ORGaddr16其中,ORG是该伪指令的操作助记符,操作数addr16是16位二进制数,前者表明为后续源程序汇编后的目标程序安排存放位置,后者则给出了存放的起始地址值。ORG伪指令总是出现在每段源程序或数据块的开始。可使程序员把程序、子程序或数据块存放在存储器的任何位置。例如:ORG 0000H LJMP MAIN表示目标程序从0000H单元开始存放。若在源程序开始不放ORG指令,则汇编将默认从0000H单元开始存放目标程序。6/14

(2)定义字节DB(DefineByte)〈标号:〉DB〈项或项表〉其中项或项表是指一个字节、数或字符串,或以引号括起来的ASCⅡ码字符串。该指令的功能是把项或项表的数值(字符则用它的ASCⅡ码表示)存入从标号开始的连续单元中。例如:HERE:DB84H ;(HERE)=84DB43H ;(HERE+1)=43H又如:ORG1000HSEG:DB23H,’MCS-51’则:(1000H)=23H SEG的地址为1000H (1001H)=4DH ‘M‘的ASCⅡ码(1002H)=43H ‘C’的ASCⅡ码(1003H)=53H ‘S’的ASCⅡ码(1004H)=2DH ‘-‘的ASCⅡ码(1005H)=35H数字5的ASCⅡ码(1006H)=31H 数字1的ASCⅡ码注意:在使用时,作为操作数部分的项或项表,若为数值,其取值范围应为00~FFH,若为字符串,其长度应限制在80个字符内(由汇编程序决定)。7/14

(3)定义字DW(DefineWord)〈标号:〉DW〈项或项表〉DW的基本含义与DB相同,但DB一般用于定义8位数据(一个字节。DW定义16位数据,即一个字。在执行汇编程序时,机器会自动按低位字节在前,高位字节在后的格式排列(与程序中的地址规定一致)。所以DW伪指令常用来建立地址表。例:ABC:DW1234H,08HABC:DB12H,34H,00H,08H上两条指令是等价的。伪指令DB、DW均是根据源程序需要,用来定义程序中用到的数据(地址)或数据块。一般应放在源程序之后,汇编后的数据块将紧挨着目标程序的末尾地址开始存放。8/14

(4)为标号赋值EQU(Equate)〈标号〉EQU数值或表达式其功能是将语句操作数的值赋于本语句的标号,故又称为等值指令。如:BLKEQU1000H即把值1000H赋给标号BLK。需要注意的是,在同一程序中,用EQU伪指令对标号赋值后,该标号的值在整个程序中不能再改变。(5)DATA指令符号名DATA表达式DATA指令用于将一个内部RAM的地址赋给指定的符号名。数值表达式的值在00H~0FFH之间,表达式必须是一个简单表达式。如:BUFFERDATA40H9/14

(6)XDATA指令(ExternalData)符号名XDATA表达式XDATA指令用于将一个外部RAM的地址赋给指定的符号名。数值表达式的值在0000H~0FFFFH之间,表达式必须是一个简单表达式。如:MYDATAXDATA0400H(7)定义位命令BIT字符名称BIT位地址该指令用于给字符名称定义位地址。如:DOGOUTBIT

显示全部
相似文档