欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    16位乘法指令完成32位无符号数乘法微机接口课程设计.doc

    • 资源ID:1081773       资源大小:127.50KB        全文页数:11页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    16位乘法指令完成32位无符号数乘法微机接口课程设计.doc

    1、微机原理与接口技术课程设计 17周 B330 微机原理与接口技术课程设计题目一:用位乘法指令完成位无符号数乘法、 要求:以十六进制格式输入乘数与被乘数,以十六进制格式显示结果,两个数相乘。十六进制输入,十六进制输出。、 设计思路:实现个位无符号数的相乘,被乘数在和寄存器中,乘数在和寄存器中,最后的位乘积在,中。、 程序代码如下:data segment p1 db Input the first number:$ p2 db 0dh,0ah,Input the second number:$ p3 db 0dh,0ah,The result is:$ p4 db 0dh,0ah,Error!,

    2、$ key1 db 11 dup(?) key2 db 11 dup(?) x db 4 dup(?) y db 4 dup(?) p dw 4 dup(?)data endssstack segment stack stack db 100h dup(?)sstack endscode segmentmain proc far assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,offset p1 mov ah,09h int 21h ; 显示 p1 mov dx,offset x mov si,dx mov dx,offset

    3、 key1 mov bx,dx mov bx,byte ptr 9 mov ah,0ah ;输入第一个数 int 21h mov dx,offset key1 call switch mov dx,offset p2 mov ah,09h int 21h ;显示p2 mov dx,offset y mov si,dx mov dx,offset key2 mov bx,dx mov bx,byte ptr 9 mov ah,0ah ;输入第二个数 int 21h call switch mov ah,x+2;个数乘法 mov al,x+3 ;x1 mov bh,y+2 mov bl,y+3 ;

    4、y1 mul bx ;x1*y1 mov p+2,dx mov p,ax mov ah,x mov al,x+1 ;x2 mul bx ;x2*y1 add p+2,ax adc p+4,dx mov ah,x+2 mov al,x+3 ;x1 mov bh,y mov bl,y+1 ;y2 mul bx ;x1*y2 add p+2,ax adc p+4,dx adc p+6,0 mov ah,x mov al,x+1 ;x2 mul bx ;x2*y2 add p+4,ax adc p+6,dx mov dx,offset p3;取出结果 mov ah,09 int 21h mov bx,

    5、offset p ;显示结果 mov ch,8loop2: mov al,bx+7 push ax and al,0f0h;保留al的高位,清零低位 mov cl,4 shr al,cl;将al右移位 add al,30h cmp al,3ah jb ds1 add al,7ds1: mov dl,al;将al中的ASCII送入dl mov ah,2;将dl的内容输出到屏幕上 int 21h pop ax and ax,0fh add al,30h cmp al,3ah jb ds2 add al,7ds2: mov dl,al;将al中的ASCII送入dl mov ah,2 int 21h

    6、dec bx dec ch jnz loop2 mov ah,4ch; 返回操作系统 int 21hmain endpswitch proc;子程序转换 mov bx,dx add bx,2 mov cx,0404hloop1: mov al,bx sub al,30h cmp al,0ah jb L1 sub al,07h cmp al,10h jb L1 sub al,20h cmp al,10h jb L1 mov dx,offset p4 mov ah,09h int 21h mov ah,4ch int 21hL1: shl al,cl push ax mov al,bx+1 sub

    7、 al,30h cmp al,0ah jb L2 sub al,07h cmp al,10h jb L2 sub al,20h cmp al,10h jb L2 mov dx,offset p4 mov ah,09h int 21h mov ah,4ch int 21hL2: mov dl,al pop ax add al,dl mov ds:si,al inc si add bx,2 dec ch jnz loop1 retswitch endpcode ends end start ;程序结束、运行结果正确结果显示。错误输入给出错误提示!题目二:递归调用子程序设计有个人坐在一起,问第五个人

    8、多少岁?他说比第四个人大岁。问第四个人,他说比第三个大岁,问第三个人,又说比第二个人大岁。问第二个人,说比第一个人大岁,最后问第一个人,他说是岁,请问第五个人多大?用递归调用的方法设计程序完成本题。、 要求:个人,输入人数和第一个人的年龄,输出结果,十进制输入,十进制输出。、 实验原理算法:age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2age(2)=age(1)+2age(1)=10通用公式:age(n)=age(n-1)+2 当n1时age(1)=10 当n=1时3、程序流程图、程序代码如下:data segmentp1 db Input the

    9、number of people(199):$p2 db 0dh,0ah,Input the age of first people:$p3 db 0dh,0ah,The age cha is:$p4 db 0dh,0ah,The age of last people:$p5 db 0dh,0ah,Input Error!$keybuf db 5 dup(?)data endssstack segment stack sstack st1 db 100 dup(?)sstack endscode segmentmain proc far assume cs:code,ds:data,ss:ss

    10、tackstart: mov ax,data mov ds,ax mov dx,offset p1 mov ah,09h int 21h ; 显示 p1 call hl cmp ch,0ffh je hl push ax mov dx,offset p2 mov ah,09h int 21h ; 显示 p2 call hl cmp ch,0ffh je hl push ax mov dx,offset p3 mov ah,09h int 21h ; 显示 p3 call hl cmp ch,0ffh je hl push ax pop cx;年龄差 pop bx;第一个人的年龄 pop ax;

    11、总人数 mov dx,0 call lv mov bx,dx mov dx,offset p4 ; 显示p4 mov ah,09h int 21h mov cl,08h ; 将结果转化成进制并且显示 xor ax,ax mov ax,bx mov dl,100 div dl push ax add al,30h ; 显示百位 mov dl,al mov ah,2 int 21h pop ax shr ax,cl mov dl,10 div dl push ax add al,30h ; 显示 十位 mov dl,al mov ah,2 int 21h pop ax shr ax,cl add

    12、al,30h ; 显示 个位 mov dl,al mov ah,2 int 21h mov ah,4ch ; 返回操作系统 int 21hmain endpswitch proc add bx,2 mov cl,4 mov al,bx sub al,30h cmp al,0ah jb L1 mov dx,offset p5 mov ah,09h int 21h mov ch,0ffh jmp L3 ; 给出错误提示L1: push ax inc bx mov al,bx sub al,30h cmp al,0ah jb L2 mov dx,offset p5 mov ah,09h int 21

    13、h mov ch,0ffh jmp L3 ; 给出错误提示L2: mov dl,al pop ax mov bl,0ah mul bl add al,dlL3: ret switch endphl proc near mov dx,offset keybuf mov bx,dx mov bx,byte ptr 3 mov ah,0ah ; 输入数字 int 21h call switch rethl endplv proc near ; 递归子程序 cmp al,1 ;与作比较 jnz chn ; 不等于,跳转到chn mov dl,bl ; 等于1,产生第一个人的年龄 ret ; 返回主程序

    14、chn: push ax; ax进栈 dec al ;人数减1 call lv ; 再次调用子程序lv pop ax ;ax出栈 add dl,cl ;递归计算结果 ret ;返回主程序lv endpcode ends end start ;程序结束、运行结果共个人,第一个人的年龄是10岁,差龄是岁,最后一个人的年龄是岁共个人,第一个人的年龄是10岁,差龄是岁,最后一个人的年龄是岁因为是10 进制输入,给出错误提示!课程设计总结通过这次的课程设计,让我懂嘚了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把握所学的理论知识与实际相结合起来,从理论中得出结论,才能真正提高自己的能力!在设计的过程中遇到问题,可以说还行,毕竟第一次做的,难免会遇到各种问题,同时在此过程中发现了自己的不足之处,对以前所学过的知识理解不够深,掌握不牢固。不过最终还是挺顺利的,在此谢谢老师的指导,还有同学们的帮助!本文来自网络,版权归原作者所有,请下载后,尽快删除。11计算机班30号。


    注意事项

    本文(16位乘法指令完成32位无符号数乘法微机接口课程设计.doc)为本站会员(星星)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922