资源描述:
《微机原理与应用5-3.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、BCD数运算指令例1:18+7=2500011000--------18+00000111--------700011111--------?(1111是非法BCD码)需要对结果进行变换(调整),方法:“加6调整”00011111+0000011000100101--------25(正确结果)(2)组合BCD数十进制调整指令*加法的十进制调整:格式:DAA操作:ALAL中的和数调整到组合BCD格式MOVAL,18HADDAL,7H;(AL)=1FHDAA;(AL)=25H*减法的十进制调整:格式:DAS操作:ALAL中的差数调整到
2、组合BCD格式(3)分离BCD数调整指令加法调整指令(AAA)减法调整指令(AAS)乘法调整指令(AAM)除法调整指令(AAD)(三)逻辑运算和移位指令1.逻辑运算指令名称格式操作非NOTOPROPROPR或ORDST,DSTDSTDST∨SRC与ANDDST,SRCDSTDST∧SRC异或XORDST,SRCDSTDST⊕SRC测试TESTOPR1,OPR2OPR1∧OPR22.移位指令名称格式操作逻辑左移SHLOPR,CNT(其中,OPR是除立即数以外的任何一种寻址方式,CNT可以是1或CL)算术左移SALOPR,CNT左移1位
3、时,若最高位(即符号位)发生改变(01或10),则OF=1,未发生改变时,OF=0;逻辑右移SHROPR,CNT算术右移SAROPR,CNTCF0CF0CFCF03.循环移位指令不带进位的循环左移ROLOPR,CNT不带进位的循环右移ROROPR,CNTCFCF循环移位指令带进位的循环左移RCLOPR,CNT带进位的循环右移RCROPR,CNTCFCF例:编程实现将AL中的数乘以10(求10x)SALAL,1;将AL中数左移1位,得2xMOVBL,AL;2x保存在BL中.MOVCL,2;移位次数送入CLSALAL,CL;2x左移2位
4、,得8xADDAL,BL;2x加上8x,AL中为10x四。串操作类指令5条指令和3个重复前缀1、串传送:MOVS2、串存储:STOS3、串读取:LODS4、串比较:CMPS5、串扫描:SCAS6、串重复前缀:REPREPZ/REPEREPNZ/REPNE串数据类型操作对象是以字(W)为单位的字串,命令后加W.例如:MOVSW或是以字节(B)为单位的字节串,命令后加B。例如:MOVSB串寻址方式源操作数:DS:[SI]目的操作数:ES:[DI]每执行一次串操作指令,SI和DI将自动修改:±1(对于字节串)或±2(对于字串);DF=0,
5、地址指针增1或2;DF=1,地址指针减1或2。REPREPZREPNZ重复前缀指令REP;每执行一次串指令,;CX减1;直到CX=0,重复执行结束REPZ;每执行一次串指令,CX减1;并判断ZF是否为0,;只要CX=0或ZF=0,执行结束REPNZ;每执行一次串指令,CX减1;并判断ZF是否为1,;只要CX=0或ZF=1,执行结束例MOVAX,0MOVDS,AXMOVES,AXMOVSI,1000HMOVDI,3000HMOVCX,64H;100CLD;清DF标志REPMOVSB1000H3000H地址100字节100字节