电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

09级微机原理课程设计

09级微机原理课程设计_第1页
1/7
09级微机原理课程设计_第2页
2/7
09级微机原理课程设计_第3页
3/7
2025 级计算机专业《微机原理与接口技术》课程设计一、设计任务 题目一 用 16 位乘法指令完成 32 位无符号数乘法(结果 64 位) 使用MUL指令,完成双字无符号数乘法程序。算法原理 16 位数 16 位数※ 16 位数 16 位数 DX AX DX AX DX AXDX AX —————————- P4 p3 p2 p1设计原理分析: 我的想法是先把 32 位乘数分成高 16 位和低 16 位,分别存放在不同的参数 d1、d2 中,被乘数依次分为 d3 和 d4,通过 16 位乘法 MUL 指令先让 d4 与 d2 相乘,得到的结果先赋值给p1、p2,然后 d1 与 d4 相乘时,得到的结果中 AX 值直接与 p2 相加,DX 值先赋值给 p3,当 d3与 d2 相乘时,得到的 AX 与 p2 相加,DX 值与 P3 相加,此时需考虑进位,所以使用 adc 指令进行相加,当 d3 与 d1 相乘时,DX 值先赋给 p4,将 AX 值与 p3 相加,此时不需要考虑进位,但是最好需要对 p4 进行进位考虑,所以最后加上一条 adc p4,0 指令,最后调用 dispal子程序将相乘结果 p4p3p2p1 输出框图:被乘数低 16 位与乘数低 6 位相乘开始被乘数低 16 位与乘数高 16 位相乘并与上次相乘结果相加被乘数高 6 位与乘数低 6 位相乘并与上次相乘结果相加调用输出子程序将乘法结果输出被乘数高 16 位与乘数高 16 位相乘并与上次相乘结果相加结束源程序:data segment d1 dw 1234h;乘数高 16 位 d2 dw 5678h;乘数低 16 位 d3 dw 1234h;被乘数高 16 位 d4 dw 5678h;被乘数低 16 位 p1 dw ? ;存放相乘结果 p2 dw ? p3 dw ? p4 dw ?data endssstack segment stack ’stack’;定义堆栈段 dw 200h dup(?)sstack endscode segment;代码段main proc far assume cs:code,ds:data,ss:sstackstart:push ds;为程序结束做准备 sub ax,ax push ax mov ax,data;指向数据段 mov ds,ax mov ax,sstack mov ax,d2;乘数低 16 位与被乘数低 16 位相乘 mul d4 mov p1,ax;相乘结果赋值给 p1,p2 mov p2,dx mov ax,d1;乘数高 16 位与被乘数低 16 位相乘 mul d4 add p2,ax;相乘结果依次赋值和相加给 p2、p3 mov p3,dx mov ax,d2;乘数低 16 位与被乘数高 16 位相乘 mul d3 add p2,ax;相乘结果与 p2 相加 adc p3,dx;相乘结果与 p3 带进位相加 mov ax,d1;乘数高 16...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

09级微机原理课程设计

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部