资源描述:
《第1112讲第4章汇编语言程序设计(23)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章通过本章的学习,应当掌握以下内容:了解汇编语言的基本知识和特点。熟悉汇编语言的程序结构、段定义以及语句的格式。掌握汇编语言常用伪指令的使用方法。熟练掌握汇编语言程序设计的基本方法:顺序结构、分支结构、循环结构和子程序结构。*掌握程序设计中的宏指令和常用的系统功能的调用方法。是否掌握?教学目的综合硬指令和伪指令,从程序结构角度展开程序设计,:分支结构程序设计循环结构程序设计子程序结构程序设计教学重点1.掌握基本程序结构――顺序结构、循环结构、分支结构及其汇编语言程序设计2.熟悉常见程序设计问题:数据范围判断(0~9、A~Z、a~z)字母大小写转换;字符串传送、比较等操作求最大最小值、数
2、据求和、统计字符个数数组排序,查找,插入,删除●(3)分支结构(4)子程序结构●程序结构(5)复合结构:多种程序结构的组合…(1)顺序结构(2)循环结构●编制汇编语言程序的步骤(1)分析题意,确定算法根据算法画出程序框图(3)分配存储空间及工作单元根据框图编写程序(5)上机调试程序4.3顺序程序设计顺序程序完全按指令书写的前后顺序执行每一条指令,是最基本、最常见的程序结构一般纯粹的顺序结构的程序设计较少例4.1计算例4.2移位例题代码转换开始执行1结束执行2例4.1.modelsmall.stack.dataXdw5Ydw6Zdw7Wdw?.code.startupmovax,Xaddax
3、,Yaddax,ZmovW,ax.exit0end64位数据左移8位例4.2-1/2.dataqvardq1234567887654321h.codemoval,byteptrqvar[6]movbyteptrqvar[7],almoval,byteptrqvar[5]movbyteptrqvar[6],almoval,byteptrqvar[4]movbyteptrqvar[5],almoval,byteptrqvar[3]movbyteptrqvar[4],al图示3456788765432100例4.2-2/2moval,byteptrqvar[2]movbyteptrqvar[3]
4、,almoval,byteptrqvar[1]movbyteptrqvar[2],almoval,byteptrqvar[0]movbyteptrqvar[1],almovbyteptrqvar[0],01234567887654321h3456788765432100h移位后图示第4章64位数据左移8位123456788765432100qvar[0]qvar[1]qvar[2]qvar[3]qvar[4]qvar[5]qvar[6]qvar[7]例题代码转换-1/2;查表法,实现一位16进制数转换为ASCII码显示.modelsmall.stack.dataASCIIdb30h,31h
5、,32h,33h,34h,35hdb36h,37h,38h,39h;0~9的ASCII码db41h,42h,43h,44h,45h,46h;A~F的ASCII码hexdb0bh;任意设定了一个待转换的一位16进制数例题代码转换-2/2.code.startupmovbx,offsetASCII;BX指向ASCII码表moval,hex;AL取得一位16进制数,正是ASCII码表中位移andal,0fh;只有低4位是有效的,高4位清0xlat;换码:AL←DS:[BX+AL]movdl,al;入口参数:DL←ALmovah,2;02号DOS功能调用int21h;显示一个ASCII码字符.ex
6、it0end4.4分支程序设计分支程序根据条件是真或假决定执行与否判断的条件是各种指令,如CMP、TEST等执行后形成的状态标志转移指令Jcc和JMP可以实现分支控制单分支:求绝对值等双分支:显示BX最高位等多分支:例4.4等15/18汇编语言程序的基本结构分支结构:利用条件转移指令,使程序执行到某一指令后,根据条件是否满足,来改变程序执行的顺序。一般先用比较指令或数据操作及位检测指令来改变标志寄存器各个标志位,然后用条件转移指令进行分支。绘制程序流程图步骤必不可少!!!绘制程序流程图,一般先按上下流程线写,再完成分支部分。绘制程序流程图的判断环节时,要特别注意把握逻辑关系和标志位的意义。
7、单分支程序设计条件成立跳转,否则顺序执行分支语句体;注意选择正确的条件转移指令和转移目标地址例题求绝对值;计算AX的绝对值cmpax,0jnsnonneg;分支条件:AX≥0negax;条件不满足,求补nonneg:movresult,ax;条件满足;计算AX的绝对值cmpax,0jsyesneg;分支条件:AX<0jmpnonneg;分支条件:AX>=0yesneg:negax;条件不满足,求补nonneg:movre