微机原理课件第6讲.ppt

微机原理课件第6讲.ppt

ID:51495660

大小:1.10 MB

页数:51页

时间:2020-03-24

微机原理课件第6讲.ppt_第1页
微机原理课件第6讲.ppt_第2页
微机原理课件第6讲.ppt_第3页
微机原理课件第6讲.ppt_第4页
微机原理课件第6讲.ppt_第5页
资源描述:

《微机原理课件第6讲.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第3章8086的寻址方式和指令系统3.18086的寻址方式3.28086指令格式及数据类型3.38086的指令集乘法指令指令含义时钟数MUL无符号数乘法70~139+EAIMUL整数乘法80~160+EAAAM乘法的ASCII调整83①MUL无符号数乘法指令MUL无符号数乘法指令(Multiplyunsigned)格式MULsrc。功能将源操作数和累加器中的数都当成无符号数,然后将两数相乘,src可以是字(0~65535)和字节(0~255)。操作数要求可以是寄存器、存储单元,但不能是立即数;源操作数是存储单元时,必须在操作数前加B或W说明是字节还是字。①MUL无符号数乘法指

2、令运算情况源操作数是一个字节源操作数与累加器AL中的内容相乘,乘积为双倍长的16位数,高8位送到AH,低8位送AL。即AXAL×源。AL被乘数8位操作数乘数×8位AX乘积16位①MUL无符号数乘法指令运算情况源操作数是一个字源操作数与累加器AX的内容相乘,结果为32位数,高位字放在DX寄存器中,低位字放在AX寄存器中。即(DX,AX)AX×源AX被乘数16位操作数乘数×16位AX乘积32位DX举例MULCL;AL乘CL,结果在AX中MULBX;AX乘BX,结果在DX:AX中MULBYTE[DI];AL乘存储器(8位),结果在AX中MULWORD[BX];AX乘存储器字,

3、结果在DX:AX中如果运算结果的高半部分(在AH或DX中)为零,则状态标志位(CF)=(OF)=0,否则(CF)=(OF)=1。因此,状态标志位(CF)=(OF)=1,表示AH或DX中包含着乘积的有效位。①MUL无符号数乘法指令举例MOVAL,14H;(AL)=14H--20MOVCL,05H;(CL)=05H--5MULCL;(AX)=0064H--100本例中结果的高半部分(AH)=0,因此,状态标志位(CF)=(OF)=0,通过检测标志,可以去除结果中的前导无效零。有了乘法(和除法)指令,使有些运算程序的编程变得简单方便。但是必须注意,乘法指令的执行速度很慢,除法指令

4、也是如此。①MUL无符号数乘法指令②IMUL整数乘法指令IMUL整数乘法指令(IntegerMultiply)格式IMULsrc。功能将源操作数和累加器中的数都当成有符号数,然后将两数相乘,src可以是字(-32768~32767)和字节(-128~127)。操作数要求和运算情况与MUL要求相同。举例IMULCL;AL乘CL,结果在AX中IMULBX;AX乘BX,结果在DX:AX中IMULBYTE[DI];AL乘存储器(8位),结果在AX中IMULWORD[BX];AX乘存储器字,结果在DX:AX中如果运算结果的高半部分(在AH或DX中)为0或1,则状态标志位(CF)=(O

5、F)=0,否则(CF)=(OF)=1。因此,状态标志位(CF)=(OF)=1,表示AH或DX中包含着乘积的有效位。为0,则表示高半部分是符号扩展。②IMUL整数乘法指令正数,AH或DX为全0负数,AH或DX为全1举例MOVAX,04E8H;(AX)=04E8HMOVBX,4E20H;(BX)=4E20HIMUL BX;(DX:AX)=(AX)(BX)以上指令的执行结果为:(DX)=017FH,(AX)=4D00H,且(CF)=(OF)=1。实际上,以上指令完成带符号数+1256和+20000的乘法运算,得到乘积为+25120000。由于此时DX中结果的高半部分包含着乘积的

6、有效数字,故状态标志位(CF)=(OF)=1。②IMUL整数乘法指令③AAM乘法的ASCII调整指令AAM乘法的ASCII调整指令(ASCIIAdjustforMultiply)格式AAM。功能对AL中的两个非压缩十进制数相乘的乘积进行十进制数的调整,在AX中得到正确的非压缩十进制数的乘积,高位在AH中,低位在AL中。调整的过程把AL寄存器内容除以10,商放在AH中,余数在AL中。即:AHAL/10所得的商;ALAL/10所得的余数.③AAM乘法的ASCII调整指令举例求两个非压缩十进制数08和04之乘积。解:MOVAL,08H;置初值MOVBL,04HMULBL;AL

7、08与04之乘积20HAAM;调整得AH=03H(十位),AL=02H(个位)结果:AX=0302H,即BCD数32。若想转换成ASCII码,需再执行ORAX,3030H除法指令指令含义时钟数DIV无符号除法80~168+EAIDIV整数除法101~190+EAAAD除法的ASCII调整60CBW把字节转换成字2CWD把字转换成双字5①DIV无符号数除法指令DIV无符号数除法指令(Divisionunsigned)格式DIVsrc。功能将两个无符号数相除,被除数的长度必须是除数长度的两倍,若不够,必须扩

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

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

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