第六章 程序设计基本技术.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:79 大小:1.6MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第六章 程序设计基本技术.pdf

第六章程序设计基本技术.pdf

预览

免费试读已结束,剩余 69 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第六章程序设计基本技术第一节概述1.编写汇编语言程序步骤2.判断程序质量的标准3.几种程序结构一.编写汇编语言程序步骤分析实际问题,抽象描述问题的模型确定解决模型的算法按算法画出程序流程图按流程图编写程序上机调试,运行程序2.判断程序质量的标准程序的正确性程序的可读性程序的执行时间程序所占内存大小3.几种程序结构顺序结构分支结构循环结构子程结构顺序结构程序根据箭头指向,依次执行分支结构、、、CMPAL,BLYJGgreatAL≤BL处理NJMPexitgreat:AL>BL处理exit:、、、、、、两个分支根据条件,程序跳转到不同的分支执行分支结构、、、CMPAL,0NJGgreatJLlessYNAL=0处理YJMPexitless:AL<0处理JMPexitgreat:AL>0处理三个分支exit:、、、循环结构循环初始设置循环初始设置循环条件判断N?循环体Y循环体N循环条件判断?Y当型循环直到型循环(当条件成立进入循环)(直到条件成立退出循环)子程结构1.多处调用完成同一功能的子程:2.模块化程序设计:codeSEGMENTcodeSEGMENTstart:、、begin:CALLsub1CALLsubCALLsub2、、CALLsub3CALLsubMOVAH,4CH、、INT21HCALLsub、、sub1PROC、、MOVAH,4CHINT21HRETsub1ENDPsubPROCsub2PROC、、、、、、RETRETsub2ENDPsubENDPsub3PROC、、codeENDSRETENDstartsub3ENDPcodeENDSENDbegin注意返回DOS语句位置思考如下程序的执行流程:codeSEGMENTstart:、、CALLsub、、CALLsub、、;MOVAH,4CH;INT21HsubPROC、、、、RETsubENDP程序执行不到返回DOS功能调用处,MOVAH,4CH最后的结果是死机.INT21HcodeENDSENDstart顺序程序设计顺序程序完全按指令书写的前后顺序执行每一条指令,是最基本、最常见的程序结构。例.modelsmall.code.stack256.startup.datamovax,XXdw5addax,YYdw6adcax,ZZdw7movW,axWdw?.exit0end例qvardq1234567887654321hmoval,byteptrqvar[6]moval,byteptrqvar[2]movbyteptrqvar[7],almovbyteptrqvar[3],almoval,byteptrqvar[5]moval,byteptrqvar[1]movbyteptrqvar[6],almovbyteptrqvar[2],almoval,byteptrqvar[4]moval,byteptrqvar[0]movbyteptrqvar[5],almovbyteptrqvar[1],almoval,byteptrqvar[3]movbyteptrqvar[0],0movbyteptrqvar[4],al3456788765432100h移位后1234567887654321h第二节分支程序设计分支程序根据条件是真或假决定执行与否。判断的条件是各种指令,如CMP、TEST等执行后形成的状态标志。转移指令JXX和JMP可以实现分支控制;例;计算X-Y的绝对值movax,Xsubax,Yjnsnonneg;条件满足(X-Y>0)?negax;条件不满足,求补nonneg:movresult,ax;条件满足moval,_b例imulalmovbx,axmoval,_aimul_cmovcx,4imulcxcmpbx,ax;比较二者大小jgeyes;条件满足?movtag,0;第一分支体:条件不满足,tag←0jmpdone;跳过第二个分支体yes:movtag,1;第二分支体:条件满足,tag←1done:.exit0前一个分支后要使用JMP指令,切切!多分支结构orah,ah;等效于cmpah,0jzfunction0;ah=0,转向function0AH=0Yfuction0decah;等效