下载此文档

汇编语言实现用16位乘法指令完成32位无符号数乘法.doc


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
《微型计算机原理与接口技术》实验报告一、程序设计题目一三十二位无符号乘法1设计分析:(1)程序设计任务:用十六位乘法指令完成三十二位无符号数乘法(结果64位)。使用MUL指令,完成双字无符号数乘法程序,要求乘数和被乘数从键盘输入,结果显示于屏幕上。(2)程序设计要求:1)从键盘输入两个乘数(十六进制)2)结果显示于屏幕上(十六进制)(3)程序设计过程:1)定义数据段用于开辟缓冲区存储输入数据、输出数据和乘积。2)从键盘分别输入两个八位数字符(三十二字节)存入缓冲区(分4次输入,每次输入4个字符,前两次为被乘数的高位与低位,后两次为乘数的高位与低位)3)对缓冲区输入的字符进行处理,让Ascal码转换为数值本身的数值。4)把三十二位分割成两位十六位,分别对其进行十六位的乘法。5)将四个十六位乘法的乘积按照各自的位相加的最终乘积6)对所得结果进行处理,让Ascal码转换为数值本身的数值7)将结果向屏幕输出。算法(一个框代表16位2进制数)X2X11616y2y11616161616161616161616161616P+6p+4p+2p开始程序流程图:初始化输入被乘数的高位的4个字符X2输入被乘数的低位的4个字符X1输入乘数的高位的4个字符y2输入乘数的低位的4个字符y1开始运算乘法被乘数低位4个字符x1和乘数低位4个字符y1相乘结果低位存入p,高位存入p+2被乘数高位4个字符x2和乘数低位4个字符y1相乘结果低位存入p+2,高位存入p+4被乘数低位4个字符x1和乘数高位4个字符y2相乘结果低位存入p+2,高位存入p+4被乘数高位4个字符x2和乘数高位4个字符y2相乘结果低位存入p+4,高位存入p+6乘积相加输出结果16测试数据与运行结果:输入被乘数的高位的4个字符X2:输入被乘数的低位的4个字符X1:输入乘数的高位的4个字符y2:输入乘数的低位的4个字符y1:运行结果:程序源代码及注解:ddatasegmentx1dw16dup(?)x2dw16dup(?)y1dw16dup(?)y2dw16dup(?)pdw30dup(?)keybufdb10dup(?)ddataends;ode,ds:ddatastart:movax,ddatamovds,axmovdx,offsetkeybufmovbx,dxmov[bx],byteptr9movah,0ahint21hmovah,[bx+2]moval,[bx+3]shlal,4shrax,4movdh,almovah,[bx+4]moval,[bx+5]shlal,4shrax,4movdl,almovx2,dx;输入被乘数的高位的4个字符x2movdx,offsetkeybufmovbx,dxmov[bx],byteptr9movah,0ahint21hmovah,[bx+2]moval,[bx+3]shlal,4shrax,4movdh,almovah,[bx+4]moval,[bx+5]shlal,4shrax,4movdl,almovx1,dx;输入被乘数的低位的4个字符x1movdx,offsetkeybufmovbx,dxmov[bx],byteptr9movah,0ahint21hmovah,[bx+2]moval,[bx+3]shlal,4shrax,4movdh,almovah,[bx+4]moval,[bx+5]shlal,4shrax,4movdl,almovy2,dx;输入乘数的高位的4个字符y2movdx,offsetkeybufmovbx,dxmov[bx],byteptr9movah,0ahint21hmovah,[bx+2]moval,[bx+3]shlal,4shrax,4movdh,almovah,[bx+4]moval,[bx+5]shlal,4shrax,4movdl,almovy1,dx;输入乘数的低位的4个字符y1movax,x1movdx,y1muldxmov[p],axmov[p+2],dx;被乘数低位4字符x1和乘数低位4字符y1相乘结果低位存入p,高位存入p+2movax,x2movdx,y1muldxadd[p+2],axadc[p+4],dx;被乘数高位4字符x2和乘数低位4字符y1相乘结果低位存入p+2,高位存入p+4movax,x1movdx,y2muldxadd[p+2],axadc[p+4],dxadc[p+6],0;被乘数低位4个字符x1和乘数高位4个字符y2相乘结果低位存入p+2,高位存入p+4movax,x2movdx,y2muldxadd[p+4],axadc[p+6],dx;被乘数高位4个字符x2和乘数高位4个字符y2相乘结果低位存入p+4,高位存入p+6moval,byteptrp+7;输出calldispal

汇编语言实现用16位乘法指令完成32位无符号数乘法 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人88jmni97
  • 文件大小312 KB
  • 时间2019-03-23
最近更新