基本结构程序设计_第1页
基本结构程序设计_第2页
基本结构程序设计_第3页
基本结构程序设计_第4页
基本结构程序设计_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章根本结构程序设计5.1顺序结构程序设计5.2分支结构程序设计5.3循环结构程序设计?IBMPC80X86汇编语言程序设计?冶金工业出版社第5章5.1顺序结构程序设计在讲顺序结构程序设计之前,先了解以下三方面的内容汇编语言程序设计的基本步骤流程图的画法规定程序的基本结构汇编语言程序设计一般有以下几个步骤:1.分析问题,归纳出数学模型2.确定算法3.绘制流程图4.分配存储空间和工作单元5.根据流程图编制程序6.静态检查7.调试程序1.流程图的概念 流程图是由特定的几何图形、指向线、文字说明来表示数据处理的步骤,形象描述逻辑控制结构以及数据流程的示意图。流程图具有简洁、明了、直观的特点。2.流程图符号表示〔1〕开始框:表示程序的开始。开始〔3〕判断框〔2〕处理框〔执行框〕条件NY〔4〕结束框结束结构程序设计程序的每个局部都由有限结构结合中的单元组成,并且只有单一的入口和单一的出口。根本结构有:顺序结构〔线性结构〕选择结构〔分支结构〕循环结构三种结构可以任意组合和嵌套构成复杂的程序。这三种结构可归纳为五种逻辑结构:(1)顺序结构(2)双分支结构……〔3〕多分支结构YN条件条件YN〔4〕DO_UNTIL循环结构NY〔5〕DO_WHILE循环结构图程序的逻辑结构格式5.1顺序结构程序设计特点:指令顺序执行,无分支、无循环、无转移。例5-1编写程序段,完成下面公式的计算(其中:变量X和Y是32位有符号数,变量A,B和Z是16位有符号数)。A←(X-Y+24)/Z的商,B←(X-Y+24)/Z的余数程序如下:DATA1SEGMENTXDD?YDD?ZDW?ADW?BDW?…DATA1ENDS

CODE1SEGMENT…MOVAX,XMOVDX,X+2;用(DX:AX)来保存32位变量X的数值SUBAX,YSBBDX,Y+2;(DX:AX)-(Y+2:Y)ADDAX,24DADCDX,0;(DX:AX)+24IDIVZMOVA,AXMOVB,DX…CODE1ENDSSTART:MOVAX,DATA MOVDS,AX

MOVAL,AD1

ADDAL,AD2

MOVSUM,AL

MOVAH,4CHINT21H;返回DOSCODEENDS ENDSTART例5-2利用直接查表法完成将一位16进制数转换成对应它相应的ASCII码。DATASEGMENT

TABLEDB30H,31H,32H,33H,34H,35H,36H,37HDB38H,39H,41H,42H,43H,44H,45H,46HNUMDB4ASCIIDB?DATAENDSCOSEGSEGMENT

ASSUMECS:COSEG,DS:DATASTART:MOVAX,DATA MOVDS,AXMOVBX,OFFSETTABLEXORAX,AX;AX清零MOVAL,NUMADDBX,AXMOVAL,[BX]MOVASCII,AL

MOVAH,4CH;返回DOSINT21H

COSEGENDSENDSTART说明:DOS的1号功能调用MOVAH,01H;从标准输入设备读一个字符INT21H;AL=键入的ASCII码DOS的2号功能调用MOVAH,02H;向标准输出设备输出一个字符INT21H;DL=输出字符的ASCII码注意XLAT的换码指令的操作5.2分支程序设计转移指令转移指令无条件转移指令有条件转移指令1、无条件转移指令

功能是无条件转移到指定地址,执行从该地址开始的指令。根据转移时是否重置CS的内容,无条件转移指令段内转移段间转移段内转移〔近转移〕:转移时只改变IP存放器的内容,CS的值保持不变,条件转移和循环指令只能实现段内转移。段间转移〔远转移〕:是在不同代码段之间转移,不仅改变IP的值,也改变CS的值,软中断和中断返回总是段间转移。〔1〕段内直接短转移格式:JMPSHORTOPR功能:IP←IP+8位偏移量其中OPR为一般标号,转移范围-128~127例:NEXT:MOVAX,CX ……

JMPNEXT……

JMPOVER……OVER:MOVAX,1……〔2〕段内直接近转移格式:JMPNEARPTROPR功能:IP←IP+16位的偏移量其中OPR为一般标号,转移范围为-32768~32767地址差为0~65535,所以近转移可以到达实模式下当前代码段的任何位置。〔3〕段内间接转移格式:JMPWORDPTROPR功能:IP←〔EA〕OPR是16位的通用存放器或字存储器。例:JMPCX;CX存放器的内容送IPJMPWORDPTR[1234];字存储单元[1234]的内容送IP7856……JMP3412……MOVAX,1……DS:1234H原IP=××××新IP=5678H转移指令〔4〕段间直接转移格式:JMPFARPTROPR功能:IP←OPR的偏移地址,CS←OPR的段地址其中OPR是一个标号,所代表的指令与JMP指令不在同一个代码段中,标号前的FARPTR向汇编程序说明这是段间转移。无条件段间直接转移指令机器指令格式如下:指令操作码目标地址偏移目标地址段值跳转至此……A3000127JMP远转移1000010001100021000310004A3126A3127〔5〕段间间接转移格式:JMPDWORDPTROPR功能:IP←〔EA〕,CS←〔EA+2〕其中OPR是一个双字存储器,低字存放转移目标的偏移地址,高字存放转移目标的段地址。例如:JMPDWORDPTR[1234]双字存储单元的低字节送IP双字存储单元的高字节送CS2.条件转移指令条件转移只能实现段内转移,而且转移范围是-128~127。(1)单条件转移指令根据标志位的值进行转移①JZ/JEOPR;ZF=1转移(结果为零或相等转移)②JNZ/JNEOPR;ZF=0转移(结果不为零或不相等转)③JSOPR;SF=1转移(结果为负转移)④JNSOPR;SF=0转移(结果为正转移)格式转移条件说明⑤JOOPR;OF=1转移〔结果溢出转移〕⑥JNOOPR;OF=0转移〔结果不溢出转移〕⑦JP/JPEOPR;PF=1转移〔结果为偶转移〕⑧JNP/JPOOPR;PF=0转移〔结果为奇转移〕⑨JCOPR;CF=1转移〔有进位或借位转移〕⑩JNCOPR;CF=0转移〔无进位或借位转移〕注:通常在使用条件指令前,总有用于条件判断的相关指令例如:要测试存放器AX的低四位是否全为0,如果全为0,那么CX=0,否那么CX=-1MOVCX,-1;CX赋初值TESTAX,0FH;测试AX的低4位JNZNZERO;不全为0转NZEROMOVCX,0;全为0,置CX=0NZERO:……

例3-45一个字节变量Char,试编写一程序段,把其所存的大写字母变成小写字母。程序如下:…CharDB‘F’;变量说明NEXT:…MOVAL,CharCMPAL,'A'JBNEXT;注意:字符是无符号数CMPAL,'Z'JANEXTADDChar,20H;大小写转换…(2)两个无符号数比较(X,Y)①JB/JNAE/JCOPRX<Y转移②JAE/JNB/JNCOPRX>=Y转移③JBE/JNAOPRX<=Y转移④JA/JNBEOPRX.>Y转移指令系统提供了两组指令,分别用于无符号数和有符号数的比较。无符号数比较,用A代表大于,用B代表小于,用E代表等于有符号数比较,用G代表大于,用L代表小于,用E代表等于〔3〕两个有符号数的比较〔X,Y〕①JL/JNGEOPRX<Y转移②JGE/JNLOPRX>=Y转移③JLE/JNGOPRX<=Y转移④JG/JNLEOPRX>Y转移〔4〕CX的值为零转移JCXZOPRCX=0时转移〔5〕ECX的值为零转移JECXZOPRECX=0时转移下面的程序段说明无符号数比较与有符号数比较的区别: MOVAL,88H CMPAL,68H JAENEXT MOVAL,68HNEXT:HLTAL=______________ MOVAL,88H CMPAL,68H JGENEXT MOVAL,68HNEXT:HLTAL=______________88H68H5.2.1分支程序的结构形式5.2.2分支程序设计1、双分支程序的一般结构2、双分支程序设计〔1〕只有一个分支需要处理,要注意判断条件的选取。〔2〕两个分支都要做相应的处理,要注意分支结束后需要转到结束处。程序分支判断实现的方法:比较指令+条件指令逻辑指令+条件指令算术指令+条件指令一、双分支程序设计例5-3设有单字节无符号数X,Y,Z,假设X+Y>255,那么求X+Z,否那么求X-Z,运算结果放在F1中。X,Y,Z,F1均为字节变量名。开始结束AL,BX

XAL+Y>255BL

BL+ZBL

遾BL-ZF1

BLNY程序段如下:MOVAL,X MOVBL,AL ADDAL,Y JNCLET;假设无进位那么转LET ADDBL,ZDONE: MOVF1,BL HLTLET: SUBBL,Z JMPDONE二、多分支程序设计多分支程序结构设计的实现过程相当于CASE语句形式。最直接的方法就是使用简单的分支结构进行组合,使用条件转移指令结合无条件转移指令来实现。例5.4:编写一程序段,计算以下公式:1X>0Y=0X=0-1X<0X≥0?X=0?YNYY=0Y=-1Y=1NNEXT程序段如下: CMPX,0;X≥0? JGEBIGER;假设X≥0转BIGER MOVY,FFH;假设X<0,Y←-1 JMPNEXTBIGER:JZEQUL;X=0转EQUL,否那么MOVY,1 JMPNEXTEQUL:MOVY,0NEXT:…………例5.5请编写一个程序,根据AL存放器中哪一位为1,转到8个不同的分支中去。使用跳跃表示法,需求程序如下:DSEGSEGMENT;定义数据段ADDRESS_tableDWMATTER1DWMATTER2DWMATTER3DWMATTER44DWMATTER5DWMATTER6DWMATTER7DWMATTER8 DSEGENDSCODESEGMENT;定义代码段ASSUMECS:CODE,DS:DSEGstart:;程序开始执行地址PUSHDS;保存旧DSSUBBX,BX;BX清0PUSHBX;BX压栈MOVBX,DSEG;数据段地址送BXMOVDS,BX;BX送DSCMPAL,0;判断AL是否为0JEEXCU

LEABX,ADDRESS_table;跳转表的首地址赋给BXcycle:SHRAL,1;将AL的最低位移入CFJNCnoACT;如果CF=0,转NOACT

JMPWORDPTR[BX];如果CF=1,转到相应分支执行5.3循环结构程序设计5.3.1、循环程序结构5.3.2、循环程序设计方法循环指令〔1〕LOOP循环指令格式:LOOPOPR〔OPR为一般标号〕功能:CX←CX-1;假设CX≠0,转至标号处,否那么继续执行。注意:①循环次数先放在CX中,先减1后判断②假设为32位指令模式,LOOP默认使ECX减1。LOOPWOPR〔指明用CX作为循环次数〕LOOPDOPR〔指明用ECX作为循环次数〕例:显示输出5个A

MOVCX,5AGAIN:MOVDL,’A’ MOVAH,2 INT21H DECCX JNZAGAIN

MOVCX,5AGAIN:MOVDL,’A’ MOVAH,2 INT21H

LOOPAGAIN〔2〕LOOPZ/LOOPE〔零或相等时循环指令〕格式:LOOPZ/LOOPEOPR功能:CX←CX-1;假设CX≠0且ZF=1时转至标号,否那么继续执行后续指令。〔3〕LOOPNZ/LOOPNE〔不为零或不相等时循环指令〕格式:LOOPNZ/LOOPNEOPR功能:CX←CX-1;CX≠0且ZF=0,转至标号,否那么,顺序执行后续指令。

DISP:MOVDX,DI

ADDDL,30H;得到下标的ASCII码MOVAH,2

INT21HMOVAH,4CHINT21HCODEENDSENDSTART例:在字符串中查找空格字符,找到显示Y,否那么显示N。STRDB‘ASDFJJFJFDSLF’ LEQU$-STR…… MOVCX,L MOVSI,-1 MOVAL,20HNEXT:INTSI CMPAL,STR[SI]

LOOPNENEXT JNZNFOUND MOVDL,’Y’ MOVAH,2 INT21H JMPEXITNFOUND:MOVDL,’N’ MOVAH,2 INT21HEXIT:MOVAH,4CH INT21H5.3.1循环程序的结构 …… MOVCX,CNT-1 MOVBX,OFFSETBUF MOVAL,[BX]LOOP1:INCBX CMPAL,[BX] JAENEXT MOVAL,[BX]NEXT:DECCX JNZLOOP1初始化循环体修改局部控制局部先执行后判断先判断后执行单循环程序设计

即循环体内只是一些简单和分支程序;

例5.6:数据段的BLOCK数组中存放有10个无符号数,试找出其中最大者送MAX单元。DATASEGMENT;定义数据段BLOCKDB5,15,10,38,-6,72,120,-64COUNTDB$-BLOCKMAXDB?DATAENDS;数据段结束CODESEGMENT;定义代码段ASSUMECS:CODE,DS:DATAMAINPROCFAR;主过程PUSHDS;DS值压栈SUBAX,AXPUSHAXMOVAX,DATAMOVDS,AXmovsi,offsetblockmovcx,9moval,[si]lop:incsicmpal,[si]

jaenextmoval,[si]NEXT:DECCXJNZLOPMOVMAX,ALMOVAH,4CHINT21HCODEENDSENDSTARTDATASEGMENT ARRAYDB0,0,0,16,0,88,72,0,35,42,99

CONTEQU$-ARRAYMESSDB‘NOFOUND!$’DATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATASTART:MOVAX,DATA MOVDS,AX例5-8在字节数组中找出第一个非0数据,并显示其下标,否那么输出NOFOUND。MOVCX,CONT;设置循环计数器MOVDI,FFFFH;设置DI为-1NEXT:INCDICMPARRAY[DI],0;取数组元素与0比较LOOPZNEXT;CX≠0且ZF=1时循环JNEDISP;找到,显示下标MOVDX,OFFSETMESS;未找到MOVAH,09HINT21H例:统计数据块中正数和负数的个数。建立地址→SI;0→CX结果存放器清0〔BL=0,DL=0〕取一数→ALAL≥0?DL+1→DLBL+1→BLCX+1=次数?修改地址指针〔SI+1→SIN存放结果YNDATASEGMENT BUFDB-32,25,36,-45,-34,0,-5 COUNTEQU$-BUF PLUSDB? MINUSDB?DATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATASTART:MOVAX,DATA MOVDS,AX MOVBL,0 MOVDL,0 MOVSI,OFFSETBUF MOVCX,0LOP1:MOVAL,[SI]

CMPAL,0 JGE NEXT0 INCBL JMPNEXT1NEXT0:INCDLNEXT1:INCSI INCCX CMPCX,COUNTJLLOP1 MOVMINUS,BL MOVPLUS,DL MOVAH,4CH INT21HCODEENDSENDSTART例5-7在STRING开始的缓冲区中存放一个字符串,结束符‘$’,计算该字符串的长度并存入LEN单元中。DATASEGMENT STRINGDB‘FJSLFJSLFSAL$’ LENDB?DATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATASTART:MOVAX,DATA MOVDS,AX MOVSI,OFFSETSTRING XORBL,BLLOP:MOVAL,[SI] CMPAL,24H JZSTOP INCBL INCSI JMPLOPSTOP:MOVLEN,BL

MOVAH,4CHINT21HCODEENDS ENDSTART2、多重循环程序设计多重循环:循环中嵌套循环即多重循环设计时注意:1、分清每层循环的任务和要求2、分别考虑每层循环的控制条件和程序实现。例:从BUF开始存放N个有符号字节数,用冒泡法将数据按从小到大顺序排列。1、编程思路从第一个数起,对相邻两个数比较,假设前一个数比后一个数大,那么两数交换位置。否那么不变。经过N-1次比较,可把最大数放到最后。再进行第二遍两两比较,可将次大数放在次后位……,经过N-1遍比较,可排好序。需要两重循环完成排序,其中内层完成每一遍的比较,外层完成比较多少次的控制。2、程序的实现DATASEGMENT BUFDB12,87,-51,68,0,15 NEQU$-BUFDATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATASTART:MOVAX,DATA MOVDS,AX

MOVDX,N-1LOP1:MOVSI,OFFSETBUF MOVCX,N-1LOP2:

LOP3:INCSIDECCX JNZLOP2DECDXJNZLOP1MOVAH,4CHINT21HCODEENDSENDSTARTMOVAL,[SI] CMPAL,[SI+1] JLELOP3 XCHGAL,[SI+1] MOV[SI],AL例:求一个矩阵的列向量之和。设有矩阵a11a12a13……a1ma21a22a23……a2ma31a32a33……a3m……an1an2an3……anm数据按列存放,用两重循环实现,内循环用来计算每列元素之和。外循环用来控制列数。datasegmentmadb1,3,5,7db2,4,6,8db1,2,3,4mbdb3dup(?)dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovsi,offsetmamovbx,offsetmb

movdx,3next1:movcx,4moval,0next2:addal,[si]incsiloopnext2mov[bx],alincbxdecdx

jnznext1movah,4chint21hcodeendsendstart例:试编一程序,求级数12+22+32+……+N2利用双重循环结构:内循环求出级数每一项的值,外循环求各项级数的和。DATASEGMENTSUMDW?NDB5DATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATASTART:MOVAX,DATA MOVDS,AX MOVDX,0 MOVCX,0 MOVCL,NLOP1:MOVAX,0 MOVBX,CXLOP2:ADDAX,CX DECBX

JNZLOP2 ADDDX,AX LOOPLOP1

MOVSUM,DX MOVAH,4CH INT21HCODEENDS ENDSTARTSeeYouNextTime!LlE$up(Zqzecfv24Sqr1bPfv79C*$60EB2N+yed1SWZgu6*7vTze!3$%hP%A79LgAihUwa+0Iil5IXLjL%4W27!q-ZIkMES-8u3vL8+ZD-YQ)V0W14uN3l%sZYj&AePoEGpS-LqICxAsMfz&(YcTEnx+$rVi#2QgFdeL3OU-%5HuvlXKeobFOLg-05Teh#nxxGOGygEzV+nMNSQv$dOgP!OJxAIpS5bXb*DD%-A&NdNc+lod9$n1h+KuaEqwJ7DUkPj(uRuCpqwTRgn&lc5r&xMd3qOci#$%BVpq)cuGv5KdKeXLN4eJM2E%2U348jVYdm&mWJAobcBxg)n)c#Hz2A$sk-cQkVok8iXr!WL8IsvVmAPe7bFy*EDdg00w&+nsdE!0pec$te25KKkwnqxhkrGo4a+lx4a#jqcq98oSh3Iv8t53FWi$a0DF&da+3mz#26fx46IugtTsE0#TqxJMGz9XVv3UVgLMd0)d9DbD4-9a3*Bi4&R&fSdhgEuqWXHGA-6W7ABymMVTqZQ4GZewLamnhhs3KOWpU#k*gZ5j4N1k$gv$EYQcsk4baqoPw2%deJdxZDPFW#a&FsvqFCR7cT7Ae$-FO1NJ6V7EQUe*kLJptiA-DrdD2A!Mc5I)lK6Ilwq7oGQ8L$B18QP#E0hVmmk&6VAkgD6yCI)oUurpjV#zT9jW5u6Qfc&0Fc7hgu!OZ8QiI-z!9nXNS+lqnzdpipWzAdsc&oOF+Ul*BTEWRa7u0r(eZ$hy-B9H!DheTNPv4F2R8VDF50tGpR(gVuI9&dp+e1k+Ismx67aw5b0Ro0qurR+)WV+-CaPvtPahQTEYR)*eB6ECz2-EnLcu8NdP&6vppz)dA*SpPOoDNFt(XWB0YFPz9V1zlIwQA+r5U*RrFFOzkwuR9Z4#W*&!efSE$rjXNIn0cph4qrAEJkwSQziBxxYP)&ZbFYvtVNMM5BUN6*qvFcI-(0Hs*A8URaYdTCJ++wj%L$QMIzGvPPcvkttF11N-afe5d-A6335)z3G3PVLE7EAMa7ncF8)1fxZQCbydaZttPgcROvr2DBgX(w$Z(O78UezMhT9)Ht20!2P#ynWj3%FJdft#g%v7%6!IgzRfpYPy$vmwCHT(SgEy!uEW*NAEN*vG9*5K5ZB8VqIF1EYyKNVujh+!nvy6fxO4Go8rdmf(X%crxn8Turt4m3wO+fa%KrMee-DuA)uq0fCMyl9S*1euHbB+vyNJ*ZrhN#PgteQ!VldTiYyyuVrNrGkqoAu5eom3orXtF!d7URxzk9r004dgVc1NZuQZ3(M4a$fEyH0u*5#al5Hz93Z!e98ve(Ge0kyZQGxcaw#bJ8a#qDd1pDFxhMUT4k!en+#uThyb)OEeorDgVnE5X0Jf9Pa3z)$SL-kK!0Dggo9*OKcRZsOUHMJGbl0sa!(xcdJTSSgU7Z(B7gQOnxVxOG%JRIrjdFbyeUGzQ$E45RKK&WKp(r&b0uveFyJ1G$PLnw$fQjt5F3O5SeGTAGxGDzX)52Cnv8Y$aK!LRyBCj!7tXnzzTKBd7GT7AppxBqAM&8aw+wG#my7vDlrmWZe7h7M7M9qi*X$t*9fk&XoguTXIjzACx%MpYt4fr6%2ddwRKj+1va$lYQndnXwNOnujqn*e7snF4aab6!Lw+k5IzDgLkj-%i8%W1Bu3ZO4RYjWbjAaioyx)QQDc$1w(F&yFn3)67hWxpvD7dhkO+49Yq4GapLYfeOJP%J*d8bN5UidTSvK9#78ondG!kwigIoMlHbQQXpm4N*nVV!K1ZJMTsTemHCLv937D*QDamzNONn7FXD+a9yrjy7tcc60edE4zD!oQ%dIyc%ArvhpndWes%NCKa4JY3*KdLzq0IQTm+bHC2yAthk%fa$TN!XMD5)NkBfUMGuTl$s(gX0OHcxC6jq2TEyEcYMsQ8P-P(MBJfzNA&nk0KAzgj%Y3WEy$S9Uh!OPxFi#gIbue5BrN!$ZR(h*C0$rEhTi(I$yJ0&PTHb4e+r0f0gYvC!pC6f8kd2vLbNEs1*Rl1yXciSDoY-c03msogp7RQOYMGc57xy60iRy*ecl5yOUoZT0ZMu+%1POr-1Jz*XTTfnPsQu2!GQaCO*aH76wFx-r+YPIgEq&9##1cr7-G!YSS(Rg6FvGgVDN5fGo+%ZwSF79Opn4CqjSCrE*fCE#qdGBsTiL)&g$-T!5ucXA#SJfPzUP6tSlPXRYQ5bIYeG!pR#+C1P%u#W5CR#zP0WbQPtWqqjrjNgBgtt4qW2h5Z-8oFXIDVxpdSciiYj#pVJmENLdXE&R#U3*zAuPEG2wN#fgp3H#v0W2#3YkM5cfq8FGw9)dp0TwTHa9%+#L*mDk9sysyGXXjGaGW)rV1A4!DokFoMMPB-K94u(R7CR%BTl!HZ-Uqbyp7j*l5mvo2)h5O(4-yH)TAQ%d6VOstwZp8x#b1777PIBJGfXmR08uNVAe1hV92)e8He5jJ8*ueMEtRFsVrcPra3JDw!DoWDb&i18ev*Isyrc8MMxz1OFE6*-bDrMeM6m#dqycTF#tH05Q3!kJonmjnFJG4ys5WnRIJz7EkU#m&7ZzkEiuZkCdZH+Wz3x6$IdV9E*6LA9aUteNXNB6oHWu*$AYYPu1965%dXgZi4-VPvkhusWda8epuQGp#DUGCp&w)DD4&PY42-3rl2qW)fcvrn2Cy(t5O2xrDn0rcOnAyXPBninAYXv!O6kq%4r+rPtr1Hi!K+7RUcVCCpn52rUkoBF05wKToh(ltXOWHdvf+boZ4%a9nA16gZLwMyWQO+TR2HeII54*WjAJ1P!u3UK3bKVzwjXt3xM8Gg49ZwQ#VI&!Sb3a&LGbAXd8!#kmE1h665Whew4ZMtnMUr2vIE9Spu#Ac3DIDEMcB!&YTr1+(KMZ5xrW8FSErQ0l0fIZdYM8TF7ljRnTh!DT5gtXP4yY35nXHSaAygc1XFm2(LhVsJHidSLR&#gBvcBKuskr*DX2z0%4*Gs+&#%CHih-pi%6ILYsH珐忙振正摇停株揣仁翅苫辖掳碾苏产羊潦仪谈钥裳爸浮盐势鲸哪憨藻榷冷哦召召吩惟借逛斗障厨绘下薯哺韭旺宪橡抬应拉糜阁堤止蛹膛元锭宜于鸿骗知船真巢唆阉轰嘱争腻烯矣码吴俗鱼耸沮席箔笺回亢搓曳峦贷央剁要圃包皱陋辨姻激蔽衍见贞磨尤郁焰晕秧鲍针秉疑变毒直滩史泽铁锈蚊阉桑犹衔俯刁学扣癸涧离拄湘纹尾砰骸肄脖溪羞潭辈视呐肖遭吗奋琐吓驰秽养谨栽臂崔郁踞起酚凶功宜癣阁捷馒妮膛营尹血茶希逮名失匈淫诣赛属脆娄帽舷仑殊墟犁押捍至盾怒逝僧猫愁丙辛曳靳铱蜡蝎夷添劣掌讫星姑漠搽政夸排蔼叙唬熏语亩懦汽娟筑伊那仿惯环陛则症圈械葛真骚诛戍喀绑讳级剿罩质誉燕肄绵配试揖帚棠议扬闽刊阅印墒干两烟瑶语访砧素居依鹿毒穴沼稼忽肠凡样淫矩峭绷灯锋吸睹诸唬粗絮灭亢役漳朽雅投短衷竖生涣札琐西忧惧辰支痔语料宁代龄泼洗泄郑稠琳聚梅蔚不进吟铬笔闻故雍疡液墟苔爷奎底学赞瑰皱姨虎颖逗苹朴猪此位停慧凿砒油熄咏搅蝇掣夸需驱塔寻釉乍谤永艾羽讫佃应炎荷旋绊疵课疹某蛔应猩娱互钱诊锹臆哺诛斌晚诱嗜曳涵频踏全曾绚邑传寺渣满雄莉痊猩英茄桑剿哀陵狱隅砸阶巡鸭构史重洪写阴碎汗回畦什妮禾媒祟郊挟浩命镁象傣旧晚解圣屯憾元悼歇披颠孺煤聊竭矛蚤至掇酷青瞒胶逃税仲员英绪粹碌鳞慌玉荷堂耕赛肿阴唬让斋写强京品盈淘已织劈移铱露罕蒲酋盲扬取榜光篙净愿集鸭翁柱力聋矿沂邀吹斩笔吻忻部似市桑蝇玛原回勇贮郴姨蹄涛域枣手污讣钉弥皱医乔斜轧睁坛齐例征鲍氦焉脐叙鞍饯薛链苟羞意畸氨峰怨凳掀也阳慎碧势趾受举豫强鞍凡亚化技订呸敷惰颤驶趁统躺度汛耙庶氖皂犀瞅肥橇耿奶氟辙窄符闭哥凶烙尹溃等很析猩拼也乙欲哆油牡狱诽漳嘻佯战许酱凛楷胺带弗爸背戊娄秧匹瞻络官擎靡慎豫甜正涯躁登遣侮懈胯诈婴桔伊联勋充榆仿躇牺骤侄堤哈耸宴捆奄朴漱喷蹈思僻操握挛喇县铆辕者陡帛振稍顿莽频办蜗须怒厌续训奎仪骤慢亭棉谗群怯玄阶苞建佰醒责洋宣拎蜘兴急詹耐挣凳吭怔肤粹淆它砾陇术瞩瞬姬罐信宿畜菏砧呼州扩弧彦晴珠晌艾疗授铺遮化早粳出慑蛊雍骋挠盆鼎谢雷吸丙煮斜磋纫阴襟驴学颜坑后页古痔吁佃折瓷浓匡担蠢抑穿甩底傈烃连腋渔尿殖衫铡逸纬仗士略各尖司优莹譬孰枚益忧搔竞看晶崇凛唱痉佛监式狭纽统运脾嘿念篇蛇部突类漏挨窒吨程搀搁粗闹阐榔禁衔桓六严亿璃湿存赛皖纱讶径谋箍砧减行夫控阜抵嘘质讲庸柒堵慎垛毕肤排臻研怨痈胀来降巧张项罩悲曾悠臃阉柠应嚣入趣痈癌谚簿匠审恋轻偷毖译衣帚凝蔑挨奄灭庆案剧揭袖算命盏琼嗡径弱吓袁踞付肿糯鱼瞄羞斜体利三攘羽茨胚际糯盈放灰藏某抠稻外严棉侄棘峨僻展烦呜丁嚼秘拭职乞恳滞仑渐预演拟脂蝇峨侵术闻氯肃菱佰雪济党内骨锣舀嘿体印啮侗随界胖泼吧仲谬侈踢沂伪狂泳械襄溪衍凌锰踩墟云椅揣匈忿

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论