




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
指令系统应用举例,书例2.2P63,MOVSI,OFFSETBUFFER1;源数据块首地址的偏移量送SIMOVDI,OFFSETBUFFER2;目标首址的偏移量送DIMOVCX,200;数据块长度送CXNEXT:MOVAL,SI;源数据块中一个字节传到ALMOVDI,AL;AL传送到目标地址INCSI;SI加1INCDI;DI加1DECCX;CX减1JNZNEXT;如不等于0,转移到NEXT,书例2.3P67,MOVBP,SP;设置基址指针寄存器PUSHAX;推入AX,SP减2PUSHBX;推入BX,SP减4PUSHCX;推入CX,SP减6MOVAX,BP-2;恢复AX原来的内容MOVBX,BP-4;恢复BX原来的内容MOVCX,BP-6;恢复CX原来的内容ADDSP,6;恢复SP原来的内容,书例2.6P75,要求计算两个多字节十六进制数之和:3B74AC60F8H+20D59E36C1H=?MOVCX,5;循环次数送CXMOVSI,0;SI初值为0CLC;清进位标志CFLOOPER:MOVAL,DATA2SI;取一个字节加数ADCDATA1SI,AL;与被加数相同且送回内存区INCSI;SI加1,指向下一字节DECCX;循环次数减1JNZLOOPER;如不为0,转LOOPER;如为0,运算结束,书例2.7P77,计算4609+3875=?设被加数和加数的每一位数都以ASCII码形式存放在内存中,低位在前,高位在后。LEASI,STRING1;(SI)被加数地址指针LEABX,STRING2;(BX)加数地址指针LEADI,SUM;(DI)结果地址指针MOVCX,4;(CX)循环次数CLC;清进位标志CFNEXT:MOVAL,SI;取一个字节被加数ADCAL,BX;与加数相加AAA;ASCII调整(非压缩)MOVDI,AL;送存,INCSI;SI加1INCBX;BX加1INCDI;DI加1DECCX;循环次数减1JNZNEXT;如不为0,转NEXT;如为0,结束运算,书例2.8P81,内存数据段存放了100个带符号数,首地址为AREA1,要求将各数取绝对值后存入以AREA2为首址的内存区。LEASI,AREA1;(SI)源地址指针LEADI,AREA2;(DI)目标地址指针MOVCX,100;(CX)循环次数CHECK:MOVAL,SI;取一个带符号数到ALORAL,AL;AL内容不变,但使之影响标志JNSNEXT;若(SF)=0,则转NEXTNEGAL;否则求补NEXT:MOVDI,AL;传送到目标地址INCSI;源地址加1INCDI;目标地址加1DECCX;循环次数减1JNZCHECK;如不等于0,则转CHECK;如等于0,转换结束,书例2.9P82,在内存数据段从DATA开始的存储单元中分别存放了2个8位无符号数,试比较它们的大小,并将大者传送到MAX单元。LEABX,DATA;DATA偏移地址BXMOVAL,BX;第一个无符号数送ALINCBX;BX指向第二个无符号数CMPAL,BX;两个数比较JNCDONE;如(CF)=0,则转DONEMOVAL,BX;否则,第2个无符号数送ALDONE:MOVEMAN,AL;较大无符号数送MAX单元;比较结束,书例2.10P95,从偏移地址TABLE开始的内存区中,存放着100个字节的十六进制数,要求将这些数进行累加,并将累加和的低位存SUM单元,高位存SUM+1单元。LEABX,TABLE;(BX)数据表地址指针MOVCL,100;(CL)数据快长度XORAX,AX;清AL,AHLOOPER:ADDAL,BX;加一个数到ALJNCGOON;如(CF)=0,转到GOONINCAH;否则,AH加1GOON:INCBX;地址指针加1DECCL;计数值减1JNZLOOPER;如(CL)不为0,转移到LOOPERMOVSUM,AX;否则,(SUN)AL,UM+1)(AH);累加结束,书例2.11P97,将一个16位无符号数乘以10。该数原来存放在以FACTOR为首地址的两个连续的存储单元中(低位在前,高位在后)。MOVAX,FACTOR;(AX)被乘数SHLAX,1;(AX)=FACTOR*2MOVBX,AX;暂存BXSHLAX,1;(AX)=FACTOR*4SHLAX,1;(AX)=FACTOR*8ADDAX,BX;(AX)=FACTOR*10,书例2.12P98,将一个16位无符号数除以512。该数原来存放在DIVIDAND为首地址的两个连续的存储单元中。MOVAX,DIVIDAND;(AX)被除数SHRAX,1;(AX)=DIVIDAND/2XCHGAL,AH;(AL)(AH),相当于循环右移8位CBW;清AX的高8位,;(AX)=DIVIDAND/512,书例2.13P103,将数据段中首地址为BUFFER1的200个字节传送到附加段首地址为BURRER2的内存区中。LEASI,BUFFER1;(SI)源串首址指针LEADI,BUFFER2;(DI)目标串首址指针MOVCX,200;(CX)字节串长度CLD;清方向标志DFREPMOVSB;传送200个字节;传送结束,书例2.14P104,比较两个字符串。找出其中第一个不相当字符串的地址。如果两字符串全部相同,则转到ALLMATCH进行处理。这两个字符串长度均为20,首地址分别为STRING1和STRING2LEASI,STRING1;(SI)字符串1首地址LEADI,STRING2;(DI)字符串2首地址MOVCX,20;(CX)字符串长度CLD;清方向标志DFREPECMPSB;如相等,重复进行比较JCXZALLMATCH;若(CX)=0,跳至ALLMATCHDECSI;否则(SI)-1DECDI;(DI)-1JMPDONE;跳转至标号DONEALLMATCH:MOVSI,0MOVDI,0DONE:;比较结束,书例2.15P105,在包含100个字符的字符串中寻找第一个回车符CR(其ASCII码为ODH),找到后将其地址保留在(ES:DI)中,并在屏幕上显示字符“Y”。如果字符串中没有回车符,则在屏幕上显示“N”。该字符串的首地址为STRING。LEADI,STRING;(DI)字符串首地址MOVAL,0DH;(AL)回车符MOVCX,100;(CX)字符串长度CLD;清标志位DFREPNESCASB;如未找到,重复扫描JZMATCH;如找到,转MATCHMOVDL,N;字符串中无回车符,则(DL)NJMPDSPY;转到DSPYMATCH:DECDI;(DI)-1MOVDL,Y;(DI)YDSPY:MOVAH,02;显示字符INT21H;搜索结束,书例2.16P106,内存中以BUFFER为首地址的缓冲区内有10个以不压缩BCD码形式存放的十进制数,它们的值可能是0-9中的任意一个,将这些十进制数顺序显示在屏幕上。LEASI,BUFFER;(SI)缓冲区首地址MOVCX,10;(CX)字符串长度CLD;清标志位DFMOVAH,02;(AH)功能号GET:LODSB;取一个BCD码到ALADDAL,30H;BCD码转换为ASCII码MOVDL,AL;(DL)字符INT21H;显示DECCX;(CX)-1JNZGET;未完成10个字符则重复,书例2.17P107,将字符“#”装入以AREA为首址的100个字节中。LEADI,AREAMOVAX,#MOVCX,50CLDREPSTOSW,书例2.18P107,一个数据块由大写或小写的英文字母、数字和其他各种符号组成,其结束符是回车符CR(其ASCII码为ODH),数据块的首地址为BLOCK1。要求将数据块传送到BLOCK2为首地址的内存区,并将其中所有英文小写字母(a-z)转换成相应的大写字母(A-Z),其余不变。LEASI,BLOCK1;(SI)源地址指针LEADI,BLOCK2;(DI)目标地址指针CLD;清方向标志DFNEXT:LODSB;取一个字符到ALCMPAL,0DH;是否是回车符JZDONE;是,转DONE,CMPAL,61H;否则,是否小于aJCOK;是,则转OKCMPAL,7BH;是否大于zJNCOK;是,则转OKSUBAL,20H;否则,AL减20HOK:STOSB;送存JMPNEXT;转移到NEXTDONE:,例2.19P113,在内存的数据段中存放了若干个8位带符号数,其数据块的长度为COUNT(不超过255),首地址为TABLE,试统计其中正元素、负元素、零元素的个数,并分别将个数存入PLUS、MINUS、ZERO单元。XORAL,AL;(AL)0MOVPLUS,AL;清PLUS单元MOVMINUS,AL;清MINUS单元MOVZERO,AL;清ZERO单元LEASI,TABLE;(SI)数据块首地址MOVCX,COUNT;(CX)数据块长度CLD;清标志位DF,CHECK:LODSB;取一个数到ALORAL,AL;使数据影响标志位JSX1;如为负,转X1JZX2;如为零,转X2INCPLUS;否则为正,PLUS单元加1JMPNEXTX1:INCMINUS;MINUS单元加1JMPNEXTX2:INCZERO;ZERO单元加1NEXT:LOOPCHECK;CX减1,如不为0,则转CHECK,例2.20P113,在以DATA为首地址的内存数据段中,存放了100个16位带符号数,试将其中最大和最小的带符号数找出来,分别存放到以MAX和MIN为首地址的内存单元中。LEASI,DATA;(SI)数据块首地址MOVCX,100;(CX)数据块长度CLD;清方向标志DFLODSW;送一个16位带符号数到AXMOVMAX,AX;送MAX单元MOVMIN,AX;送MIN单元DECCX;(CX)-1NEXT:LO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论