




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机实验及课程设计 实验报告 0 东南大学东南大学 微机实验及课程设计微机实验及课程设计 实验报告实验报告 实验二实验二 汇编语言程序设计 姓姓 名 名 学学 号 号 专专 业 业 实实 验验 室 室 计算机硬件技术计算机硬件技术 实验时间 实验时间 2011 年年 04 月月 12 日日 报告时间 报告时间 2010 年年 04 月月 22 日日 评定成绩 评定成绩 审阅教师 审阅教师 微机实验及课程设计 实验报告 1 一一 实验目的与内容实验目的与内容 概述 概述 含简单文字叙述 实验目的 1 进一步熟悉汇编语言程序的编辑 宏汇编 链接 运行基本概念 2 熟练掌握动态调试程序TD DEBUG 的常用命令或窗口功能 学会用TD DEBUG 调试程序 修改数据和 寄存器等环境 3 熟悉掌握汇编语言程序的典型数据结构设计 典型程序流控制方法 了解DOS BIOS 功能调用的基 本方法 实验内容 1 编写程序实现如下功能 从键盘输入任意字符串后 存入自定义存储单元 判断处理后将字符串中小写字母转换为大写字母 其他字符不变 并按原顺序将这些字符在屏幕上显示出来 从键盘输入在0 65535 之间的十进制数 将其转换为16 进制数并在屏幕中显示出来 要求判断输 入字符串是否为在0 65535 之间的十进制数 2 复习TD 各种操作 并用DEBUG 调试程序 学会基本命令操作 并通过单步 设置断点等方法观 察中间结果 完成正常运行 命令行方式下直接键入debug myfile exe 回车 myfile 为待调试可执行程序 进入调试方式 显示 键入H 回车显示全部命令 格式和功能 常用命令有 U 反汇编 A 汇编输入指令程序 R 寄 存器显示 修改 I 端口输入 O 端口输出 D 显示数据 E 修改数据 除资源修改管理功能外 重点应用T 单步 Tn 执行n 步 P 过程 指令 G 从当前 CS IP 执行到断点 或 G 1 2 从 1 执行到 2 断点 调试实验程序 二二 基本实验原理基本实验原理 或基本原理 或基本原理 含简单文字叙述 关键电路原理图 程序框图 同实验一 1 小写字母的ASCII 码比其所对应的大写字母的ASCII 码值大20H 如字符 a 的ASCII 码为61H 而字符 A 的ASCII 码为41H 因此字符变换时将小写字母的ASCII 码减去20H 即为大写字母的ASCII 码 同样将数字转换为ASCII 码的方法为 将其值加上30H 2 键盘输入字符串 采用DOS 系统功能调用 INT 21H 功能号为AH 0AH DS DX 为存放键入字符 串的缓冲区首地址 其中第一个字节需要初始化 为用户定义的缓冲区长度 当完成字符串输入并存储 后 第二个字节为键入的字符串的个数 从第三个字节开始存放键入的字符串 并在最后有一个字节为 0DH 作为字符串的结束 3 显示字符 采用DOS 系统功能调用 INT 21H 功能号为AH 02H DL 中存放要显示字符的ASCII 码 显示字符串 采用DOS 系统功能调用 INT 21H 功能号为AH 09H DS DX 存放要显示字符串的首 地址 串尾字符为 但不显示出来 4 将10 进制数转换为16 进制数可采用按位取值再相加的方法 即 个位 1 十位 10 百位 100 可用数值位数来判断位值 5 输入的十进制数 要求介于0 65535 因此缓冲区长度可定为6 字节 第二字节要存放实际键入的 字符数 数据段定义时可采用如下方式 input db 6 7 dup 0 微机实验及课程设计 实验报告 2 6 判断输入的是否为介于0 65535 之间的十进制数可分为两步 按位比较 如果某个字符不是0 9 则不符合条件 将数值计算累加后若溢出 表示输入数值大于FFFFH 则也不符合要求 三三 方案实现与测试 或调试 方案实现与测试 或调试 含实验步骤 分步进行 调试 测试 关键 重要的程序片段 程序框架无需 实验步骤 1 编写程序实现如下功能 从键盘输入任意字符串后 存入自定义存储单元 判断处理后将字符串中小写字母转换为大写字母 其他字符不变 并按原顺序将这些字符在屏幕上显示出来 从键盘输入在0 65535 之间的十进制数 将其转换为16 进制数并在屏幕中显示出来 要求判断输 入字符串是否为在0 65535 之间的十进制数 2 复习TD 各种操作 并用DEBUG 调试程序 学会基本命令操作 并通过单步 设置断点等方法观 察中间结果 完成正常运行 重要程序片段 1 程序名 string asm 字符串的变换和输入输出 main proc far start mov ax data 初始化各段基址 mov ds ax mov ax stacks mov ss ax loop1 mov dx offset string1 显示提示信息 mov ah 09h int 21h mov dx offset input 输入字符串 mov ah 0ah int 21h mov dx offset string2 mov ah 09h int 21h call disp 调用处理显示子程序 mov dx offset string3 mov ah 09h int 21h mov ah 01h int 21h cmp al y 判断是否继续 jz loop1 mov ah 4ch int 21h main endp 微机实验及课程设计 实验报告 3 disp proc near 显示子程序 xor cx cx input 为输入缓冲区 input 0 最大允许输入字符数 mov cl input 1 将输入的字符个数赋给cl 循环次数 input 1 实际输入字符数 mov si 2 input 2 开始为实际输入字符ASCII 码 again mov dl input si cmp dl 61h 判断是否为小写字母 jb next cmp dl 7ah ja next sub dl 20h 将小写字母的ASCII 码转换为大写字母的ASCII 码 next mov ah 02h 显示字符 int 21h inc si si 指向下一个字符 loop again ret disp endp code ends end start 2 程序名 num asm 10 进制数转化为16 进制数 main proc far start mov ax data 初始化各段基址 mov ds ax mov ax stacks mov ss ax loop1 mov output 0000h 清零 mov dx offset string1 mov ah 09h int 21h mov dx offset input 输入数值 mov ah 0ah int 21h mov right 1 call change 调用转换子程序 cmp right 0 判断数值是否满足条件 jz error mov dx offset string2 mov ah 09h int 21h mov ax output 将转换后的16 进制数赋给ax mov dl ah 显示最高位 mov cl 4 微机实验及课程设计 实验报告 4 shr dl cl call disp mov dl ah 显示第二位 and dl 0fh call disp mov dl al 显示第3 位 mov cl 4 shr dl cl call disp mov dl al 显示最后一位 and dl 0fh call disp jmp go error mov dx offset string4 提示输入数值不满足条件 mov ah 09h int 21h go mov dx offset string3 mov ah 09h int 21h mov ah 1 int 21h cmp al y 判断是否继续 jz loop1 cmp al Y jz loop1 mov ah 4ch 返回 DOS 操作系统 int 21h main endp change proc near 数值转换子程序 clc 进位标志清零 xor ax ax 寄存器清零 xor bx bx xor dx dx mov cl input 1 将数值位数赋给cl mov si 2 初始化si again mov bl input si 依次将每位数字赋给bl cmp bl 30h 判断是否为0 9 不是right 置0 jb error1 cmp bl 39h ja error1 sub bl 30h dec cl cmp cl 0 微机实验及课程设计 实验报告 5 jz over mov ax 1 push cx loop2 mul ten 计算位数乘值 1 10 100 loop loop2 pop cx mul bx add output ax 将值累加 jc error inc si jmp again over add output bx jnc over1 error1 mov right 0 over1 ret change endp disp proc near 显示子程序 push dx push ax cmp dl 9 判断是0 9 还是A F jbe num add dl 7 num add dl 30h mov ah 02h int 21h pop ax pop dx ret disp endp code ends end start 实验现象 分步进行 调试 string exe 微机实验及课程设计 实验报告 6 运行结果 调试 num exe 微机实验及课程设计 实验报告 7 运行结果 四 提高与创新研究四 提高与创新研究 说明提高与创新部分实验情况 简述实验步骤 电路和关键 重要的程序片段 1 利用带符号调试开关 Zi 和链接开关 v 进行编译连接 并用TD EXE 进行调试 尝试直接对符号 变量进行修改 检查操作 2 程序 2 中 在输入数值时采用按位判断方法 即每位数字输入时判断 如果不符合则拒绝输入该 字符 并将符合的字符存入 3 如何合理地利用断点技术 五 分析与总结五 分析与总结 总结现象 分析原因和结果 评价实验 设计 效果 调试 测试方法 本次实验花费了较长时间 其中在修改调试程序上花费时间占绝大部分 虽然用的是参考程序 但 还是得检查程序编译的正确性 程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年遥控器行业当前市场规模及未来五到十年发展趋势报告
- 支气管哮喘课件
- 擦皮鞋劳动课件
- 操作基础知识培训总结课件
- 2025年消费者权益保护知识试题附答案
- 2025年健康管理师之健康管理师三级高分通关题型题库附解析答案
- 2025年道路旅客运输驾驶员职业技能资格知识考试题与答案
- 2024年高等教育自学考试电子商务概论试题(含答案)
- 2024年公路水运交通工程试验检测师专业技能知识试题与答案
- 2024下半年玉林市玉州区事业单位招聘考试《综合基础知识》试题(附答案)
- 高速天桥拆除方案(3篇)
- 农村土地托管培训课件
- 老年专科护士学习培训汇报
- 2025年机关事业单位工人招聘《机动车驾驶员》技师-考试题库与参考答案
- 2025年机械设备安装工试卷及答案
- 老旧小区改造知识课件
- 客户拜访标准作业流程
- 2018中考总复习一次函数专题
- 锐途管理人员自我发展报告
- 特殊教育学校学生管理名师优质课赛课一等奖市公开课获奖课件
- 盲管(沟)工程检验批质量验收记录
评论
0/150
提交评论