微机原理-第8章汇编语言程序设计.ppt

微机原理-第8章汇编语言程序设计.ppt

ID:59589403

大小:3.43 MB

页数:145页

时间:2020-11-14

微机原理-第8章汇编语言程序设计.ppt_第1页
微机原理-第8章汇编语言程序设计.ppt_第2页
微机原理-第8章汇编语言程序设计.ppt_第3页
微机原理-第8章汇编语言程序设计.ppt_第4页
微机原理-第8章汇编语言程序设计.ppt_第5页
资源描述:

《微机原理-第8章汇编语言程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、微型计算机机原理及应用程序设计的基本技术1235顺序程序设计分支程序设计循环程序设计子程序设计4串处理程序设计注意:本书有关汇编语言程序设计只限于DOS环境下的实地址方式,该方式下字长为16位。顺序程序是最简单的程序,它的执行顺序和程序中指令的顺序完全一致1顺序程序设计格式:MULsourceIMULsource;符号整数乘法1.1乘除法指令1.乘法指令MUL和符号整数乘法指令IMUL1、源操作数source可以是字节、字或双字,可为寄存器或存储器操作数,不能为立即数。2、目的操作数是隐藏的,为被乘数,放于AL、AX或EAX,视source的类型属性决定

2、是AL、AX还是EAX3、在乘法指令之前必须将目的操作数送AL(字节乘)或AX(字乘)或EAX(双字乘)。乘积的放法:8位或16位乘法指令所执行的操作是AL或AX乘以source,乘积放回到AX或DX和AX,如下图所示ALsourc8AX×AXsourc16AX×DX1.1乘除法指令32位乘法指令所执行的操作是EAX乘以source,乘积放回到EDX和EAX,如下图所示EAXsourc32EAX×EDX注意:乘法指令对标志位CF和OF有影响,对其余标志位的影响不确定。1.1乘除法指令例如:将AX中的3位BCD数转换为二进制数存入字节变量SB中。M0VCH

3、,10MOVCL,4MOVSB,AL;暂存十位和个位MOVAL,AH;百位存入AL中MULCH;百位×10→AXMOVAH,SB;百位×10的积小于255,所以只用AL存放即可SHRAH,CL;取十位ADDAL,AH;百位×10+十位→ALMULCH;(百位×10+十位)×10→AXANDSB,0FH;取个位ADDSB,AL;(百位×10+十位)×10+个位→SBN2×102+N1×10+N0=(N2×10+N1)×10+N0程序段如下:1.1乘除法指令格式:IMULREG,source;REG←REGXsourceIMULREG,source,imm;

4、REG←sourceXimm1.1乘除法指令注:符号整数乘法指令IMUL1、双操作数乘法指令是用源操作数乘目的操作数,乘积存入目的操作数。2、三操作数乘法指令是用源操作数乘立即数,乘积存入目的操作数。3、要求:其源操作数source可为寄存器或存储器操作数,目的操作数只能是16位和32位的寄存器,源、目的操作数的类型要求一致。格式:DIVsourceIDIVsource;符号整数除法注意:源操作数source可以是字、字节或双字,可为REG或MEM,不能为立即数目的操作数是隐藏的,放置被除数,可为AX或DX和AX或EDX和EAX。2.除法指令DIV和符号

5、整数除法指令IDIV1.1乘除法指令8位或16位除法指令所执行的操作如下图所示ALsourc8AXAXsourc16AXDXAHDX……1.1乘除法指令32位除法指令所执行的操作如下图所示EAXsourc32EAXEDXEDX…可用除法运算(除10取余)将二进制数转换为BCD数1.1乘除法指令如,用除10取余法将8位二进制数FFH转换为BCD数255H的二进制运算如下图所示1.1乘除法指令方法:“除10取余”法例如将AL中的8位无符号二进制数转换为BCD数放入AX中例如将AL中的8位无符号二进制数转换为BCD数放入AX中MOVAL,0FFHMOVCL,1

6、0MOVAH,0;将8位二进制数扩展为16位DIVCL;商→AL,余数→AH(个位数)MOVCH,AH;暂存BCD数个位MOVAH,0DIVCL;商→AL,余数→AH(十位数)MOVCL,4SHLAH,CL;BCD数十位移至高4位ORCH,AH;BCD数十位与个位拼合MOVAH,0MOVCL,10DIVCL;AH中余数为BCD数的百位MOVAL,CH;BCD数十位与个位送AL1.1乘除法指令3.扩展指令CBW和CWD扩展方法:要把一个8位二进制数除以另一个8位二进制数,要有一个16位二进制数在AX中,所以做8位除以8位的除法前先要把8位被除数扩展为16位

7、。做16位除以16位的除法前要把16位被除数扩展为32位,做32位除以32位的除法前要把32位被除数扩展为64位。这种扩展对于无符号数除法只需将AH或DX或EDX清0,而对符号整数除法则要通过扩展符号位来把被除数扩展。1.1乘除法指令指令都隐含操作数在做8位除以8位、16位除以16位、32位除以32位的符号整数除法之前,应先扩展AL或AX或EAX中的被除数。扩展指令和符号整数除法指令仅对补码数适用。格式:CBW;AL的最高位符号位扩展至AHCWD;AX的最高位扩展至DXCWDE;AX的最高位扩展至EAX的高16位CDQ;EAX的最高位扩展至EDX1.1乘

8、除法指令如:有一符号字数组变量ARRAY,第1个字是被除数,第2个字是除数,接着

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

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

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