最新微机原理第四章PPT课件.ppt
《最新微机原理第四章PPT课件.ppt》由会员分享,可在线阅读,更多相关《最新微机原理第四章PPT课件.ppt(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理第四章微机原理第四章第四章第四章汇编语言程序设计基础汇编语言程序设计基础第一节、概述第二节、基本程序设计方法第三节、汇编语言程序的编辑和汇编标号的使用有以下规定:标号的使用有以下规定:(1)标标号号由由大大写写英英文文字字母母开开头头的的字字母母和和数数字字串串组组成成,长长度度为为18个个字字符符。最最后后必须以冒号必须以冒号“:”结束。结束。(2)不不能能使使用用指指令令助助记记符符、CPU的的寄寄存存器名以及伪指令等作为标号。器名以及伪指令等作为标号。(3)同一程序内,标号必须互不相同。)同一程序内,标号必须互不相同。(4)为为便便于于阅阅读读程程序序,最最好好使使标标号号字字符
2、符有一定含义。有一定含义。3、伪指令、伪指令MCS-51单单片片机机汇汇编编语语言言,包包含含两两类类不不同同性性质的指令。质的指令。(1)基基本本指指令令:即即指指令令系系统统中中的的指指令令。它它们们都都是是机机器器能能够够执执行行的的指指令令,每每一一条条指指令令都都有对应的机器码。有对应的机器码。(2)伪伪指指令令:汇汇编编时时用用于于控控制制汇汇编编的的指指令令。它们都是机器不能执行的指令,无机器码。它们都是机器不能执行的指令,无机器码。(1)(1)、定位伪指令、定位伪指令ORG格式格式:ORG16位地址或标号位地址或标号功能功能:用在一段源程序或数据块的前面,说明紧用在一段源程序或
3、数据块的前面,说明紧随在后的程序段或数据块的起始地址。随在后的程序段或数据块的起始地址。例如:例如:ORG2000HSTART:MOVA,#64H END说明说明START的的值为值为2000H(2)(2)、汇编结束伪指令、汇编结束伪指令END 格式格式:标号:标号:END表达式表达式功功能能:用用在在汇汇编编语语言言源源程程序序的的最最后后,是是源源程程序序的的结结束束标标志志。在在机机器器汇汇编编时时,当当汇汇编编程程序序检检测测到到该该语语句句时时,它它就就确确认认汇汇编编语语言言源源程程序序已已经经结结束束,对对END后面指令都不予汇编。后面指令都不予汇编。如如果果源源程程序序是是一一
4、段段子子程程序序,END后后不不写写表表达达式式;若若是是主主程程序序,则则必必须须写写表表达达式式,所所写写表表达达式式就就是是该该主主程程序序第第一一条条指指令令的的标标号号,表表示示该该程程序序的的可可执执行段的首地址。行段的首地址。(3)(3)、赋值伪指令、赋值伪指令EQU格式格式:字符名称字符名称EQU表达式表达式功功能能:汇汇编编程程序序自自动动把把EQU右右边边的的“表表达达式式(8位位或或16位位)”的的值值赋赋给给左左边边的的“字字符符名名称称”。“字字符符名名称称”必必须须先先赋赋值值后后使使用。用。EQUEQU伪指令与存储单元无关。伪指令与存储单元无关。在在某某程程序序中
5、中,一一旦旦用用EQU伪伪指指令令对对某某字字符符名名称称赋赋值值之之后后,就就不不能能再再用用EQU伪伪指指令令来来改改变变其其值值,其其值值在在整整个个程程序序中中是是固固定定的的。这这里里“字字符符名名称称”不不同同于于标标号号,因因此不加冒号。此不加冒号。例:ORG2000HBTEQUR3DATAEQU30HDELAYEQU1050HMOVR0,DATA;R0(30H)MOVA,BT;A(R3)LCALLDELAY;调用;调用1050H子程序子程序 END(4)、定义字节伪指令定义字节伪指令DB格式格式:标号:标号:DBX1,X2,Xn功能功能:把把右右边边的的Xi(i=1n)依依次次
6、存存放放到到以以左左边边标标号号为为起起始始地地址址的的连连续续的的存存储储单单元元中中。其其中中Xi为为8位位二二进进制制数数据据(或或十十进进制制、十十六六进进制制、表表达达式式、ASCII码码等等多多种种形形式)。式)。例:例:ORG1200HTAB:DB50H,10001100B,100,2*5,-4TAB1:DBD,2,#,ABC例中的字符以例中的字符以ASCII码存入码存入(例例如:如:D、#、ABC)。负数用补码存负数用补码存入(例如:入(例如:-4)。)。TAB的地址的地址1200HTAB1的地址为的地址为1205H(5)(5)、定义字伪指令、定义字伪指令DW格式:格式:标号:
7、标号:DWX1,X2,Xn功能:功能:DW与与DB功功能能相相似似,区区别别在在于于DB定定义义的的是是字字节节,DW定定义义的的是是字字(两两个个字字节节),所所以以Xi是是16位位的的数数据据字字或或标标号号,但但该该标标号号必必须须事先赋值。事先赋值。汇编时一个字数据占用两个连续的存储单元。汇编时一个字数据占用两个连续的存储单元。例:例:ORG1500HDATAEQU3522HADDR:DW3456H,9BH,10DWDATA高字节在前(低地高字节在前(低地址单元)址单元)低字节在后(高地低字节在后(高地址单元)址单元)(6)(6)、定义存储空间伪指令、定义存储空间伪指令DS 格式格式:
8、标号:标号:DS表达式表达式功能:功能:指指示示汇汇编编程程序序从从DS伪伪指指令令的的“标标号号”开开始始,预预留留一一定定数数量量的的存存储储单单元元,以以备备程程序序执执行行时时使使用用。预预留留单单元元数数量量由由DS语语句句中中“表表达达式式”的的值值决决定定,“表表达达式式”可可以以是是数值也可以是数学表达式数值也可以是数学表达式例:例:ORG0300HBASE:DS10DBAB(7 7)定义位地址符号伪指令)定义位地址符号伪指令BIT格式格式:字符名称:字符名称BIT位地址位地址功功能能:把把BIT右右边边的的位位地地址址赋赋给给它它左左边边的的“字字符符名名称称”B1,B2两个
9、字符定两个字符定义成位地址义成位地址01H(即(即20H.1),和),和P2口的口的第第0位。位。例:例:ORG1000HB1BIT01HB2BITP2.0MOVC,B1MOVB2,C END第三节、汇编语言程序的编辑和汇编1 1、汇编语言源程序的编辑方法、汇编语言源程序的编辑方法 编编编编辑辑辑辑:是是是是指指指指对对对对源源源源程程程程序序序序进进进进行行行行输输输输入入入入、修修修修改改改改、保保保保存存存存等等等等操操操操作作作作,从从从从而而而而正正正正确确确确的的的的将将将将汇汇汇汇编编编编语语语语言言言言源源源源程程程程序序序序输输输输入入入入计计计计算算算算机机机机,建建建建立
10、立立立以以以以.ASM.ASM.ASM.ASM为扩展名的源程序文件。为扩展名的源程序文件。为扩展名的源程序文件。为扩展名的源程序文件。三步:三步:三步:三步:1)1)1)1)用用用用编辑程序编辑程序编辑程序编辑程序生成以生成以生成以生成以.ASM.ASM.ASM.ASM为扩展名的源程序文件。为扩展名的源程序文件。为扩展名的源程序文件。为扩展名的源程序文件。2)2)2)2)用用用用汇编程序汇编程序汇编程序汇编程序生成目标文件。生成目标文件。生成目标文件。生成目标文件。3)3)3)3)用用用用连连连连接接接接程程程程序序序序把把把把多多多多个个个个目目目目标标标标文文文文件件件件连连连连接接接接在
11、在在在一一一一起起起起,形形形形成成成成一一一一个大的可执行的文件。个大的可执行的文件。个大的可执行的文件。个大的可执行的文件。由由于于单单片片机机本本身身不不具具备备开开发发功功能能,只只能能通通过过微微型型计计算算机机系系统统来来完完成成以以上上功功能能。最最终终还还必必须须借借助助于于开开发发装装置置来来排排除除应应用用系系统统在在设设计计过过程程中中的的硬硬件件故故障障、以以及及目目标标程程序序中中存存在在的的程程序序错错误误。当当目目标标系系统统调调试试成成功功以以后后,再再用用开开发发装装置置把把目目标标程程序序固固化化到到单单片片机机的的内内部部或或外外部部EPROMEPROM芯
12、芯片中。片中。几乎所有的开发装置都带有系统集成软几乎所有的开发装置都带有系统集成软件,其中都包含有相应的编辑程序。件,其中都包含有相应的编辑程序。2 2、汇编语言源程序的汇编步骤、汇编语言源程序的汇编步骤两类汇编方法:人工汇编、机器汇编两类汇编方法:人工汇编、机器汇编(1 1)人工汇编人工汇编v先先确确定定程程序序在在程程序序存存储储器器的的起起始始地地址址,然然后后按按源源程程序序的的顺顺序序逐逐条条转转换换成成机机器器语语言言代代码码,并并以以字字节节为为单单位位从从起起始始地地址址依依次次排排列列。对对暂暂时时无无法法确确定定其其实实际际值值的的标标号号或或地地址址偏偏移移量量应应预预留
13、留出出位置。位置。v全全部部翻翻译译完完成成后后,再再对对未未确确定定的的标标号号和和地地址址偏偏移移量量进进行行计计算算和和确确定定,正正确确填填入入指指令令预预留留出出的位置中。的位置中。例:对下面源程序进行人工汇编例:对下面源程序进行人工汇编 首先查指令表写出每条指令的指令代码及第一字节的地址首先查指令表写出每条指令的指令代码及第一字节的地址首先查指令表写出每条指令的指令代码及第一字节的地址首先查指令表写出每条指令的指令代码及第一字节的地址 地址地址地址地址指令代码指令代码指令代码指令代码源程序源程序源程序源程序ORG3000HORG3000H3000H3000HD291D291STAR
14、TSTART:SETBP1.1SETBP1.13002H3002H753003753003DLDL:MOV30HMOV30H,#03H#03H3005H3005H7531F07531F0DL0DL0:MOV31HMOV31H,#0F0H#0F0H3008H3008HD531D531 rel1rel1DL1DL1:DJNZ31HDJNZ31H,DL1DL1300BH300BHD530D530 rel2rel2DJNZ30HDJNZ30H,DL0DL0300EH300EHB291B291CPLP1.1CPLP1.13010H3010H空空空空1 1 空空空空2 2 AJMPDLAJMPDLENDE
15、ND对空格中的值进行计算对空格中的值进行计算 计算偏移量计算偏移量计算偏移量计算偏移量rel1rel1、rel2rel2已知:偏移量已知:偏移量已知:偏移量已知:偏移量=目标地址当前目标地址当前目标地址当前目标地址当前PCPC值值值值所以:所以:所以:所以:rel1=3008Hrel1=3008H300BH=-3300BH=-3补码表示:补码表示:补码表示:补码表示:rel1=0FDHrel1=0FDH同理:同理:同理:同理:rel2=3005Hrel2=3005H300EH=-9300EH=-9补码表示:补码表示:补码表示:补码表示:rel1=0F7Hrel1=0F7H 计算转移地址计算转移
16、地址计算转移地址计算转移地址指令原形:指令原形:指令原形:指令原形:AJMPadd11AJMPadd11,其中,其中,其中,其中add11=a10a9a1a0add11=a10a9a1a0指令代码:指令代码:指令代码:指令代码:a10a9a8a10a9a80000100001 a7a0a7a0已知:已知:已知:已知:DL=3002HDL=3002H,取其低,取其低,取其低,取其低1111位,即位,即位,即位,即add11=add11=000000 00000010B00000010B所以:空所以:空所以:空所以:空1=01H1=01H,空,空,空,空2=02H2=02H分别用求得的数将分别用求
17、得的数将分别用求得的数将分别用求得的数将4 4个空格填好,人工汇编结束个空格填好,人工汇编结束个空格填好,人工汇编结束个空格填好,人工汇编结束(2 2)机器汇编)机器汇编 机器汇编是由机器执行机器汇编是由机器执行“汇编程序汇编程序”,自动把汇编语言源程序翻译成目标代码。自动把汇编语言源程序翻译成目标代码。机器汇编的原理和人工汇编类似,实际机器汇编的原理和人工汇编类似,实际上是人工汇编的模拟。上是人工汇编的模拟。3 3、程序存储器的写入方法、程序存储器的写入方法单单片片机机的的应应用用程程序序一一但但调调试试好好后后就就固固化化在在程程序序存存储储器器中中,以以避避免免受受到到破破坏坏。程程序序
18、存存储储器器可可以以在在单单片片机机内内部部(ROM或或EPROM),也也可可在在外外部部(EPROM)。ROM型型的的存存储储器器其其程程序序是是由由厂厂家家固固化化在在芯芯片片内内。而而EPEOM型型的的存存储储器器是是可可编编程程的的,允允许许用用户户自自行行写写入入程序,但必须借助于编程器。程序,但必须借助于编程器。市市面面上上有有各各种种智智能能型型多多功功能能编编程程器器,可可连连接接在在微微机机的的并并行行口口上上,可可对对上上千千种种器器件件进进行行编编程程(即即写写入入)、测测试试、加加密密、逻逻辑辑仿仿真真等等。许许多多编编程程器器支支持持DOS和和Windows98双双平
19、平台台界界面面。此此外外许许多多仿仿真真器器也也专专门门设设置了编程器,专门对置了编程器,专门对EPROM芯片编程。芯片编程。第二节、基本程序设计方法一、程序设计步骤:一、程序设计步骤:1分分析析任任务务:对对任任务务进进行行仔仔细细的的调调查查研研究究,收收集集必必要的现场数据。要的现场数据。2确确定定算算法法:把把控控制制系系统统的的计计算算任任务务或或控控制制对对象象的的物物理理过过程程演演化化为为计计算算机机可可以以处处理理的的形形式式,并并拟拟制制出具体的算法和步骤。出具体的算法和步骤。3绘绘制制程程序序流流程程图图:将将文文字字步步骤骤加加以以图图解解,而而成成为为流流程程图图(又
20、又称称程程序序框框图图)。流流程程图图充充分分地地表表达达了了程程序序的的设设计计思思路路,将将问问题题与与程程序序联联系系起起来来,使使复复杂问题简化和收到提纲挈领的效果杂问题简化和收到提纲挈领的效果。4编编写写汇汇编编语语言言源源程程序序:根根据据流流程程图图编编写写程程序序(用用汇汇编编语语言言指指令令实实现现流流程程图图中中每每一一个个功功能能框框的的要要求求),这这就就是是源源程程序序设设计。计。6上上机机调调试试:必必须须通通过过上上机机调调试试得得到到正正确确的结果,才能认为是正确的程序。的结果,才能认为是正确的程序。v判断程序质量的三个标准:判断程序质量的三个标准:1 1、程序
21、的执行时间短、程序的执行时间短2 2、占用的内存单元数少、占用的内存单元数少3 3、程序的语句行数少、程序的语句行数少程序流程图程序流程图用约定的几何图形、流向线及必要的文用约定的几何图形、流向线及必要的文字说明构成的用以描述程序过程的图形。字说明构成的用以描述程序过程的图形。1 1、端点符号、端点符号2 2、处理符号、处理符号3 3、判断符号、判断符号4 4、调用符号、调用符号5 5、流程线、流程线6 6、连接符号、连接符号二、基本程序设计二、基本程序设计(一)顺序程序(简单程序)(一)顺序程序(简单程序)特点:特点:是一种基本上按指令书写顺序从头至是一种基本上按指令书写顺序从头至尾逐条执行
22、的程序。它是程序设计的基础,也尾逐条执行的程序。它是程序设计的基础,也能解决某些实际问题,或成为复杂程序的某个能解决某些实际问题,或成为复杂程序的某个组成部分。组成部分。例例4 41 1:拆字程序:拆字程序 设内部设内部RAMRAM的的20H单元中存有两位单元中存有两位BCD码,码,请编程把它拆成两段,十位请编程把它拆成两段,十位BCD数存入数存入21H的的低低4位,个位位,个位BCD数存入数存入22H的低的低4位。位。21H,22H单元的高单元的高4位置位置0。ORG1000HST:MOVR0,#20H;源数据指针;源数据指针MOVR1,#22H;目的数据指针;目的数据指针MOVA,R0;取
23、源数据送;取源数据送AANLA,#0FH;分离出个位;分离出个位BCD数数MOVR1,A;个位;个位BCD数存数存22H单元单元MOVA,R0;重新取数;重新取数ANLA,#0F0H;分离出十位;分离出十位BCD数数SWAPA;十位;十位BCD数换到低数换到低4位位DECR1;调整目的数据指针;调整目的数据指针MOVR1,A;十位;十位BCD数存数存21H单元单元END(二)(二)分支程序分支程序特点:在实际问题中,从第一条指令一直特点:在实际问题中,从第一条指令一直执行到最后一条指令的顺序程序是不多执行到最后一条指令的顺序程序是不多的。通常需要计算机对某种情况作出判的。通常需要计算机对某种情
24、况作出判断,根据判断结果作出相应的处理,而断,根据判断结果作出相应的处理,而分支程序就充分体现了计算机的这种分分支程序就充分体现了计算机的这种分析判断能力。程序的分支是通过条件转析判断能力。程序的分支是通过条件转移指令实现的,根据判断给出的条件满移指令实现的,根据判断给出的条件满足与否选择程序的不同走向。足与否选择程序的不同走向。例例43:符号函数符号函数X-X-存在片外存在片外ROMROM的的VARVAR单元中单元中Y-Y-存放在片外存放在片外RAMRAM的的DATADATA单元中单元中解:变量解:变量X X以补码存放。先对符号进行判以补码存放。先对符号进行判断。断。若若X X0 0,则令,
25、则令Y=0Y=0;若若X0X0,再判是否小于,再判是否小于0 0,若是则令,若是则令Y=-1Y=-1;不是就令;不是就令Y=1Y=1。流程图:流程图:ORG0100HSTA:MOVDPTR,#VARMOVA,#00HMOVCA,A+DPTR;取数(取数(A)XJZDONE;若若X=0,则转,则转DONEJNBACC.7,PLUS;若若X0,则转,则转PLUSMOVA,#0FFH;若若X0,则(则(A)-1SJMPDONEPLUS:MOVA,#01H;若若X0,则(则(A)1DONE:MOVDPTR,#DATAMOVXDPTR,A;存;存Y值值END例例44:多路分支程序:多路分支程序根根据据R
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 微机 原理 第四 PPT 课件
限制150内