资源描述:
《第五章 汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第五章汇编语言程序设计张光河Email:guanghezhang@163.com大纲5.1程序设计概述5.2顺序程序设计5.3分支程序设计5.4循环程序设计5.5子程序设计5.6模块化程序设计5.7习题解答25.1程序设计概述5.1.1汇编语言程序设计的一般步骤5.1.2流程图35.1.1汇编语言程序设计的一般步骤分析问题,抽象出描述问题的数学模型确定解决问题的算法或解题思想绘制流程图和结构图分配存储空间和工作单元根据流程图编制程序程序静态检查上机调试4程序生成过程编辑汇编连接55.1.2流程图起止框判断框处理框调用框指向线连接框6大纲5.1程序设计概述5.2顺序程序设
2、计5.3分支程序设计5.4循环程序设计5.5子程序设计5.6模块化程序设计5.7习题解答7程序的基本结构顺序分支循环85.2顺序程序设计从流程图来讲,其结构由一个开始框、若干个执行框和一个结束框构成。9例一把在变量V1和V2中的两个压缩型BCD码数相加,结果放在V3变量中。10代码dat1segmentv1db26hv2db18hv3db2dup(0)dat1endscod1segmentassumecs:cod1,ds:dat1stt:movax,dat1movds,axmoval,v1addal,v2daamovv3,allahfandah,01hmovv3+1,a
3、hmovah,4chint21hcod1endsendstt11例二将一个数据表中的字符串‘ABCD’反序复制到另一存储区中。12代码dat1segmentsou1db‘ABCD’des1db4dup(?)dat1endscod1segmentassumecs:cod1,ds:dat1stt:movax,dat1movds,axmoval,sou1movdes1+3,almoval,sou1+1movdes1+2,almoval,sou1+2movdes1+1,almoval,sou1+3movdes1,almovah,4chint21hcod1endsendstt13
4、例三在内存地址SQ起有0~15整数的平方数表。现在A单元任给一个整数(0~15),求其平方值。14代码dat1segmentSQdb0,1,4,9,16,25,36,49,64,81db100,121,144,169,196,225Adb9dat1endscod1segmentassumecs:cod1,ds:dat1sttprocfarpushdsxorax,axpushaxmovax,dat1movds,axmovbx,offsetSQmoval,AxlatmovA,alretsttendpcod1endsendstt15例四将一字节压缩型BCD码转换为二个ASCI
5、I码。16代码dat1segmentbcdvdb26hascvdb2dup(?)dat1endscod1segmentassumecs:cod1,ds:dat1sttprocfarpushdsxorax,axpushaxmovax,dat1movds,axmoval,bcdvmovbl,almovcl,4shral,claddal,30hmovascv,alandbl,0fhaddbl,30hmovascv+1,blretsttendpcod1endsendstt17大纲5.1程序设计概述5.2顺序程序设计5.3分支程序设计5.4循环程序设计5.5子程序设计5.6模块化
6、程序设计5.7习题解答185.3分支程序设计如何产生条件如何对条件进行判断如何实现分支(二分支和多分支)19两分支程序的设计(一)比较两个无符号数的大小。设A和B单元各有一个字节型无符号数,根据该两无符号数的大小,在屏幕上显示“A>B”或“B>=A”。20代码dat1segmentAdb16hBdb28hm1db‘A>B$’m2db‘B>=A$’dat1endscod1segmentassumecs:cod1,ds:dat1stt:movax,dat1movds,axmoval,Acmpal,Bjnala1leadx,m1jmpla2la1:leadx,m2la2:mo
7、vah,9int21hmovah,4chint21hcod1endsendstt21两分支程序的设计(二)在数据段的一个字符串中查找字符“$”,如找到,则将其所在单元的偏移地址存入字单元变量ADDR中,否则将零存入ADDR中。22代码dat1segmentstr1db‘CFDP$RSVQE’addrdw?dat1endscod1segmentassumecs:cod1,ds:dat1,es:dat1stt:movax,dat1movds,axmoves,axleadi,str1moval,’$’movcx,addr-str1cldrepn