指令系统应用举例.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《指令系统应用举例.ppt》由会员分享,可在线阅读,更多相关《指令系统应用举例.ppt(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 指令系统应用举例指令系统应用举例 书例书例 2.2 P63MOV SI,OFFSET BUFFER1;源数据块首地址的偏移量送源数据块首地址的偏移量送SIMOV DI,OFFSET BUFFER2 ;目标首址的偏移量送目标首址的偏移量送DIMOV CX,200 ;数据块长度送数据块长度送CXNEXT:MOV AL,SI ;源数据块中一个字节传到源数据块中一个字节传到ALMOV DI,AL ;AL 传送到目标地址传送到目标地址INC SI ;SI 加加1INC DI ;DI加加1DEC CX ;CX减减1JNZ NEXT ;如不等于如不等于0,转移到,转移到NEXT 书例书例 2.3 P67M
2、OV BP,SP ;设置基址指针寄存器;设置基址指针寄存器PUSH AX ;推入;推入AX,SP减减2PUSH BX ;推入;推入BX,SP减减4PUSH CX ;推入;推入CX,SP减减6MOV AX,BP-2 ;恢复;恢复AX原来的内容原来的内容MOV BX,BP-4 ;恢复;恢复BX原来的内容原来的内容MOV CX,BP-6 ;恢复;恢复CX原来的内容原来的内容ADD SP,6 ;恢复;恢复SP原来的内容原来的内容 书例书例2.6 P75要求计算两个多字节十六进制数之和:要求计算两个多字节十六进制数之和:3B74AC60F8H+20D59E36C1H=?MOV CX,5 ;循环次数送;循
3、环次数送CX MOV SI,0 ;SI初值为初值为0 CLC ;清进位标志;清进位标志CFLOOPER:MOV AL,DATA2SI ;取一个字节加数;取一个字节加数 ADC DATA1SI,AL ;与被加数相同且送回内存区与被加数相同且送回内存区 INC SI ;SI加加1,指向下一字节,指向下一字节 DEC CX ;循环次数减;循环次数减1 JNZ LOOPER ;如不为;如不为0,转,转LOOPER ;如为;如为0,运算结束,运算结束 书例书例2.7 P77计算计算4609+3875=?设被加数和加数的每一位数都以设被加数和加数的每一位数都以ASCII码码形式存放在内存中,低位在前,高位
4、在后。形式存放在内存中,低位在前,高位在后。LEA SI,STRING1 ;(SI)被加数地址指针被加数地址指针 LEA BX,STRING2 ;(BX)加数地址指针加数地址指针 LEA DI,SUM ;(DI)结果地址指针结果地址指针 MOV CX,4 ;(CX)循环次数循环次数 CLC ;清进位标志;清进位标志CFNEXT:MOV AL,SI ;取一个字节被加数;取一个字节被加数 ADC AL,BX ;与加数相加;与加数相加 AAA ;ASCII调整(非压缩)调整(非压缩)MOV DI,AL ;送存;送存 INC SI ;SI加加1INC BX ;BX加加1INC DI ;DI加加1DEC
5、 CX ;循环次数减;循环次数减1JNZ NEXT ;如不为;如不为0,转,转NEXT ;如为;如为0,结束运算,结束运算 书例书例2.8 P81内存数据段存放了内存数据段存放了100个带符号数,首地址为个带符号数,首地址为AREA1,要求,要求将各数取绝对值后存入以将各数取绝对值后存入以AREA2为首址的内存区。为首址的内存区。LEA SI,AREA1 ;(SI)源地址指针源地址指针 LEA DI,AREA2 ;(DI)目标地址指针目标地址指针 MOV CX,100 ;(CX)循环次数循环次数CHECK:MOV AL,SI ;取一个带符号数到;取一个带符号数到AL OR AL,AL ;AL内
6、容不变,但使之影响标志内容不变,但使之影响标志 JNS NEXT ;若;若(SF)=0,则转,则转NEXT NEG AL ;否则求补;否则求补NEXT:MOV DI,AL ;传送到目标地址;传送到目标地址 INC SI ;源地址加;源地址加1 INC DI ;目标地址加;目标地址加1 DEC CX ;循环次数减;循环次数减1 JNZ CHECK ;如不等于;如不等于0,则转,则转CHECK ;如等于;如等于0,转换结束,转换结束 书例书例2.9 P82在内存数据段从在内存数据段从DATA开始的存储单元中分别存放了开始的存储单元中分别存放了2个个8位位无符号数,试比较它们的大小,并将大者传送到无
7、符号数,试比较它们的大小,并将大者传送到MAX单单元。元。LEA BX,DATA ;DATA偏移地址偏移地址BX MOV AL,BX ;第一个无符号数送;第一个无符号数送AL INC BX ;BX指向第二个无符号数指向第二个无符号数 CMP AL,BX ;两个数比较;两个数比较 JNC DONE ;如(;如(CF)=0,则转,则转DONE MOV AL,BX ;否则,第;否则,第2个无符号数送个无符号数送ALDONE:MOVE MAN,AL ;较大无符号数送;较大无符号数送MAX单元单元 ;比较结束;比较结束 书例书例2.10 P95 从偏移地址从偏移地址TABLE开始的内存区中,存放着开始的
8、内存区中,存放着100个字节的十六进制数,要求将这些数个字节的十六进制数,要求将这些数进行累加,并将累加和的低位存进行累加,并将累加和的低位存SUM单元,高位存单元,高位存SUM+1单元。单元。LEA BX,TABLE ;(BX)数据表地址指针数据表地址指针 MOV CL,100 ;(CL)数据快长度数据快长度 XOR AX,AX ;清;清AL,AHLOOPER:ADD AL,BX ;加一个数到;加一个数到AL JNC GOON ;如;如(CF)=0,转到,转到GOON INC AH ;否则,;否则,AH加加1 GOON:INC BX ;地址指针加;地址指针加1 DEC CL ;计数值减;计数
9、值减1 JNZ LOOPER ;如如(CL)不为不为0,转移到,转移到LOOPER MOV SUM,AX ;否则,否则,(SUN)AL,UM+1)(AH);累加结束累加结束 书例书例2.11 P97将一个将一个16位无符号数乘以位无符号数乘以10。该数原来存放在以。该数原来存放在以FACTOR为为首地址的两个连续的存储单元中(低位在前,高位在后)。首地址的两个连续的存储单元中(低位在前,高位在后)。MOV AX,FACTOR ;(AX)被乘数被乘数SHL AX,1 ;(AX)=FACTOR*2MOV BX,AX ;暂存;暂存BXSHL AX,1 ;(AX)=FACTOR*4 SHL AX,1
10、;(AX)=FACTOR*8ADD AX,BX ;(AX)=FACTOR*10 书例书例2.12 P98 将一个将一个16位无符号数除以位无符号数除以512。该数原来存放在。该数原来存放在DIVIDAND为为首地址的两个连续的存储单元中。首地址的两个连续的存储单元中。MOV AX,DIVIDAND ;(AX)被除数被除数SHR AX,1 ;(AX)=DIVIDAND/2XCHG AL,AH ;(AL)(AH),相当于循环右移,相当于循环右移8位位CBW ;清;清AX的高的高8位,位,;(AX)=DIVIDAND/512 书例书例2.13 P103将数据段中首地址为将数据段中首地址为BUFFER
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指令系统 应用 举例
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内