第 4 章 汇编语言程序设计的基本方法课件.ppt

第 4 章 汇编语言程序设计的基本方法课件.ppt

ID:57165667

大小:719.00 KB

页数:206页

时间:2020-08-02

第 4 章    汇编语言程序设计的基本方法课件.ppt_第1页
第 4 章    汇编语言程序设计的基本方法课件.ppt_第2页
第 4 章    汇编语言程序设计的基本方法课件.ppt_第3页
第 4 章    汇编语言程序设计的基本方法课件.ppt_第4页
第 4 章    汇编语言程序设计的基本方法课件.ppt_第5页
资源描述:

《第 4 章 汇编语言程序设计的基本方法课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章汇编语言程序设计的基本方法程序设计步骤分析问题建立数学模型选择算法和数据结构详细设计:模块功能、流程图编写程序、调试程序、分析结果4.1程序结构顺序分支循环4.2顺序程序设计没有分支、循环等转移指令的程序,会按指令书写的前后顺利依次执行,这就是顺序程序例4-1查表求2的整次幂(2n,n=0,1,…,14)分析:存放2n的字节位置=array+2*n2021222324…….214字编号:0123414array字节编号:01234567892829注意:2n在表中(即数组array中)的存放规律,n正好是2n在表中的存放字单

2、元的顺序号。.modelsmall.stack.dataarraydw1,2,4,8,16,32,64,128,256dw512,1024,2048,4096,8192,16384xdb11;待查数据,例子查211pwrdw?;存结果.code.startupmovbh,0movbl,xshlbx,1movax,array[bx]movpwr,ax.exit0end思考:如果要求2n的n(0<=n<=9)从键盘输入(不考虑错误输入),程序如何修改?.modelsmall.stack.dataarraydw1,2,4,8,16,32

3、,64,128,256,512;dw1024,2048,4096,8192,16384;xdb11;待查数据,例子查211pwrdw?;存结果.code.startupmovah,1int21hsubal,’0’movbh,0movbl,al;原为:movbl,xshlbx,1movax,array[bx]movpwr,ax.exit0end.modelsmall.stack.dataarraydw1,2,4,8,16,32,64,128,256,512;dw1024,2048,4096,8192,16384;xdb11;待查数据

4、,例子查211pwrdw?;存结果.code.startupmovah,1int21hsubal,’0’movbh,0movbl,al;原为:movbl,xshlbx,1movax,array[bx]movpwr,ax.exit0end思考:如果要求2n的n(0<=n<=14)从键盘输入(不考虑错误输入),程序又如何修改?4.3分支程序设计汇编语言中,使用条件转移JCC指令和无条件转移JMP指令实现分支程序结构条件转移指令判断的条件是标志位。因此,需要在条件转移指令前安排算术运算、比较、测试等影响相应标志位的指令。4.3.1转移指

5、令无条件转移指令直接改变CS和(或)IP中的内容条件转移指令条件满足改变IP中的内容条件不满足顺序执行下一条指令无条件转移指令基本格式:JMP标号1.段内转移只修改IP中的内容,不涉及改变CS中的内容采用相对寻址/间接寻址(1)段内直接短转移格式JMPSHORT 标号双字节指令操作:IP←(IP)+DISP8例:jmpSHORTtag1(2)段内直接近转移格式JMP[NEARPTR] 标号三字节指令操作:IP←(IP)+DISP16例:jmpNEARPTRtag2(3)段内间接转移格式JMPr16/m16采用间接寻址操作:IP←(

6、r16/m16)例:jmpbxjmpWORDPTR[SI]2.段间转移需要修改IP和CS中的内容采用直接寻址/间接寻址(1)段间直接转移采用直接寻址指令格式:JMPFARPTR标号操作:IP←标号的段内偏移量属性CS←标号的段基址属性例:jmpFARPTRtag3FARPTR常常省去dataSEGMENTstring1db"code1",0dh,0ah,'$'string2db"code2",0dh,0ah,'$'dataENDScode1SEGMENTassumecs:code1,ds:datastart:movax,datam

7、ovds,axmovdx,offsetstring1movah,9int21hjmpnextcodecode1ENDScode2SEGMENTnextcodelabelfarmovah,9movdx,offsetstring2int21hmovah,4chint21hcode2ENDSENDstartdataSEGMENTstring1db"code1",0dh,0ah,'$'string2db"code2",0dh,0ah,'$‘dataENDScode1SEGMENTassumecs:code1,ds:datastart:mo

8、vax,datamovds,axmovdx,offsetstring1movah,9int21hjmpnextcodecode1ENDScode2SEGMENTnextcodelabelfarmovah,9movdx,offsetstring2in

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。