收藏 分享(赏)

80X86汇编语言程序设计80X86 Assembly Language .ppt

上传人:Facebook 文档编号:9618177 上传时间:2019-08-18 格式:PPT 页数:40 大小:1.73MB
下载 相关 举报
80X86汇编语言程序设计80X86 Assembly Language .ppt_第1页
第1页 / 共40页
80X86汇编语言程序设计80X86 Assembly Language .ppt_第2页
第2页 / 共40页
80X86汇编语言程序设计80X86 Assembly Language .ppt_第3页
第3页 / 共40页
80X86汇编语言程序设计80X86 Assembly Language .ppt_第4页
第4页 / 共40页
80X86汇编语言程序设计80X86 Assembly Language .ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、80X86汇编语言程序设计 80X86 Assembly Language Programming教 学 探 讨曹 忠 升 华中科技大学 计算机科学与技术学院,国家精品课程,教学理念、方法、手段的探讨 尝试过的体会的分享 相互借鉴,共同提高,本次探讨的指导思想,掌握一种编程语言(也是基础目标) 理解计算机工作原理 理解编译原理 跟踪与反跟踪(相关工具) 系统软件基础功能的设计 软硬件相关的创新思维,教学的核心目标是什么 ?,教学的切入点是什么?,从计算机工作原理入手 从汇编语言本身入手 从高级语言(C语言)入手 从8086入手 从WIN32 入手 从应用程序入手 从底层驱动入手,学生学习模式(

2、思维方式)有哪些?,循序渐进型 跳跃兴趣型 被动听讲型 主动自学型 案例驱动型 原理驱动型实践型理论型应试型,学生分班与教学方式,需要改变以往根据成绩分布分班的方式。 学校应该根据学生的类型开设相应的课堂。,已经尝试过的措施和教学手段,管理措施:约束 手写黑板:课堂教学 WORD,PPT课件:课堂教学 FLASH: 自学(最好不在课堂重复使用) 游戏:自学记忆 题库:自学应试 作业、上机:实践训练并发现问题 论坛、QQ群:针对性及时答疑,课程要求、方针,课程要求汇编语言是实践性很强的一门课程,为了学好这门课,学生必须亲自勤动手做笔记、做练习、上机,也要用心、用脑。方针1、以老师引导为基础;2、

3、强化老师对学生的督促和检查;3、有针对性地答疑。,督促和检查的措施,1、每次上课都可能点名提问,主要就当次课讲过的内容提问。检查是否认真听讲了(回答时可以看书和笔记)。 2、每次作业(实验)批改之后,课堂上随机抽取几名学生的作业本,就作业中的问题提问,由该作业本的所有者回答。 3、上机必须签到,并预先完成预习报告。提前下机需经老师抽查关键实验记录的获取过程。(强调过程),严格要求,有情操作,学生提交了合理的书面请假理由的,可以不来上课和上机,但作业必须交。缺交(含等价未交)或旷课的特别影响:缺交作业次数达到总次数的1/3以上者,或旷课学时数达到总学时数的1/3以上者,总评不及格。,已经尝试过的

4、措施和教学手段,管理措施:约束 手写黑板:课堂教学 WORD,PPT课件:课堂教学 FLASH: 自学(最好不在课堂重复使用) 游戏:自学记忆 题库:自学应试 作业、上机:实践训练并发现问题 论坛、QQ群:针对性及时答疑,已经尝试过的措施和教学手段,管理措施:约束 手写黑板:课堂教学 WORD,PPT课件:课堂教学 FLASH: 自学(最好不在课堂重复使用) 游戏:自学记忆 题库:自学应试 作业、上机:实践训练并发现问题 论坛、QQ群:针对性及时答疑,已经尝试过的措施和教学手段,管理措施:约束 手写黑板:课堂教学 WORD,PPT课件:课堂教学 FLASH: 自学(最好不在课堂重复使用) 游戏

5、:自学记忆 题库:自学应试 作业、上机:实践训练并发现问题 论坛、QQ群:针对性及时答疑,已经尝试过的措施和教学手段,管理措施:约束 手写黑板:课堂教学 WORD,PPT课件:课堂教学 FLASH: 自学(最好不在课堂重复使用) 游戏:自学记忆 题库:自学应试 作业、上机:实践训练并发现问题 论坛、QQ群:针对性及时答疑,汇编语言上机实验报告(样例)时间:2010-4-15,14:00-17:30 地点:南一楼803室15号实验台 实验人员: 曹忠升 实验一 一、题目从键盘上键入0至9中任一自然数x,求其立方值。二、实验要求设计实现一个通过查表进行数学计算的程序。掌握基本的程序设计框架和方法、

6、熟悉常用指令的用法、熟悉DOS功能调用、进一步掌握TD的使用方法。,三、解题方法、寄存器分配和变量定义说明求一个数的立方值可以用乘法运算实现,也可以造一立方表,运行时查表实现。依据本次实验的要求,此处用查表法。输入数据为0至9中任一自然数,用一字节单元存放其值;输出数据是该数的立方,用一字单元存放其值。1.存储单元分配X:字节变量X中存放键入的自然数x。XXX:字变量XXX中存放x的立方值。TAB:立方表的首地址。表中共10项,每项占一个字,依次存放0-9的立方值。从表的结构可知,x的立方值在表中的存放地址与x有如下的对应关系:(TAB + 2 * x) = x的立方值对于每个键入的x,从字单

7、元TAB + 2 * x之中取出的数据便是其立方值。 从键盘接受数字使用1号系统功能调用,此时送入AL之中的是x的ASCII码而不是x的真值。所以,要首先将x的ASCII码换成x的真值,然后用TAB + 2 * x计算x的立方值的存放地址,按此地址查到x的立方值。INPUT:字节存储区,用于存放提示信息。2.寄存器分配EBX:存放x的真值,利用带比例因子的变址寻址方式访问立方表。AX、DX:临时寄存器。,四、流程图。 五、源程序。MOV DX, OFFSET INPUT MOV AH, 9 INT 21H ;显示PLEASE INPUT X(0-9): /录错:“;”写成了中文MOV AH,

8、1INT 21H ;从键盘接受一数字x的ASCII码AND AL, 0FH /录入错误: 数字“0”敲成了字母“O”MOV X, AL ;x的真值 AL XMOV EBX,AL ;x的真值 EBX /设计错误,应改成:XOR EBX, EBX MOV BL, AL或者MOVZX EBX,ALMOV AX, TABEBX*2 ; (TAB + 2 * EBX) AX 。,六、实验步骤1. 使用编辑程序EDIT.EXE录入源程序,存盘文件名为CUBE.ASM。 2. 使用MASM5.0或6.0汇编源文件。即MASM CUBE; 3. 观察提示信息,若出错,则用编辑程序修改错误,存盘后重新汇编,直至

9、不再报错为止。 4. 使用连接程序LINK.EXE将汇编生成的CUBE.OBJ文件连接成执行文件。即LINK CUBE; 5. 若连接时报错,则依照错误信息修改源程序。之后重新汇编和连接,直至不再报错并生成CUBE.EXE文件。 6. 执行该程序。即在命令行提示符后输入CUBE后回车,观察执行现象。 (以上6个步骤是所有编程实验需要经历的,在后续实验报告中可以适当简化),7. 使用TD.EXE观察CUBE的执行情况。即 TD CUBE.EXE回车 (1)观察CS、IP、SP、DS、ES、SS的值。 (2)单步执行开始2条指令,观察DATA的实际值,以及DS的改变情况。 (3)观察SS:0至SS

10、:SP区域的数据值。 (4)观察DS:0开始数据区,找到各变量在数据段中的位置和值。 (5)观察第三条语句中源操作数的值,是否和INPUT变量的偏移地址相同。 (6)执行第3至7条指令,输入数字3。观察AL的值是否为33H。 (7)执行到MOV AX, TABEBX*2,观察源操作数的具体值。 (8)执行MOV XXX, AX,观察目的操作数的形式。到数据段中观察XXX的值是否是3的立方值。 8. 将程序重新装入TD中(或将CS:IP重置到MOV AH,9的位置),在执行9号功能调用之前,用TD将数据段中INPUT缓冲区的$(24H)改成其他数值(如00H),再执行9号功能调用,观察现象。 9

11、. 当调用1号功能时,若输入大写字母A,则送到XXX的值是哪个存储单元的值;若输入的是K,则送到XXX的值又是哪个存储单元的值。(没有检查输入是否合法) (以上3个步骤是针对实验要求和每个人自己在学习中不太理解的内容设计的),七、实验记录(包括实验条件、输入/输出、错误和修改等信息的记录) 1、实验环境条件:P3 1GHz,256M内存;WINDOWS 2000命令行窗口;EDIT.EXE 2.0;MASM.EXE 6.0; LINK.EXE 5.2; TD.EXE 5.0。 2、汇编源程序时,汇编程序报了3个错误。它们是: CUBE.asm(17): error A2044: invalid

12、 character in file CUBE.asm(22): error A2022: instruction operands must be the same size CUBE.asm(20): error A2006: undefined symbol : OFH 按照提示,对对应行仔细检查,发现了错误原因。见源程序中“/”后的说明。 3、连接过程没有发生异常。 4、执行之后在新的一行上显示了字符串PLEASE INPUT X(0-9): 5、输入3之后在冒号后显示了一个3。 6、程序退出到命令行提示符。,7、用TD调入CUBE.EXE后 (1)(CS)=0B0AH、(IP)=00

13、00H、(SP)=00C8H、(DS)=0AEAH、(ES)=0AEAH、(SS)=0AFAH。 (2)单步执行开始2条指令,DATA的值=0B07H,(DS)0B07H。 (3)SS:0至SS:SP区域的数据值在程序没有执行时均为0。单步执行一次后靠近栈顶的几个字发生了变化,不知为何? (4)DS:0开始数据区存放了INPUT变量为首址定义的字符串。EA=15H开始存放TAB立方值表。EA=29H存放X(当前值为0);EA=30H存放XXX(当前值为0)。 (5)TD中显示的第三条语句为MOV DX,0000,源操作数的值和INPUT变量的偏移地址相同(均为0)。 (6)输入数字3。AL的值

14、从24H变成了33H。 (7)MOV AX, TABEBX*2在TD显示的形式为MOV AX,2*EBX+00000015说明TAB代表的EA=00000015H,且是按照双字处理的。 (8)MOV XXX, AX在TD显示的形式为MOV 002A,AX。执行后DS:(002A)=001BH(即27)是3的立方值。 八、体会实验报告评分标准,已经尝试过的措施和教学手段,管理措施:约束 手写黑板:课堂教学 WORD,PPT课件:课堂教学 FLASH: 自学(最好不在课堂重复使用) 游戏:自学记忆 题库:自学应试 作业、上机:实践训练并发现问题 论坛、QQ群:针对性及时答疑,网址:http:/20

15、2.114.1.86/huibian1/site/index.jsp,教学计划和安排,主要影响因素: 学生类别(大专、夜大、网校、二学位、非计算机专业本科、计算机专业本科等) 教材 课时数 实验条件,教材,王元珍、曹忠升、韩宗芬。80X86汇编语言程序设计。武汉:华中科技大学出版社,2005许向阳。80X86汇编语言程序设计上机指南。 武汉:华中科技大学出版社,2007,80X86汇编语言程序设计教材内容,第一章 预备知识 机器语言与汇编语言 Intel系列机简介 主存储器和物理地址的形成 数据在机内的表示形式 标志寄存器 第二章 寻址方式 寄存器寻址 寄存器间接寻址 变址寻址 基址加变址寻址

16、 立即寻址 直接寻址,第三章 宏汇编语言 宏汇编语言中的表达式 常用的机器指令语句 伪指令语句 常用的DOS系统功能调用 MASM的功能 第四章 程序设计的基本方法 顺序程序设计 分支程序设计 循环程序设计 子程序设计,教材内容,在Windows环境下运行汇编源程序的方式 调试程序Turbo Debugger的使用 附 录 附录 ASCII码字符表 附录 80X86指令系统简表 附录 伪指令表 附录 DOS的软件中断与系统功能调用 附录 常用BIOS了程序的功能及其调用参数 附录 汇编连接程序错误信息,第五章 程序设计的其他方法和技术 字符串操作 宏功能程序设计 模块化程序设计 源程序综合举例 第六章 输入/输出和WIN32编程 输入/输出指令和数据的传送方式 中断与异常 浮点运算 WIN32编程 第七章 上机操作 在DOS环境下运行汇编源程序的方式 多模块程序的运行及子程序库的使用,教学安排方案1 (48+4*5),教学安排方案1 (48+4*5),教学安排方案1 (48+4*5),教学安排方案2(40+4*4),教学安排方案2(40+4*4),一种教学组织方法,过语言关 过编译关 过原理关 过工具与跟踪/反跟踪关 问题讨论与创新思维,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报