版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机与信息工程学院汇编语言课程设计论文设计题目 显示9-9乘法表和ASCII字符表 专 业 计算机科学与技术 班 级 学 号 姓 名 指导教师 起止日期 成 绩 黑龙江科技学院课程设计任务书一、设计题目: 显示9-9乘法表和ASCII字符表(20HFFH) 二、设计的主要内容: 通过汇编语言,设计一个按下数字相应能显示9-9乘法表和按下数字显示ASCII字符表(20HFFH)的程序 课程设计指导教师评阅意见书摘要 本次汇编语言课程设计题目开发一个具有分支、循环等结构的汇编语言程序。程序运行后实现先要清屏幕,然后屏幕上出现主菜单:0 输出9-9乘法表,1 输出ASCII。我们可以通过子程序的调
2、用来实现程序的两个字功能。子程序Print99MULTable实现9-9乘法表的显示:子程序PrintASCIITable实现ASCII字符表(20HFFH)的显示。关键词:汇编语言,语言程序设计,子程序1、背景分析及意义 汇 编 语 言 是 计 算 机 系 统 提 供 给 用 户 的 最 快 、最 有 效 的 语 言 , 也是 能 对硬 件 直 接 编 程 的 语 言。 因 此 在 需 要 实 现 的 目 标 程 序 中 有 需 要 直 接 选 用 硬 件 参 数 的 例 子 中 直 接 或 间 接 的 使 用 汇 编 语 言 进 行 程 序 设 计 时 从 事 计 算 机 研 究 与 应
3、用 ,特 别 是 软 件 研 究 的 基 础 。虽 然 她 不 能 像 VB ,VC那 样 容 易 使 用 ,但 它 汇 编 后 的 目 标 代 码 少 ,执 行 时 间 短 等 优 点 是 其 他 语 言 无 法 取 代 的 ,所 以 它 多 用 于 那 些 要 求 运 行 效 率 高 、 实 时 性 很 强 的 系 统 程 序 和 应 用 程 序 的 编 制 , 例 如 自 动 控 制 等 方 面 ,所 以 汇 编 语 言 是 十 分 重 要 的 。随 着 计 算 机 的 不 断 更 新 发 展 ,计 算 机 在 各 个 领 域 的 作 用 越 来 越 大 ,更 多的 软 件 开 发 人
4、员 和 相 关 技 术 人 员 在 程 序 设 计 的 过 程 中 应 用 汇 编 程 序 或 编 制 汇 编 语 言 。 而 汇 编 语 言 做 为 计 算 机 专 业 大 学 生 必 修 课 之 一 ,作 为 计 算 机 控 制 专 业 的 学 生 对 汇 编 的 理 解 和 学 习 就 显 的 尤 为 重 要 。 汇 编 语 言 是 计 算 机 能 够提 供 给 用 户 使 用 的 最 快 而 又 最 有 效 的 语 言 , 也 是 能 够 利 用 计 算 机 所 有 硬件 特 性 并 能 直 接 控 制 硬 件 的 唯 一 语 言 。 因 而 , 对 程 序 的 空 间 和 时 间 要
5、 求 很 高 的 场 合 , 汇 编 语 言 的 应 用 就 显 的 必 不 可 少 。这 次 课 程 设 计 是 在 学 习 汇 编 语 言 与 实 践 相 结 合 的 一 次 综 合 应 用 。 通 过具 体 的 问 题 分 析 、 设 计 、 调 试 、 运 行 程 序 。 在 实 际 问 题 中 锻 炼 提 高 自 己 , 增 加 了 对 这 门 课 程 内 容 的 理 解 , 锻 炼 了 动 手 操 作 能 力 。 就 这 个 程 序 具 体 而 言 : 让 我 知 道 了 编 辑 程 序 ,分 析 程 序 ,调 试 程 序 ,运 行 程 序 的 重 要 性 。2总体设计思想 主要是
6、循环程序的设计和子程序的调用,通过按下指定按键显示9-9乘法表和字符表,利用分支、循环、调用功能9显示菜单字符串、功能8从标准输入读一个字符,过滤控制字符并不回显、2号功能显示字符、PUSH、POP更加巩固了我对书上知识的掌握。3.系统完成的主要功能: (1)经过汇编,装入文件,运行该程序,可得到下图: (2)输入数字0:(3)输入数字1:(4)如果输入不为0或1,例如3:4.软 硬 件 要 求汇 编 语 言 对 硬 件 的 配 置 要 求 不 是 很 高 。 这 个 程 序 也 有 这 个 特 点 。 只 要是 在 D o s 系 统 下 window98, window 2000,wind
7、ows xp环 境 均 可 , 这 个 程 序 有 些 地 方 就 是 在 自 己 的 电 脑 中 完 成 的 。5.主程序流程框图:开始等于0显示提示信息结束输入一个数字,0或1显示9*9乘法表显示ASCII字符表(20HFFH)等于1显示输入错误信息各子程序流程框图:BX=1,CX=1以十进制显示BL以十进制显示CL显示*号显示=号AX=BL*CL输出一个空格CX+1CXCX>BX?换行CX=1BX+1BXBX>9?退出显示AX以十进制显示BL初始化AH为2号功能调用BL=20HCX14,外循环次数PUSH CXCX16,内循环次数显示BL显示空格换行BL+1BL源程序代码及注
8、释:data segmentmenuinfo 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 endscode segmentassume ds:data,cs:codestart:mov ax,data; 以下2句初始化数据段mov ds,
9、axlea dx,menuinfo; 以下3句调用功能9显示菜单字符串mov ah,9int 21hmov ah,8; 功能8从标准输入读一个字符,过滤控制字符并不回显int 21h; al = 读入的字符cmp al,'0' al = '0'则执行输出99乘法表je Print99MultTablecmp al,'1' al = '1'则执行输出ascii码表je PrintASCIITablelea dx,errorinfo; al 等于其他值则输入有误,调用9号功能输出错误提示mov ah,9int 21hexit:mov
10、ax,4c00h; 程序结束int 21hPrint99MultTable:mov bx,1mov cx,1s0:mov dl,bl; 以下4句以10进制形式显示bladd dl,30hmov ah,2int 21hmov dl,'*' 以下2句显示*号int 21hmov dl,cl; 以下3句以10进制形式显示cladd dl,30hint 21hmov dl,'=' 以下2句显示=号int 21hmov ax,bx; 以下3句完成ax = bl * clmov dl,blmul clcall htod; 调用htod函数以10进制显示ax里的结果mov a
11、h,2; 输出一个空格mov dl,20hint 21hinc cx; 以下3句检测cx是否大于bx,若为真则进入下一行cmp cx,bxjle s0mov dl,0dh; 以下5句输出换行mov ah,2int 21hmov dl,0ahint 21hmov cx,1; 还原cx = 1inc bx; 更新bxcmp bx,10; bx > 9则结束jb s0jmp exitPrintASCIITable:mov ah,02h; 初始化ah为2号功能调用,为显示字符做准备mov bl,20h; bl = ' 'mov cx,14; 外层循环14次loop1:push c
12、x; 保存外层循环计数 mov cx,16; 内层循环16次,16*14 = 224 = e0h = ffh - 20h + 1,所以循环e0h次 loop2:mov dl,bl; 以下2句显示bl中的字符int 21hinc bl; 更新bl = bl + 1mov dl,20h; 显示一个空字符,效果是空格,等价于mov dl, ' 'int 21hloop loop2; 继续内层循环以16个位一行输出mov dl,0dh; 以下4句输出换行int 21hmov dl,0ahint 21hpop cx; 修复外层循环计数loop loop1; 继续外层循环jmp exith
13、tod proc push ax ; 以下4句保存保存各个寄存器的值 push cx push dx push bx xor cx,cx ; 初始化cx = 0,cx记录数的位数 mov bx,10 ; 初始化bx = 10,bx作为除数s: xor dx,dx ; 初始化dx = 0,因为以下的除法是16位操作数,所以被除数是dx:ax div bx ; 而参数是ax,所以务必清dx为0 inc cx ; 位数+1 push dx ; 保存余数 cmp ax,0 ; 如果ax = 0则结束 jne s ; 否则继续循环ss1: pop dx ; 以下5句逆向取出被保存的余数,并显示 add
14、dl,30h mov ah,2 int 21h loop s1 pop bx ; 以下4句修复各个寄存器的值 pop dx pop cx pop ax ret ; 返回htod endpcode endsend start使用说明输入字数0 输出9-9乘法表,输入字数1 输出ASCII。设计总结 用汇编语言写的程序代码少,执行时间短,与我们之前所学习的c+程序有着很大的差异,虽然汇编是一门初级语言,但是与c+语言相比却有着时间复杂度小,算法清晰,测试简单等优点,特别是在dos宏汇编下。汇编语言是计算机系统提供给用户的最快、最有效的语言,也是能对硬件直接编程的语言。因此,对空间和时间要求很高的程
15、序,或需要直接控制硬件的程序,必须使用汇编语言进行程序设计。外破门在学习中需要了解Intel系列微型机的基本组成以及计算机中数和字符的表示方法、熟练掌握Intel8086指令系统及寻址方式 熟练掌握伪指令及汇编语言程序格式、掌握基本程序设计方法、I/O程序设计方法以及DOS和BIOS调用、掌握宏汇编的基本概念和方法、了解汇编语言程序与高级语言程序的连接方法、熟悉上机操作和程序调试技术、初步具备软件设计的能力。 从 选 题 到 程 序 成 形可 以 运 行 , 我 收 获 了 好 多 。 在 开 始 的 时 候 遇 到 了 许 多 的 困 难 ,程 序 出 错 难 以 演 示 后 来 经 过 老
16、 师 的 指 导 和 自 己 的 修 改 ,终 于 完 成 了 一 个 小 的 综 合 性 课程 程 序 。这 里 对 指 导 老 师 的 帮 助 表 示 感 谢 。通 过 这 次 实际 动 手 能 力 的 培 养 ,我 进 一 步 熟 悉 了 汇 编 语 言 的 结 构 和 使 用 方 法,对 汇 编语 言 有 了 更 近 一 步 的 了 解,对 软 件 的 编 写 也 有 了 一 定 的 认 识。在 这 次 学 习中加 强 了 我 的 上 机 操 作 能 力,加 强 了 我 对 汇 编 这 门 课 程 的 认 识 ,增 强 了 我 的学 习 积 极 性。使 我 有 了 在 以 后 的 其
17、他 程 序 中 可 以 更 熟 练 的 运 用 此 方 法 来 控 制 计 算 机 的 发 声 进 行 汇 编 课 程 设 计 的 想 法。在 日 后 的 学 习 中 我 要 加 强 汇 编 语 言 的 综 合 应 用 程 序 设 计 方 法,提 高 汇 编 语 言 实 际 应 用 能 力、增 加 计算 机 各 方 面 的 知 识 和 运 用 能 力 。学 好 每 一 门 专 业 课 , 能 够 熟 悉 的 应 用 计 算机 的 更 多 功 能 。在 这 次 课 程 设 计 中 我 们 就 一 起 在 设 计 自 己 程 序 ,自 己 动 解决 问 题。通过这次的课程设计,加强了我用汇编语言编程的能力,经过一周的调试,更深入了解汇编语言程序的设计过程、方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度文化遗址场地保护与利用合同协议书3篇
- 专业拓展训练合作合同书2024版版B版
- 2024离婚双方房产分割及过户操作补充合同版B版
- 2024综合授信额度合同及分期贷款细则版B版
- 2025年度厂房租赁及品牌授权合作协议3篇
- 2025年度工业厂房拆除及重建合同范本4篇
- 2025年度商业地产项目场地借用合同样本3篇
- 2025年度数字化工厂搬迁工程合同范本4篇
- 油品基础知识培训课件
- 2024版室内粉刷工作班组劳动协议样本版B版
- GB/T 20840.8-2007互感器第8部分:电子式电流互感器
- GB/T 14864-2013实心聚乙烯绝缘柔软射频电缆
- 品牌策划与推广-项目5-品牌推广课件
- 信息学奥赛-计算机基础知识(完整版)资料
- 发烟硫酸(CAS:8014-95-7)理化性质及危险特性表
- 数字信号处理(课件)
- 公路自然灾害防治对策课件
- 火灾报警应急处置程序流程图
- 耳鸣中医临床路径
- 安徽身份证号码前6位
- 分子生物学在动物遗传育种方面的应用
评论
0/150
提交评论