指令系统应用举例.ppt

指令系统应用举例.ppt

ID:51517634

大小:614.36 KB

页数:23页

时间:2020-03-25

指令系统应用举例.ppt_第1页
指令系统应用举例.ppt_第2页
指令系统应用举例.ppt_第3页
指令系统应用举例.ppt_第4页
指令系统应用举例.ppt_第5页
资源描述:

《指令系统应用举例.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、指令系统应用举例[书例2.2]P63MOVSI,OFFSETBUFFER1;源数据块首地址的偏移量送SIMOVDI,OFFSETBUFFER2;目标首址的偏移量送DIMOVCX,200;数据块长度送CXNEXT:MOVAL,[SI];源数据块中一个字节传到ALMOV[DI],AL;AL传送到目标地址INCSI;SI加1INCDI;DI加1DECCX;CX减1JNZNEXT;如不等于0,转移到NEXT……[书例2.3]P67MOVBP,SP;设置基址指针寄存器PUSHAX;推入AX,SP减2PUSHBX;推入BX,SP减4PUSH

2、CX;推入CX,SP减6……MOVAX,[BP-2];恢复AX原来的内容MOVBX,[BP-4];恢复BX原来的内容MOVCX,[BP-6];恢复CX原来的内容ADDSP,6;恢复SP原来的内容[书例2.6]P75要求计算两个多字节十六进制数之和:3B74AC60F8H+20D59E36C1H=?MOVCX,5;循环次数送CXMOVSI,0;SI初值为0CLC;清进位标志CFLOOPER:MOVAL,DATA2[SI];取一个字节加数ADCDATA1[SI],AL;与被加数相同且送回内存区INCSI;SI加1,指向下一字节DEC

3、CX;循环次数减1JNZLOOPER;如不为0,转LOOPER……;如为0,运算结束[书例2.7]P77计算4609+3875=?设被加数和加数的每一位数都以ASCII码形式存放在内存中,低位在前,高位在后。LEASI,STRING1;(SI)被加数地址指针LEABX,STRING2;(BX)加数地址指针LEADI,SUM;(DI)结果地址指针MOVCX,4;(CX)循环次数CLC;清进位标志CFNEXT:MOVAL,[SI];取一个字节被加数ADCAL,[BX];与加数相加AAA;ASCII调整(非压缩)MOV[DI]

4、,AL;送存INCSI;SI加1INCBX;BX加1INCDI;DI加1DECCX;循环次数减1JNZNEXT;如不为0,转NEXT……;如为0,结束运算[书例2.8]P81内存数据段存放了100个带符号数,首地址为AREA1,要求将各数取绝对值后存入以AREA2为首址的内存区。LEASI,AREA1;(SI)源地址指针LEADI,AREA2;(DI)目标地址指针MOVCX,100;(CX)循环次数CHECK:MOVAL,[SI];取一个带符号数到ALORAL,AL;AL内容不变,但使之影响标志JNSNEXT;若(SF)=

5、0,则转NEXTNEGAL;否则求补NEXT:MOV[DI],AL;传送到目标地址INCSI;源地址加1INCDI;目标地址加1DECCX;循环次数减1JNZCHECK;如不等于0,则转CHECK……;如等于0,转换结束[书例2.9]P82在内存数据段从DATA开始的存储单元中分别存放了2个8位无符号数,试比较它们的大小,并将大者传送到MAX单元。LEABX,DATA;DATA偏移地址BXMOVAL,[BX];第一个无符号数送ALINCBX;BX指向第二个无符号数CMPAL,[BX];两个数比较JNCDONE;如(CF)=0,则

6、转DONEMOVAL,[BX];否则,第2个无符号数送ALDONE:MOVEMAN,AL;较大无符号数送MAX单元……;比较结束[书例2.10]P95从偏移地址TABLE开始的内存区中,存放着100个字节的十六进制数,要求将这些数进行累加,并将累加和的低位存SUM单元,高位存SUM+1单元。LEABX,TABLE;(BX)数据表地址指针MOVCL,100;(CL)数据快长度XORAX,AX;清AL,AHLOOPER:ADDAL,[BX];加一个数到ALJNCGOON;如(CF)=0,转到GOONINCAH;否则,AH加1GO

7、ON:INCBX;地址指针加1DECCL;计数值减1JNZLOOPER;如(CL)不为0,转移到LOOPERMOVSUM,AX;否则,(SUN)AL,UM+1)(AH)……;累加结束[书例2.11]P97将一个16位无符号数乘以10。该数原来存放在以FACTOR为首地址的两个连续的存储单元中(低位在前,高位在后)。MOVAX,FACTOR;(AX)被乘数SHLAX,1;(AX)=FACTOR*2MOVBX,AX;暂存BXSHLAX,1;(AX)=FACTOR*4SHLAX,1;(AX)=FACTOR*8ADDAX,BX;(

8、AX)=FACTOR*10……[书例2.12]P98将一个16位无符号数除以512。该数原来存放在DIVIDAND为首地址的两个连续的存储单元中。MOVAX,DIVIDAND;(AX)被除数SHRAX,1;(AX)=DIVIDAND/2XCHGAL,AH;(A

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

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

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