网站大量收购闲置独家精品文档,联系QQ:2885784924

汇编程序设计论文.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编程序设计论文

本科生课程论文 论文题目 显示9-9乘法表和ASCII字符表 课程名称 汇编语言程序设计 学生姓名 王旭浩 所在专业 计算机科学与技术专业 所在班级 计科1072 邮 箱 515918517@ 课室号及时间 指导教师 叶晓霞 职称 日期 2009年06月15日 一.课程设计名称: 显示9-9乘法表和ASCII字符表(从20H--FFH) 二.设计程序的主要功能: 按下相应键分别显示9-9乘法表和ASCII字符表。 三.设计程序的基本功能: 1 .显示菜单,提示输入数字对应显示。 2 .从键盘接收一个数字并屏蔽。 3 .输入数字为0则显示9-9乘法表,为1则显示ASCII字符表。 4 .输入数字不为0或1时,提示输入错误。 四.系统程序的流程框图: 1 .主程序流程框图: 2 .各子程序流程框图: 五.系统程序运行界面图: (1)经过汇编,装入文件,用G命令在DEBUG下运行该程序,可得到下图: (2)输入数字0: (3)输入数字1: (4)如果输入不为0或1,例如3: 六.源程序代码注释data segment menuinfo db Menu,0ah,0dh db 0 for print 9X9 multiplication table,0ah,0dh db 1 for print ASCII table,0ah,0dh,$ errorinfo db illegal input,try again,$ data ends code segment assume ds:data,cs:code start: mov ax,data ; 以下2句初始化数据段 mov ds,ax lea dx,menuinfo ; 以下3句调用功能9显示菜单字符串 mov ah,9 int 21h mov ah,8 ; 功能8从标准输入读一个字符,过滤控制字符并不回显 int 21h ; al = 读入的字符 cmp al,0 ; al = 0则执行输出99乘法表 je Print99MultTable cmp al,1 ; al = 1则执行输出ascii码表 je PrintASCIITable lea dx,errorinfo ; al 等于其他值则输入有误,调用9号功能输出错误提示 mov ah,9 int 21h exit: mov ax,4c00h ; 程序结束 int 21h Print99MultTable: mov bx,1 mov cx,1 s0: mov dl,bl ; 以下4句以10进制形式显示bl add dl,30h mov ah,2 int 21h mov dl,* ; 以下2句显示*号 int 21h mov dl,cl ; 以下3句以10进制形式显示l add dl,30h int 21h mov dl,= ; 以下2句显示=号 int 21h mov ax,bx ; 以下3句完成ax = bl * cl mov dl,bl mul cl call htod ; 调用htod函数以10进制显示ax里的结果 mov ah,2 ; 输出一个空格 mov dl,20h int 21h inc cx ; 以下3句检测cx是否大于bx,若为真则进入下一行 cmp cx,bx jle s0 mov dl,0dh ; 以下5句输出换行 mov ah,2 int 21h mov dl,0ah int 21h mov cx,1 ; 还原cx = 1 inc bx ; 更新bx cmp bx,10 ; bx 9则结束 jb s0 jmp exit PrintASCIITable: mov ah,02h ; 初始化ah为2号功能调用,为显示字符做准备 mov bl,20h ; bl = mov cx,14 ; 外层循环14次 loop1: push cx ; 保存外层循环计数 mov cx,16 ; 内层循环16次,16*14 = 224 = e0h = ffh - 20h + 1,所以循环e0h次 loop2: mov dl,bl ; 以下2句显示bl中的字符 int 21h inc bl ; 更新bl = bl + 1 mov dl,20h ; 显示一个空字符,效果是空格,等价于mov dl, int 21h loop loop2 ; 继续内层循环以16个位一行输出 mov dl,0dh ; 以下4句输出换行 int 21

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档