微原-第3章5.ppt

上传人:wj 文档编号:9417238 上传时间:2023-05-18 格式:PPT 页数:34 大小:256.50KB
下载 相关 举报
微原-第3章5.ppt_第1页
第1页 / 共34页
微原-第3章5.ppt_第2页
第2页 / 共34页
微原-第3章5.ppt_第3页
第3页 / 共34页
微原-第3章5.ppt_第4页
第4页 / 共34页
微原-第3章5.ppt_第5页
第5页 / 共34页
微原-第3章5.ppt_第6页
第6页 / 共34页
微原-第3章5.ppt_第7页
第7页 / 共34页
微原-第3章5.ppt_第8页
第8页 / 共34页
微原-第3章5.ppt_第9页
第9页 / 共34页
微原-第3章5.ppt_第10页
第10页 / 共34页
微原-第3章5.ppt_第11页
第11页 / 共34页
微原-第3章5.ppt_第12页
第12页 / 共34页
微原-第3章5.ppt_第13页
第13页 / 共34页
微原-第3章5.ppt_第14页
第14页 / 共34页
微原-第3章5.ppt_第15页
第15页 / 共34页
微原-第3章5.ppt_第16页
第16页 / 共34页
微原-第3章5.ppt_第17页
第17页 / 共34页
微原-第3章5.ppt_第18页
第18页 / 共34页
微原-第3章5.ppt_第19页
第19页 / 共34页
微原-第3章5.ppt_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微原-第3章5.ppt

《微原-第3章5.ppt》由会员分享,可在线阅读,更多相关《微原-第3章5.ppt(34页珍藏版)》请在冰点文库上搜索。

微原-第3章5.ppt

本教案内容,第3章8086CPU指令系统汇编语言指令8086指令分类数据与转移地址的寻址方式数据传送类指令算术运算类指令逻辑运算类指令移位类指令标志位操作指令,转移指令循环控制指令子程序调用返回指令中断调用返回指令字符串操作指令I/O输入输出指令其它指令宏指令,5条逻辑运算类指令书写格式与完成的功能如下表所示。

3.6逻辑运算类指令,指令的运算都是按位进行的。

NOT指令是将操作数的各位取反,其它指令是两个操作数的对应位实行相应的逻辑运算。

指令可以有字节操作,也可以有字操作。

3.6逻辑运算类指令,指令执行后对标志位的影响情况:

除NOT指令对标志位不产生影响外,其余指令将使CF、OF置0,并以正常规则设置SF、ZF和PF的状态。

3.6逻辑运算类指令,3.6逻辑运算类指令,1.逻辑与指令(AND)格式:

ANDDST,SRC;(DST)(DST)(SRC),并置各标志位AND完成将DST、SRC的内容进行相与操作,其结果保存在DST中,并设置PSW中的标志位。

指令中的DST可以取通用寄存器、存储单元,SRC可以取通用寄存器、存储单元和立即数,但DST和RSC不能同时为存储单元。

(“And”byteorword),3.6逻辑运算类指令,例3.20求两个操作数的逻辑与。

解:

设VAR1为字型变量,则有:

ANDAX,BX;(AX)(AX)(BX)ANDAL,156;(AL)(AL)10011100B(156=10011100B)ANDVAR1,78AAH;(VAR1)(VAR1)78AAHANDCX,SI;(CX)(CX)((SI)),3.6逻辑运算类指令,2.逻辑测试指令(TEST)格式:

TESTDST,SRC;(DST)(SRC),并置各标志位说明:

TEST为逻辑测试指令,它与AND指令非常类似,完成将DST、SRC的内容进行相与操作,其结果不保存,并设置PSW中的标志位。

指令中的DST和SRC的说明等同于AND指令。

(“Test”byteorword),3.6逻辑运算类指令,例3.21求两个操作数的逻辑测试。

解:

设VAR1为字型变量,则有:

TESTAL,156;(AL)10011100B(156=10011100B)TESTVAR1,78AAH;(VAR1)78AAHTESTAX,BX;(AX)(BX)TESTCX,SI;(CX)((SI)),3.6逻辑运算类指令,3.逻辑或指令(OR)格式:

ORDST,SRC;(DST)(DST)(SRC),并置各标志位说明:

OR为逻辑或指令,它完成将DST、SRC的内容进行相或操作,其结果保存在DST中,并设置PSW中的标志位。

指令中的DST和SRC的说明等同于AND指令。

(“Inclusiveor”byteorword),3.6逻辑运算类指令,例3.22求两个操作数的逻辑或。

解:

设VAR2为字节型变量,则有:

ORAL,01100001B;(AL)(AL)01100001BORVAR2,0FH;(VAR2)(VAR2)0FHORAX,BX;(AX)(AX)(BX)ORBX,DI;(BX)(BX)((DI)),3.6逻辑运算类指令,4.逻辑异或指令(XOR)格式:

XORDST,SRC;(DST)(DST)(SRC),并置各标志位说明:

XOR为逻辑异或指令,它完成将DST、SRC的内容进行异或操作,其结果保存在DST中,并设置PSW中的标志位。

指令中的DST和SRC的说明等同于AND指令。

“Exclusiveor”byteorword,例3.23求两个操作数的逻辑异或。

解:

设VAR2为字节型变量,则有:

XORAL,01100001B;(AL)(AL)01100001BXORVAR2,0FH;(VAR2)(VAR2)0FHXORAX,BX;(AX)(AX)(BX)XORBX,DI;(BX)(BX)((DI)),3.6逻辑运算类指令,3.6逻辑运算类指令,5.逻辑非指令(NOT)格式:

NOTDST;(DST)说明:

NOT为逻辑非指令,它完成将DST的内容进行按位取反的操作,其结果保存在DST中,但NOT指令不影响PSW中的标志位。

指令中的DST可以取通用寄存器和存储单元。

(“Not”byteorword),例3.24求操作数的逻辑非。

解:

设VAR1为字型变量,则有:

NOTAL;(AL)NOTVAR1;(VAR1),3.6逻辑运算类指令,3.6逻辑运算类指令,逻辑运算指令可以方便地对寄存器和存储单元中的数据进行逻辑操作。

利用逻辑运算指令可通过适当选用源操作数的代码,使目的操作数的某些位进行清零、置位及取反操作,例如:

3.6逻辑运算类指令,OROL,03H;将CL的位0,1置1,其余位不变ANDAL,0F5H;将AL的位1,位3清零XORAH,0FH;将AH的低4位取反,高4位不变TESTAL,02H;测试AL的位1是否为0,JZZER1;若为0则转移到ZER1XORAX,AX;AX清0ANDAL,5FH;将AL中字母的ASCII码变换成“大写”字母的ASCII码ORAL,20H;将AL中字母的ASCII码变换成“小写”字母的ASCII码,3.6逻辑运算类指令,作业:

1013,3.7移位类指令,在8086指令系统中,移位类指令有:

逻辑右移SHR算术右移SAR逻辑/算术左移SHL/SAL循环右移ROR循环左移ROL带进位循环右移RCR带进位循环左移RCL,3.7移位类指令,共同特点:

正常影响PSW的SF、PF、ZF、CF和OF标志位,其中CF表示指令所移出的一位,OF1表示移位前后符号位发生了变化。

移位类指令具有相同的指令格式SHRDST,CNT,3.7移位类指令,DST可以取通用寄存器和存储单元,CNT为移位次数,它只有两种取值:

CNT=1,表示指令移1位;CNT=CL,表示移位次数由CL的内容决定。

在逻辑右移指令中,在最高位填入0;在算术右移指令中,在最高位填入符号位(即最高位);在逻辑/算术左移指令中,在最低位填入0;在循环右移指令中,在最高位填入其最低位的值,形成循环移位;在循环左移指令中,在最低位填入其最高位的值;在带进位循环右移和左移指令中,将DST和CF看成整体进行循环位操作。

1.移位指令,逻辑移位,左移SHLDST,CNT,右移SHRDST,CNT,D7D1D0,移位次数,3.7移位类指令,右移1位操作相当于将DST除以2;左移1位操作相当于将DST乘以2。

例.,SHRAX,1;将AX的内容右移1位,最;高位补0SHLAL,CL;将AL的内容左移CL中指;定的次数,且每次移位;最低位补0,3.7移位类指令,SHLDAT1SI,CL;将内存某单元的;内容左移CL中所;中指定的次数SHRBL,2当移位次数1时,必须用CL提供移位次数,3.7移位类指令,算术移位,左移SALDST,CNT,右移SARDST,CNT,0,CF,DST,DST,CF,3.7移位类指令,2.循环移位指令,不带CF的循环移位,左移ROLDST,CNT,右移RORDST,CNT,3.7移位类指令,带CF的循环移位,左移RCLDST,CNT,右移RCRDST,CNT,3.7移位类指令,例1.若(BL)=01110010B,(CL)=3,CF=1,则CPU执行:

RCRBL,CL指令后,,(BL)=10101110B=0AEH,3.7移位类指令,01110010,1,D7D6D5D4D3D2D1D0,10111001,0,D7D6D5D4D3D2D1D0,01011100,1,D7D6D5D4D3D2D1D0,10101110,0,D7D6D5D4D3D2D1D0,一次,二次,三次,例2.编程序实现5*10运算。

(不能用MUL指令),5*10=5*(2+8)=5*2+5*8,算法:

3.7移位类指令,MOVAL,05HSHLAL,1;(AL)=5*2MOVBL,AL;(BL)=5*2MOVCL,2SHLAL,CL;(AL)=5*8ADDAL,BL;(AL)=5*10,3.7移位类指令,3.7移位类指令,例3.28将一个字(AX)的内容除2,并进行四舍五入操作。

解:

对(AX)右移1位等效于(AX)2,四舍五入操作可以表述成:

当原(AX)最低位(即移出的1位)为1时,在结果中加1。

因此可以编写出程序段:

SHRAX,1ADCAX,0,3.7移位类指令,另外,四舍五入操作还可以表述成:

其中方括号表示取整运算,这样可以在移位之前的最低位加上1,然后进行右移1位的操作。

因此可以编写出程序段:

INCAXSHRAX,1,3.8标志位操作指令,作业:

12141617,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2