【VB开源代码栏目提醒】:以下是网学会员为您推荐的VB开源代码-jgq[计算机]显示9-9乘法表和ASCII字符表 - 技术总结,希望本篇文章对您学习有所帮助。
计算机与信息工程学院 《汇编语言》课程设计
论文 设计题目 显示9-9乘法表和ASCII字符表 专 业
计算机科学与技术 班 级 学 号 姓 名 指导教师 起止日期 成 绩 黑龙江科技学院 课程设计任务书 一、设计题目 显示9-9乘法表和ASCII字符表20H—FFH 二、设计的主要内容 通过汇编语言设计一个按下数字相应能显示9-9乘法表和按下数字显示ASCII字符表20H—FFH的程序 课程设计指导教师评阅意见书 摘要 本次汇编语言
课程设计题目开发一个具有分支、循环等结构的汇编语言程序。
程序运行后实现先要清屏幕然后屏幕上出现主菜单0 输出9-9乘法表1 输出ASCII。
我们可以通过子程序的调用来实现程序的两个字功能。
子程序Print99MULTable实现9-9乘法表的显示子程序PrintASCIITable实现ASCII字符表20H—FFH的显示。
关键词汇编语言语言程序设计子程序 1、背景分析及意义 汇 编 语 言 是 计 算 机 系 统 提 供 给 用 户 的 最 快 、最 有 效 的 语 言 也是 能 对硬 件 直 接 编 程 的 语 言。
因 此 在 需 要 实 现 的 目 标 程 序 中 有 需 要 直 接 选 用 硬 件 参 数 的 例 子 中 直 接 或 间 接 的 使 用 汇 编 语 言 进 行 程 序 设 计 时 从 事 计 算 机 研 究 与 应 用 特 别 是 软 件 研 究 的 基 础 。
虽 然 她 不 能 像
VB VC那 样 容 易 使 用 但 它 汇 编 后 的 目 标 代 码 少 执 行 时 间 短 等 优 点 是 其 他 语 言 无 法 取 代 的 所 以 它 多 用 于 那 些 要 求 运 行 效 率 高 、 实 时 性 很 强 的 系 统 程 序 和 应 用 程 序 的 编 制 例 如 自 动 控 制 等 方 面 所 以 汇 编 语 言 是 十 分 重 要 的 。
随 着 计 算 机 的 不 断 更 新 发 展 计 算 机 在 各 个 领 域 的 作 用 越 来 越 大 更 多的 软 件 开 发 人 员 和 相 关 技 术 人 员 在 程 序 设 计 的 过 程 中 应 用 汇 编 程 序 或 编 制 汇 编 语 言 。
而 汇 编 语 言 做 为 计 算 机 专 业 大 学 生 必 修 课 之 一 作 为 计 算 机 控 制 专 业 的 学 生 对 汇 编 的 理 解 和 学 习 就 显 的 尤 为 重 要 。
汇 编 语 言 是 计 算 机 能 够提 供 给 用 户 使 用 的 最 快 而 又 最 有 效 的 语 言 也 是 能 够 利 用 计 算 机 所 有 硬件 特 性 并 能 直 接 控 制 硬 件 的 唯 一 语 言 。
因 而 对 程 序 的 空 间 和 时 间 要 求 很 高 的 场 合 汇 编 语 言 的 应 用 就 显 的 必 不 可 少 。
这 次 课 程 设 计 是 在 学 习 汇 编 语 言 与 实 践 相 结 合 的 一 次 综 合 应 用 。
通 过具 体 的 问 题 分 析 、 设 计 、 调 试 、 运 行 程 序 。
在 实 际 问 题 中 锻 炼 提 高 自 己 增 加 了 对 这 门 课 程 内 容 的 理 解 锻 炼 了 动 手 操 作 能 力 。
就 这 个 程 序 具 体 而 言 让 我 知 道 了 编 辑 程 序 分 析 程 序 调 试 程 序 运 行 程 序 的 重 要 性 。
2总体设计思想 主要是循环程序的设计和子程序的调用通过按下指定按键显示9-9乘法表和字符表利用分支、循环、调用功能9显示菜单字符串、功能8从标准输入读一个字符过滤控制字符并不回显、2号功能显示字符、PUSH、POP????更加巩固了我对书上知识的掌握。
3.系统完成的主要功能 1经过汇编装入文件运行该程序可得到下图 2输入数字0 3输入数字1 4如果输入不为0或1例如3 4.软 硬 件 要 求 汇 编 语 言 对 硬 件 的 配 置 要 求 不 是 很 高 。
这 个 程 序 也 有 这 个 特 点 。
只 要是 在 D o s 系 统 下 window98 window 2000windows xp环 境 均 可 这 个 程 序 有 些 地 方 就 是 在 自 己 的 电 脑 中 完 成 的 。
5.主程序流程框图 各子程序流程框图 开始 等于0 显示提示信息 结束 输入一个数字0或1 显示99乘法表 显示ASCII字符表20H—FFH 等于1 显示输入错误信息 初始化AH为2号功能调用 BL20H CX←14外循环次数 PUSH CX CX←16内循环次数 显示BL 显示空格 换行 BL1→BL BX1CX1 以十进制显示BL 以十进制显示CL 显示号 显示号 AXBLCL 输出一个空格 CX1→CX CXBX 换行 CX1 BX1→BX BX9 退出 显示AX 以十进制显示BL 源程序
代码及注释 data segment menuinfo db Menu0ah0dh db 0 for print 9X9 multiplication table0ah0dh db 1 for print ASCII table0ah0dh errorinfo db illegal inputtry again data ends code segment assume ds:datacs:code start: mov axdata 以下2句初始化数据段 mov dsax lea dxmenuinfo 以下3句调用功能9显示菜单字符串 mov ah9 int 21h mov ah8 功能8从标准输入读一个字符过滤控制字符并不回显 int 21h al 读入的字符 cmp al0 al 0则执行输出99乘法表 je Print99MultTable cmp al1 al 1则执行输出ascii码表 je PrintASCIITable lea dxerrorinfo al 等于其他值则输入有误调用9号功能输出错误提示 mov ah9 int 21h exit: mov ax4c00h 程序结束 int 21h Print99MultTable: mov bx1 mov cx1 s0: mov dlbl 以下4句以10进制形式显示bl add dl30h mov ah2 int 21h mov dl 以下2句显示号 int 21h mov dlcl 以下3句以10进制形式显示cl add dl30h int 21h mov dl 以下2句显示号 int 21h mov axbx 以下3句完成ax bl cl mov dlbl mul cl call htod 调用htod函数以10进制显示ax里的结果 mov ah2 输出一个空格 mov dl20h int 21h inc cx 以下3句检测cx是否大于bx若为真则进入下一行 cmp cxbx jle s0 mov dl0dh 以下5句输出换行 mov ah2 int 21h mov dl0ah int 21h mov cx1 还原cx 1 inc bx 更新bx cmp bx10 bx 9则结束 jb s0 jmp exit PrintASCIITable: mov ah02h 初始化ah为2号功能调用为显示字符做准备 mov bl20h bl mov cx14 外层循环14次 loop1: push cx 保存外层循环计数 mov cx16 内层循环16次1614 224 e0h ffh - 20h 1所以循环e0h次 loop2: mov dlbl 以下2句显示bl中的字符 int 21h inc bl 更新bl bl 1 mov dl20h 显示一个空字符效果是空格等价于mov dl int 21h loop loop2 继续内层循环以16个位一行输出 mov dl0dh 以下4句输出换行 int 21h mov dl0ah int 21h pop cx 修复外层循环计数 loop loop1 继续外层循环 jmp exit htod proc push ax 以下4句保存保存各个寄存器的值 push cx push dx push bx xor cxcx 初始化cx 0cx记录数的位数 mov bx10 初始化bx 10bx作为除数 s: xor dxdx 初始化dx 0因为以下的除法是16位操作数所以被除数是dx:ax div bx 而参数是ax所以务必清dx为0 inc cx 位数1 push dx 保存余数 cmp ax0 如果ax 0则结束 jne s 否则继续循环s s1: pop dx 以下5句逆向取出被保存的余数并显示 add dl30h mov ah2 int 21h loop s1 pop bx 以下4句修复各个寄存器的值 pop dx pop cx pop ax ret 返回 htod endp code ends end start 使用说明 输入字数0 输出9-9乘法表输入字数1 输出ASCII。
设计总结 用汇编语言写的
程序代码少执行时间短与我们之前所
学习的c程序有着很大的差异虽然汇编是一门初级语言但是与c语言相比却有着时间复杂度小算法清晰测试简单等优点特别是在dos宏汇编下。
汇编语言是计算机
系统提供给用户的最快、最有效的语言也是能对硬件直接编程的语言。
因此对空间和时间要求很高的程序或需要直接控制硬件的程序必须使用汇编语言进行程序设计。
外破门在学习中需要了解Intel系列微型机的基本组成以及计算机中数和字符的表示方法、熟练掌握Intel8086指令系统及寻址方式 熟练掌握伪指令及汇编语言程序格式、掌握基本程序设计方法、I/O程序设计方法以及DOS和BIOS调用、掌握宏汇编的基本概念和方法、了解汇编语言程序与高级语言程序的连接方法、熟悉上机操作和程序调试技术、初步具备
软件设计的能力。
。
从 选 题 到 程 序 成 形可 以 运 行 我 收 获 了 好 多 。
在 开 始 的 时 候 遇 到 了 许 多 的 困 难 程 序 出 错 难 以 演 示 后 来 经 过 老 师 的 指 导 和 自 己 的 修 改 终 于 完 成 了 一 个 小 的 综 合 性 课程 程 序 。
这 里 对 指 导 老 师 的 帮 助 表 示 感 谢 。
通 过 这 次 实 际 动 手 能 力 的 培 养 我 进 一 步 熟 悉 了 汇 编 语 言 的 结 构 和 使 用 方 法对 汇 编 语 言 有 了 更 近 一 步 的 了 解对 软 件 的 编 写 也 有 了 一 定 的 认 识。
在 这 次 学 习中 加 强 了 我 的 上 机 操 作 能 力 加 强 了 我 对 汇 编 这 门 课 程 的 认 识 增 强 了 我 的 学 习 积 极 性 。
使 我 有 了 在 以 后 的 其 他 程 序 中 可 以 更 熟 练 的 运 用 此 方 法 来 控 制 计 算 机 的 发 声 进 行 汇 编 课 程 设 计 的 想 法 。
在 日 后 的 学 习 中 我 要 加 强 汇 编 语 言 的 综 合 应 用 程 序 设 计 方 法 提 高 汇 编 语 言 实 际 应 用 能 力、增 加 计算 机 各 方 面 的 知 识 和 运 用 能 力 。
学 好 每 一 门 专 业 课 能 够 熟 悉 的 应 用 计 算机 的 更 多 功 能 。
在 这 次 课 程 设 计 中 我 们 就 一 起 在 设 计 自 己 程 序 自 己 动 解 决 问 题。
通过这次的课程设计加强了我用汇编语言编程的能力经过一周的调试更深入了解汇编语言程序的设计过程、方法及实现。
这次设计涉及到书上很多知 识比如分支、循环、调用功能9显示菜单字符串、功能8从标准输入读一个字符过滤控制字符并不回显、2号功能显示字符、PUSH、POP????更加巩固了我对书上知识的掌握。
课程设计过程遇到问题 由于选择题目比较简单遇到
问题自然很少。
刚开始很粗心汇编通过link生成可执行程序调试的时候程序不允许访问经过检查发现忘记在最后写上“end start”。
参考文献 《IBM-PC汇编语言程序设计第2版》 沈美明 温冬婵 编著 清华大学出版社 《汇编语言程序设计实验指导》 蔡启先 王智文 黄晓璐 编著 清华大学出版社