版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Tuesday, November 30, 2021西南科技大学制造科学与工程学院 微机原理与接口技术微机原理与接口技术主主 讲讲: :李李 鹏鹏E-MAIL:23微机原理与接口技术西南科技大学制造科学与工程学院 李鹏3第4章 汇编语言程序设计3第第4章章 汇编语言程序设计汇编语言程序设计4.1 4.1 汇编语言基本知识汇编语言基本知识4.2 4.2 汇编语言程序设计汇编语言程序设计4微机原理与接口技术西南科技大学制造科学与工程学院 李鹏4第4章 汇编语言程序设计44.1 汇编语言基本概念汇编语言基本概念4.1.1 4.1.1 程序设计语言程序设计语言4.1.2 4.1.2 汇编语言的语句结构
2、汇编语言的语句结构4.1.3 4.1.3 伪指令伪指令返回本章首页5微机原理与接口技术西南科技大学制造科学与工程学院 李鹏5第4章 汇编语言程序设计54.1.1 程序设计语言程序设计语言按照语言的结构及其功能可以分为三种:按照语言的结构及其功能可以分为三种: 机器语言:机器语言:计算机能识别的用计算机能识别的用二进制代码二进制代码0 0和和1 1表示指令和数表示指令和数据的最原始的程序设计语言。不易懂,难记忆,易出错。据的最原始的程序设计语言。不易懂,难记忆,易出错。 汇编语言汇编语言:用英文:用英文助记符助记符来表示指令的一种计算机语言,地来表示指令的一种计算机语言,地址、操作数可用标号、符
3、号地址及字符等形式来描述。将汇址、操作数可用标号、符号地址及字符等形式来描述。将汇编语言程序转换成为二进制代码表示的机器语言程序称为汇编语言程序转换成为二进制代码表示的机器语言程序称为汇编程序。经汇编程序编程序。经汇编程序“汇编(翻译)汇编(翻译)”得到的机器语言程序得到的机器语言程序称为目标程序,原来的汇编语言程序称为源程序。称为目标程序,原来的汇编语言程序称为源程序。 高级语言高级语言:高级语言是接近于人的自然语言,面向过程而独:高级语言是接近于人的自然语言,面向过程而独立于机器的通用语言。常用的如立于机器的通用语言。常用的如BASICBASIC、FORTRANFORTRAN以及以及C C
4、语言语言等。通用性强,直观、易懂、易学,可读性好。等。通用性强,直观、易懂、易学,可读性好。 返回本节6微机原理与接口技术西南科技大学制造科学与工程学院 李鹏6第4章 汇编语言程序设计64.1.2 汇编语言的语句结构汇编语言的语句结构n汇编语言的指令类型汇编语言的指令类型 MCS-51MCS-51单片机汇编语言,包含两类不同性质的单片机汇编语言,包含两类不同性质的指令。指令。基本指令基本指令:即指令系统中的指令。它们都是:即指令系统中的指令。它们都是机器能够执机器能够执行行的指令,每一条指令都的指令,每一条指令都有对应的机器码有对应的机器码。伪指令伪指令:汇编时用于控制汇编的指令。它们都是:汇
5、编时用于控制汇编的指令。它们都是机器不机器不执行的指令,无机器码。执行的指令,无机器码。下一页7微机原理与接口技术西南科技大学制造科学与工程学院 李鹏7第4章 汇编语言程序设计7n汇编语言的语句格式汇编语言的语句格式 汇编语言源程序是由汇编语句(即指令)组成汇编语言源程序是由汇编语句(即指令)组成的。汇编语言一般由四部分组成。的。汇编语言一般由四部分组成。 其典型的汇编语句格式如下:其典型的汇编语句格式如下: 标号:标号: 操作码操作码操作数;注释操作数;注释 STARTSTART:MOVMOV A A,30H30H;AA(30H30H)返回本节8微机原理与接口技术西南科技大学制造科学与工程学
6、院 李鹏8第4章 汇编语言程序设计84.1.3 伪指令伪指令n ORGORG:汇编起始地址:汇编起始地址 用来说明以下程序段在存储器中用来说明以下程序段在存储器中存放的起始地址存放的起始地址。 例如程序:例如程序:ORGORG1000H1000H START START:MOVMOVA A,#20H#20H MOV B MOV B,#30H#30H 2 2EQUEQU:赋值:赋值 给变量标号赋予一个确定的数值。给变量标号赋予一个确定的数值。下一页9微机原理与接口技术西南科技大学制造科学与工程学院 李鹏9第4章 汇编语言程序设计9 3 3DBDB:定义数据字节:定义数据字节 把数据以把数据以字节
7、数的形式字节数的形式存放在存储器单元中。存放在存储器单元中。 4 4DWDW:定义数据字:定义数据字 按按字的形式字的形式把数据存放在存储单元中。把数据存放在存储单元中。5 5ENDEND:汇编结束:汇编结束返回本节10微机原理与接口技术西南科技大学制造科学与工程学院 李鹏10第4章 汇编语言程序设计104.2 汇编语言程序设计汇编语言程序设计4.2.1 4.2.1 汇编语言程序设计步骤汇编语言程序设计步骤4.2.2 4.2.2 顺序程序顺序程序4.2.3 4.2.3 分支程序分支程序4.2.4 4.2.4 循环程序循环程序4.2.5 4.2.5 子程序子程序4.2.6 4.2.6 位操作程序
8、位操作程序返回本章首页11微机原理与接口技术西南科技大学制造科学与工程学院 李鹏11第4章 汇编语言程序设计114.2.1 汇编语言程序设计步骤汇编语言程序设计步骤1 1分析问题分析问题2 2确定算法或解题思路确定算法或解题思路3 3设计程序流程图设计程序流程图4 4分配内存单元分配内存单元5 5编写汇编语言源程序编写汇编语言源程序6 6调试程序调试程序返回本节12微机原理与接口技术西南科技大学制造科学与工程学院 李鹏12第4章 汇编语言程序设计124.2.2 顺序程序顺序程序顺序程序是一种最简单,最基本的程序。顺序程序是一种最简单,最基本的程序。特点:程序按编写的顺序特点:程序按编写的顺序依
9、次往下执行每一条指令,依次往下执行每一条指令,直到最后一条。直到最后一条。 【例【例4.14.1】 将将30H30H单元内的两位单元内的两位BCDBCD码拆开并转换成码拆开并转换成ASCIIASCII码,存入码,存入RAMRAM两个单元中。程序流程如图两个单元中。程序流程如图4.14.1所示。参考程序如下:所示。参考程序如下: ORGORG0100H0100H MOV MOVA A,30H30H;取值;取值 ANLANLA A,#0FH#0FH;取低;取低4 4位位下一页13微机原理与接口技术西南科技大学制造科学与工程学院 李鹏13第4章 汇编语言程序设计13ADDADD A A,#30H#3
10、0H;转换成;转换成ASCIIASCII码码MOVMOV 32H32H,A A ;保存结果;保存结果MOVMOV A A,30H30H ;取值;取值SWAPSWAPA A ;高;高4 4位与低位与低4 4位互换位互换ANLANL A A,#0FH#0FH;取低;取低4 4位(原来的高位(原来的高4 4位)位)ADDADDA A,#30H#30H ;转换成;转换成ASCIIASCII码码MOVMOV31H31H,A A;保存结果;保存结果 SJMPSJMP $ $ END END 下一页14微机原理与接口技术西南科技大学制造科学与工程学院 李鹏14第4章 汇编语言程序设计14结束取数据低4位转换
11、成ASCII码存ASCII码取数据高4位转换成ASCII码存ASCII码开始图4.1 拆字程序流程图返回15微机原理与接口技术西南科技大学制造科学与工程学院 李鹏15第4章 汇编语言程序设计15【例【例4.24.2】 设设X X、Y Y两个小于两个小于1010的整数分别存于片内的整数分别存于片内30H30H、31H31H单元,试求两数的平方和并将结果存于单元,试求两数的平方和并将结果存于32H32H单元。单元。 解:两数均小于解:两数均小于1010,故两数的平方和小于,故两数的平方和小于200200,可,可利用乘法指令求平方。程序流程如图利用乘法指令求平方。程序流程如图4-24-2所示。参所示
12、。参考程序如下:考程序如下: ORGORG0100H0100H MOV MOVA A,30H30H;取;取30H30H单元数据单元数据 MOVMOVB B,A A;将;将X X送入送入B B寄存器寄存器下一页16微机原理与接口技术西南科技大学制造科学与工程学院 李鹏16第4章 汇编语言程序设计16MULMUL AB AB;求;求X X2 2,结果在累加器中,结果在累加器中MOV R1MOV R1,A A ;将结果暂存于;将结果暂存于R1R1寄存器中寄存器中MOVMOV A A,31H31H;取;取31H31H单元数据单元数据MOVMOV B B,A A ;将;将Y Y送入送入B B寄存器寄存器
13、MULMUL AB AB;求;求Y Y2 2,结果在累加器中,结果在累加器中ADDADD A A,R1R1;求;求X X2 2+ Y+ Y2 2MOVMOV 32H 32H,A A;保存数据;保存数据SJMP $SJMP $;暂停;暂停END END 返回本节17微机原理与接口技术西南科技大学制造科学与工程学院 李鹏17第4章 汇编语言程序设计17结束取数据X求X2暂存X2取数据Y求Y2求X2+Y2开始保存平方和图4-2 例4.2程序流程图返回18微机原理与接口技术西南科技大学制造科学与工程学院 李鹏18第4章 汇编语言程序设计184.2.3 分支程序分支程序1 1分支程序的基本形式分支程序的
14、基本形式分支程序有三种基本形式,分支程序有三种基本形式,如图如图4-34-3所示所示。分支程序的设计要点如下:分支程序的设计要点如下:(1 1)先建立可供条件转移指令测试的条件。)先建立可供条件转移指令测试的条件。 (2 2)选用合适的条件转移指令。)选用合适的条件转移指令。(3 3)在转移的目的地址处设定标号。)在转移的目的地址处设定标号。下一页19微机原理与接口技术西南科技大学制造科学与工程学院 李鹏19第4章 汇编语言程序设计19条件满足?AYN(a)条件满足?ABNY(b)(c)A0A1AnK=0 K=1 K=nK=?图4-3 分支程序结构流程图返回20微机原理与接口技术西南科技大学制
15、造科学与工程学院 李鹏20第4章 汇编语言程序设计202 2双向分支程序设计举例双向分支程序设计举例【例【例4.34.3】 设设X X存在存在30H30H单元中,根据下式单元中,根据下式 X+2X+2X0 X0 Y= 100 Y= 100 X=0 X=0 X X X0 X0X0Y= 100 X=0Y= 100 X=0 X X X0X0求出求出Y Y值,并将值,并将Y Y值放回原处。值放回原处。解:设置一个计数器控制循环次数,每处理完一个数据,解:设置一个计数器控制循环次数,每处理完一个数据,计数器减计数器减1 1。程序流程。程序流程如图如图4-84-8所示所示。下一页31微机原理与接口技术西南
16、科技大学制造科学与工程学院 李鹏31第4章 汇编语言程序设计31参考源程序如下:参考源程序如下: ORGORG0100H 0100H MOVMOVR0R0,#10#10 MOVMOVR1R1,#30H#30HSTARTSTART:MOV AMOV A,R1 R1 ;取数;取数 JBJB ACC.7ACC.7,NEG NEG ;若为负数,转;若为负数,转NEG NEG JZ JZ ZER0ZER0 ;若为零,转;若为零,转ZER0ZER0 ADD ADD A A,#02H#02H ;若为正数,求;若为正数,求X+2X+2 AJMP AJMP SAVE SAVE ;转到;转到SAVESAVE,保存
17、数据,保存数据ZER0ZER0:MOV AMOV A,# 64H # 64H ;数据为零,;数据为零,Y=100 Y=100 下一页32微机原理与接口技术西南科技大学制造科学与工程学院 李鹏32第4章 汇编语言程序设计32 AJMPAJMP SAVE SAVE;转到;转到SAVESAVE,保存数据,保存数据NEGNEG: DECDECA A CPL CPLA A;求;求XXSAVESAVE:MOV R1MOV R1,A A;保存数据;保存数据 INCINCR1R1;地址指针指向下一个地址;地址指针指向下一个地址 DJNZDJNZ R0R0,START START ;数据未处理完,继续处理;数据
18、未处理完,继续处理 SJMPSJMP;暂停;暂停返回本节33微机原理与接口技术西南科技大学制造科学与工程学院 李鹏33第4章 汇编语言程序设计33A=0?YYNNYNA为负数?取数,A(R1)开始结束A XA64HAX+2存数,(R1)A(30H)设置地址指针R1、计数器R0初值R1R1+1;R0R0-1R0=0?图4-8 例4.5的程序流程图返回34微机原理与接口技术西南科技大学制造科学与工程学院 李鹏34第4章 汇编语言程序设计344.2.5 子程序子程序1 1子程序概念子程序概念 所谓调用子程序,暂时中断主程序的执行,所谓调用子程序,暂时中断主程序的执行,而转到子程序的入口地址去执行子程
19、序。而转到子程序的入口地址去执行子程序。如图如图4-104-10所示所示。调用子程序应注意:。调用子程序应注意:(1 1)子程序占用的存储单元和寄存器。)子程序占用的存储单元和寄存器。 (2 2)参数的传递。)参数的传递。(3 3)子程序经过调用后得到的数据来完成程序)子程序经过调用后得到的数据来完成程序之间的参数传递。之间的参数传递。(4 4)嵌套调用。)嵌套调用。如图如图4-114-11所示所示。下一页35微机原理与接口技术西南科技大学制造科学与工程学院 李鹏35第4章 汇编语言程序设计35RETLCALL SUB图4-10 子程序的调用与返回 返回36微机原理与接口技术西南科技大学制造科
20、学与工程学院 李鹏36第4章 汇编语言程序设计36LCALL ARETRETLCALL B 图4-11 子程序的嵌套调用与返回返回37微机原理与接口技术西南科技大学制造科学与工程学院 李鹏37第4章 汇编语言程序设计372 2子程序设计举例子程序设计举例【例【例4.84.8】 将将4.44.4节中的例节中的例4.54.5改为子程序结构。改为子程序结构。解:数据块中的十个数都需要进行符号判断并作相解:数据块中的十个数都需要进行符号判断并作相应处理,可把一部分工作交给子程序完成,主程序应处理,可把一部分工作交给子程序完成,主程序只负责读取数据、调用判断处理子程序、保存数据、只负责读取数据、调用判断
21、处理子程序、保存数据、循环控制工作。源程序如下:循环控制工作。源程序如下:ORGORG0100H0100H MOVMOVR0R0,#10#10 MOVMOVR1R1,#30H#30H下一页38微机原理与接口技术西南科技大学制造科学与工程学院 李鹏38第4章 汇编语言程序设计38STARTSTART:MOV AMOV A,R1R1;取数;取数 ACALL DISPOSEACALL DISPOSE;调用判断、处理子程序;调用判断、处理子程序SAVESAVE:MOV R1MOV R1,A A;保存数据;保存数据 INCINC R1R1 ;修改地址指针,指向下一个地址;修改地址指针,指向下一个地址 D
22、JNZDJNZR0R0,STARTSTART;数据未处理完,继续处理;数据未处理完,继续处理 SJMPSJMP;暂停;暂停 ORGORG 0200H0200HDISPOSEDISPOSE:JB ACC.7JB ACC.7,NEG NEG ;若为负数,转;若为负数,转NEG NEG 下一页39微机原理与接口技术西南科技大学制造科学与工程学院 李鹏39第4章 汇编语言程序设计39JZJZZER0ZER0;若为零,转;若为零,转ZER0ZER0 ADDADDA A,#02H#02H;若为正数,求;若为正数,求X+2X+2 AJMPAJMP BACKBACK;转到;转到SAVESAVE,保存数据,保存数据ZER0ZER0:MOV AMOV A,#64H#64H;数据为零,;数据为零,Y=100 Y=100 AJ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 奔驰交友活动方案策划(3篇)
- 墙纸店活动策划方案(3篇)
- 小区饺子活动策划方案(3篇)
- 挑战投壶活动策划方案(3篇)
- 植物集市活动方案策划(3篇)
- 烘培月饼活动方案策划(3篇)
- 窗帘6.18活动策划方案(3篇)
- 薄荷拉面营销方案(3篇)
- 保利管营销方案(3篇)
- 厅堂联动营销方案(3篇)
- 政治学基础考试题及答案
- 2025年完整版《安全生产法》
- GB/T 46197.2-2025塑料聚醚醚酮(PEEK)模塑和挤出材料第2部分:试样制备和性能测定
- 消毒技术规范知识培训课件
- 医院安全生产法课件
- 入团申请汇报答辩大纲
- 能源托管面试题目及答案
- 2025年北京教育融媒体中心招聘工作人员(17人)笔试备考试题附答案详解(a卷)
- 接触网安全操作规程及维护手册
- 2024年高中化学奥林匹克竞赛贵州初赛试卷(含答案)
- 血站服务礼仪培训课件
评论
0/150
提交评论