资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
主讲人 邱德慧Assembly Language Programming汇编语言程序设计汇编语言程序设计绪论课程介绍专业基础课、必修课专业基础课、必修课计算机组成原理的一个部分计算机组成原理的一个部分软件开发的一个组成部分软件开发的一个组成部分一种低级语言的程序设计一种低级语言的程序设计高级语言程序设计的扩展高级语言程序设计的扩展绪论相关课程先修课先修课n高级语言程序设计高级语言程序设计n计算机基础计算机基础后续课后续课n计算机组成原理计算机组成原理n微机原理及接口技术微机原理及接口技术n单片机原理与应用单片机原理与应用绪论什么是汇编语言(1)为什么会产生汇编语言?为什么会产生汇编语言?n早期的程序设计均使用机器语言。程序员早期的程序设计均使用机器语言。程序员们将用们将用0、1数字编成的程序代码打在纸带数字编成的程序代码打在纸带或卡片上,再将程序通过纸带机或卡片机或卡片上,再将程序通过纸带机或卡片机输入计算机。输入计算机。n但但机机器器语语言言如如此此难难于于辨辨别别和和记记忆忆,于于是是汇汇编语言产生了。编语言产生了。绪论计算机语言发展简史 机器语言汇编语言高级语言FORTRANBASICCOBOLPASCALC/C+JAVA.绪论什么是汇编语言(2)汇汇编编语语言言是是一一种种面面向向机机器器的的低低级级程程序序设计语言设计语言汇汇编编语语言言以以助助记记符符形形式式表表示示每每一一条条计计算机指令算机指令n助助记记符符(mnemonic)是是便便于于人人们们记记忆忆、并并能能描描述述指指令令功功能能和和指指令令操操作数的符号作数的符号n助助记记符符一一般般就就是是表表明明指指令令功功能能的的英英语单词或其缩写语单词或其缩写绪论什么是汇编语言(3)汇编语言的主要特点:汇编语言的主要特点:n汇编语言程序与处理器指令系统密切相关汇编语言程序与处理器指令系统密切相关n程序员可直接、有效地控制系统硬件程序员可直接、有效地控制系统硬件n形形成成的的可可执执行行文文件件运运行行速速度度快快、占占用用主主存存容量少容量少绪论汇编语言和高级语言(1)汇编语言与处理器密切相关汇编语言与处理器密切相关 汇汇编编语语言言程程序序的的通通用用性性、可可移移植植性性较差较差高级语言与具体计算机无关高级语言与具体计算机无关 高高级级语语言言程程序序可可以以在在多多种种计计算算机机上上编译后执行编译后执行汇编语言:汇编语言:汇编语言:汇编语言: 高级语言:高级语言:高级语言:高级语言: 绪论汇编语言和高级语言(2)汇编语言功能有限、涉及硬件细节汇编语言功能有限、涉及硬件细节 编编写写程程序序比比较较繁繁琐琐,调调试试起起来来也也比比较较困困难难高高级级语语言言提提供供了了强强大大的的功功能能,不不必必关关心琐碎问题心琐碎问题 类似自然语言的语法,易于掌握和应用类似自然语言的语法,易于掌握和应用汇编语言:汇编语言:汇编语言:汇编语言: 高级语言:高级语言:高级语言:高级语言: 绪论汇编语言和高级语言(3)汇编语言本质上就是机器语言汇编语言本质上就是机器语言 可以直接、有效地控制计算机硬件可以直接、有效地控制计算机硬件 易易于于产产生生速速度度快快、容容量量小小的的高高效效率率目目标标程序程序高级语言不针对具体计算机系统高级语言不针对具体计算机系统 不易直接控制计算机的各种操作不易直接控制计算机的各种操作 目标程序比较庞大、运行速度较慢目标程序比较庞大、运行速度较慢汇编语言:汇编语言:汇编语言:汇编语言: 高级语言:高级语言:高级语言:高级语言: 绪论汇编语言和高级语言(4)汇编语言的优点:汇编语言的优点:n直接控制计算机硬件部件直接控制计算机硬件部件n可可以以编编写写在在“时时间间”和和“空空间间”两两方方面面最最有效的程序有效的程序汇编语言的缺点:汇编语言的缺点:n与处理器密切有关与处理器密切有关n需要熟悉计算机硬件系统、考虑许多细节需要熟悉计算机硬件系统、考虑许多细节n编写繁琐,调试、维护、交流和移植困难编写繁琐,调试、维护、交流和移植困难绪论汇编语言和高级语言(5)汇汇编编语语言言的的优优点点使使得得它它在在程程序序设设计计中中占有重要的位置,是不可被取代的占有重要的位置,是不可被取代的汇汇编编语语言言的的缺缺点点使使得得人人们们主主要要采采用用高高级语言进行程序开发工作级语言进行程序开发工作有有时时需需要要采采用用高高级级语语言言和和汇汇编编语语言言混混合合编编程程的的方方法法,互互相相取取长长补补短短,更更好好地解决实际问题地解决实际问题混合编程混合编程混合编程取长补短取长补短取长补短绪论汇编语言的应用场合程程序序要要具具有有较较快快的的执执行行时时间间,或或者者只只能能占占用用较较小小的的存存储储容容量量 例例如如:操操作作系系统统的的核核心心程程序序段段,实实时时控控制制系系统统的的软软件件,智智能能仪仪器器仪仪表表的的控制程序;控制程序;程程序序与与计计算算机机硬硬件件密密切切相相关关,程程序序要要直直接接、有有效效地地控控制制硬硬件件 例如例如:I/O接口电路的初始化程序段,外部设备的低层驱动程序;接口电路的初始化程序段,外部设备的低层驱动程序;大型软件需要提高性能、优化处理的部分大型软件需要提高性能、优化处理的部分例如例如:计算机系统频繁调用的子程序、动态链接库;计算机系统频繁调用的子程序、动态链接库;没有合适的高级语言、或只能采用汇编语言的时候没有合适的高级语言、或只能采用汇编语言的时候例如例如:开发最新的处理器程序时,暂时没有支持新指令的编译程序;开发最新的处理器程序时,暂时没有支持新指令的编译程序;分分析析具具体体系系统统尤尤其其是是该该系系统统的的低低层层软软件件、加加密密解解密密软软件件、分析和防治计算机病毒等分析和防治计算机病毒等绪论 下面是两个小例子,例下面是两个小例子,例1是用高级语言是用高级语言VC+编写的,例编写的,例2是用汇编语言编写的。是用汇编语言编写的。它们完成相同的功能,即把它们完成相同的功能,即把a、b的内容相的内容相加赋给加赋给c,并在屏幕上显示出来并在屏幕上显示出来。 绪论 #include stdafx.h #include stdio.h int main(int argc, char* argv) int a,b,c; a=1; b=2; c=a+b; printf(“c=%dn,c); return 0; 例例1编译后的目标文件编译后的目标文件达到达到3.59KB绪论data segmenta db ?b db ?c db ?string db c=$data endscode segmentmain proc far assume cs:code, ds:data, es:datastart: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax mov a,1 mov b,2 mov al,a add al,b mov c,al lea dx,string mov ah,09 int 21h add c,30h mov dl,c mov ah,2 int 21h mov dl,0ah int 21h mov dl,0dh int 21h retmain endpcode ends end start例例2汇编后的目标汇编后的目标文件只有文件只有208字节字节绪论参考书参考书 : 1.32位汇编语言程序设计位汇编语言程序设计2. 穆玲玲,钱晓捷主编穆玲玲,钱晓捷主编 电子工业出版社电子工业出版社2.Windows环境下环境下32位汇编语言程序设计位汇编语言程序设计1. 罗云彬罗云彬 主编主编 电子工业出版社电子工业出版社 绪论学习方法很重要课堂:听讲与理解、适当笔记课后:认真读书、完成作业实验:充分上机、多编程练习绪论考核要求考试成绩(课堂教学内容)考试成绩(课堂教学内容)70上机成绩(出勤及编程情况)上机成绩(出勤及编程情况)20平时成绩(作业等学习情况)平时成绩(作业等学习情况)10绪论请提宝贵意见和建议请提宝贵意见和建议!Feel free to express yourself ! 答疑时间:http:/qiudehui.ie.cnu.edu.cnPassword : 5555Email: qiudehui126.com
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号