汇编教学的思考和实践.ppt
《汇编教学的思考和实践.ppt》由会员分享,可在线阅读,更多相关《汇编教学的思考和实践.ppt(33页珍藏版)》请在三一办公上搜索。
1、汇编语言程序设计教学的思考和实践,苏州大学计算机科学与技术学院杨季文2013.05,目录,教学指导思想教学内容安排教学环境使用,1、教学指导思想,教学目标上承高级语言,下启机器系统。学习汇编语言目的不再是熟练运用汇编语言,而是比较深入理解高级语言的实现,更好地理解计算机的工作原理,全面提高程序设计开发能力。知其然,知其所以然。,1、教学指导思想,教学内容汇编语言程序设计的一般方法基于Intel 80 x86系列CPU的32位编程处理器的功能及其运用基本功能存储管理中断支持输入输出,1、教学指导思想,教学方法依托高级语言,讲解低级语言。,1、教学指导思想|教学方法,int test11(void
2、)int sum,i;sum=0;for(i=1;i=10;i+=1)sum+=i*i;return sum;,XOR EAX,EAX MOV ECX,1LAB1:MOV EDX,ECX IMUL EDX,ECX ADD EAX,EDX INC ECX CMP ECX,10 JLE LAB1 RET,高级语言和低级语言的对照(变量和寄存器),1、教学指导思想|教学方法,int x=1;int y=2;void test12(void)y=x*x+3;return;,MOV EAX,?x3HA MOV ECX,EAX IMUL ECX,EAX ADD ECX,3 MOV?y3HA,ECX RET
3、,高级语言和低级语言的对照(变量和存储单元),1、教学指导思想,教学方法依托高级语言,讲解低级语言。教学内容:语言语法;程序结构;指示命令;教学素材。教学环境:教学演示;程序调试。,2、教学内容安排,主要教学内容重点难点处理教学理念贯彻,2、教学内容安排,主要教学内容 第1章 引言第2章 80 x86处理器基本功能第3章 程序设计初步第4章 字符串操作和位操作第5章 VC目标代码阅读理解第6章 汇编语言第7章 高级汇编语言技术第8章 输入输出和中断第9章 程序的优化(*)第10章 80 x86保护方式程序设计(*),2、教学内容安排,重点难点处理第1章 引言第2章 80 x86处理器基本功能第
4、3章 程序设计初步第4章 字符串操作和位操作第5章 VC目标代码阅读理解第6章 汇编语言第7章 高级汇编语言技术第8章 输入输出和中断第9章 程序的优化(*)第10章 80 x86保护方式程序设计(*),2、教学内容安排,重点难点处理第1章 引言第2章 80 x86处理器基本功能(存储器分段、存储器寻址方式)第3章 程序设计初步(子程序设计)第4章 字符串操作和位操作第5章 VC目标代码阅读理解(堆栈、参数传递、优化)第6章 汇编语言(段定义)第7章 高级汇编语言技术第8章 输入输出和中断第9章 程序的优化(*)第10章 80 x86保护方式程序设计(*),2、教学内容安排,重点难点处理由浅入
5、深加强演示加强实践结合应用:生动、兴趣固定陈设:简化依托高级语言:比较、借鉴,2、教学内容安排,通过高级语言源程序的目标代码来说明LEA指令的妙用。设有如下所示的C+语言编写的函数:_fastcall test22(int x,int y)/由寄存器传参数 return(2*x+5*y+100);利用VC6编译器,在优化条件为“最快速度”的情况下,编译上述程序后,得到如下所示的目标代码,采用汇编格式指令的形式表示:LEA EAX,DWORD PTR EDX+EDX*4+100;DWORD PTR表示存储单元是双字 LEA EAX,DWORD PTR EAX+ECX*2 RET;表示返回到调用者
6、,这里代表test22结束返回,取有效地址指令的应用,2、教学内容安排,设有如下所示的C+语言编写的函数:_fastcall test24(int x)if(x=A,MOV EAX,ECX;参数保存到EAX CMP EAX,65;与A比较 JL SHORT LAB528;小于,则转移 CMP EAX,90;与Z比较 JG SHORT LAB528;大于,则转移 ADD EAX,32;加上大小写字母ASCII码之间的差LAB528:RET,数值大小比较,2、教学内容安排,讲解循环,例:设有如下所示的C+语言编写的函数,这个函数的功能是计算1到n的和。为了较好地说明有关指令的应用,所以采用了一个循
7、环,并安排了两个局部变量。_fastcall test25(int n)int sum,i;sum=0;for(i=1;i=n;i+)sum+=i;return sum;,2、教学内容安排,例:采用早先的Borland C+编译器,在优化条件为“最快速度”的情况下,得到如下所示16位的目标代码。其中,符号“SHORT”表示转移目标就在附近,相对转移时机器码中只要用一个字节表示差值。MOV CX,AX;把存放在AX中的参数n存到CX中 XOR BX,BX;使代表变量sum的BX为0(sum=0;)MOV AX,1;使代表变量i的AX为1(i=1;)JMP SHORT LAB114;无条件转移到标
8、号LAB114处LAB58:ADD BX,AX;累加(sum+=i;)INC AX;(i+)LAB114:CMP AX,CX;比较i和n JLE SHORT LAB58;当i=n,则转移到LAB58处,继续循环 MOV AX,BX;把返回值保存到AX中 RET;返回到调用者,这里代表函数test25结束返回,讲解循环,2、教学内容安排,教学理念贯彻重点讲解为了更好地理解、使用高级语言,所需要的内容注意讲清为了更好地理解计算机工作原理、CPU基本功能,所对应的内容不求全面,但求明白,3、教学环境使用,演示和实践的环境输入和输出的方法例题或素材的获取,3、教学环境使用,演示和实践的环境VC集成开发
9、环境查看目标代码和寄存器嵌入汇编方式进行编程和调试DOS环境汇编器和连接器的使用保护方式功能学习仿真环境保护方式功能学习,3、教学环境使用,输入和输出的方法前期,充分利用VC的输入、输出函数;后期,DOS系统功能调用、BIOS调用、直接写屏等方式,3、教学环境使用,int esp1,esp2,esp3,esp4,esp5;_asm MOV EAX,12345678HMOV esp1,ESPPUSH EAXMOV esp2,ESPPUSH AXMOV esp3,ESPPOP BXMOV esp4,ESPPOP ECXMOV esp5,ESPprintf(original ESP=%xnn,esp
10、1);printf(after PUSH EAX ESP=%xnn,esp2);printf(after PUSH AX ESP=%xnn,esp3);printf(after POP BX ESP=%xnn,esp4);printf(after pop ECX ESP=%xnn,esp5);,验证堆栈操作的指针变化,3、教学环境使用,char strmess=HELLO WORLD;int pos1,pos2;int main(int argc,char*argv)_asm CLDLEA ESI,strmessMOV pos1,ESILODSBLODSWLODSD MOV pos2,ESIp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 教学 思考 实践

链接地址:https://www.31ppt.com/p-6365856.html