汇编语言程序设计(自学)课件.ppt

上传人(卖家):晟晟文业 文档编号:4146596 上传时间:2022-11-14 格式:PPT 页数:45 大小:179.63KB
下载 相关 举报
汇编语言程序设计(自学)课件.ppt_第1页
第1页 / 共45页
汇编语言程序设计(自学)课件.ppt_第2页
第2页 / 共45页
汇编语言程序设计(自学)课件.ppt_第3页
第3页 / 共45页
汇编语言程序设计(自学)课件.ppt_第4页
第4页 / 共45页
汇编语言程序设计(自学)课件.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、汇编语言程序设计(自学)一、设置自学型课程的目的一、设置自学型课程的目的二、自学型课程的教学形式及教师的作用二、自学型课程的教学形式及教师的作用三、本课程教学目标及学习方法三、本课程教学目标及学习方法四、本课程教学内容及要求四、本课程教学内容及要求 五、课程考核五、课程考核方法一、设置自学型课程的目的一、设置自学型课程的目的 培养独立学习新知识、新技能,发现问题、分析问题、解决问题的自主学习能力,适应科学技术和社会发展的要求。二、自学型课程的教学形式及教师的作用二、自学型课程的教学形式及教师的作用不进行课堂讲授,对自学课程提出学习要求,列出教材和参考书目,布置和批改课程作业,进行辅导、答疑、质

2、疑,组织学生讨论,分析总结和组织课程考核等工作。本课程讨论采用网上(教育在线)和指定教室两种方式进行答疑辅导,通过本课程的学习,掌握汇编语言指令系统的功通过本课程的学习,掌握汇编语言指令系统的功能、格式及寻址方式等基本概念的基础上,通过自能、格式及寻址方式等基本概念的基础上,通过自修及老师的指导,学习利用汇编语言进行程序设计,修及老师的指导,学习利用汇编语言进行程序设计,为后续的微型计算机接口技术等相关课程的学习提为后续的微型计算机接口技术等相关课程的学习提供扎实的基础供扎实的基础 。通过仔细阅读教材及参考书,掌握汇编语言进通过仔细阅读教材及参考书,掌握汇编语言进行程序设计的方法,同时采用上机

3、编程的形式对所行程序设计的方法,同时采用上机编程的形式对所学内容进行练习,即采用理论与实践相结合的方法学内容进行练习,即采用理论与实践相结合的方法学习。学习。三、本课程教学目标及学习方法三、本课程教学目标及学习方法四、本课程教学内容及要求四、本课程教学内容及要求 n1、汇编语言程序的开发过程n2、顺序程序设计n3、分支程序设计n4、循环程序设计n5、子程序设计n6、系统功能子程序调用n7、汇编语言程序的调试1、汇编语言程序的开发过程、汇编语言程序的开发过程程序设计步骤1、分析问题,确定算法。2、选择程序设计语言。3、编制程序流程。4、正确、合理使用存储器和寄存器。5、编写程序。6、调试程序。2

4、、顺序程序设计要求:掌握一个完整的汇编语言程序的结构框架。指令1指令2指令n指令n+1 :例 9-1设在数据段中定义有三个变量X,Y,Z,请利用算术移位指令编写程序,计算出下式的值:Z=10*(X+Y)源程序源程序:;设置数据段设置数据段DATA SEGMENTDATA SEGMENT X DW 20H ;X DW 20H ;变量变量X X Y DW 12H ;Y DW 12H ;变量变量Y Y Z DW?;Z DW?;变量变量Z ZDATA ENDSDATA ENDS;设置堆栈段设置堆栈段STACK1 SEGMENT PARA STACKSTACK1 SEGMENT PARA STACK D

5、B 10H DUP(0)DB 10H DUP(0)STACK1 ENDS STACK1 ENDS;设置代码段设置代码段CODE SEGMENTCODE SEGMENTASSUME CS:CODE,DS:DATAASSUME CS:CODE,DS:DATASTART:START:MOV AX,DATA MOV AX,DATA MOV DS,AX MOV DS,AX MOV AX,X MOV AX,X ADD AX,Y ADD AX,Y SAL AX,1 SAL AX,1 MOV BX,AX MOV BX,AX MOV CL,2 MOV CL,2 SAL AX,CL SAL AX,CL ADD A

6、X,BX ADD AX,BX MOV Z,AX MOV Z,AX MOV AH,4CH MOV AH,4CH INT 21H INT 21HCODE ENDSCODE ENDS END END STARTSTART3、分支程序设计条件满足?语句1语句2YN条件满足?语句YN条件满足?u分支程序的基本概念。u利用比较/测试分支结构实现程序设计。u利用分支表结构实现程序设计。重点重点:掌握分支程序的设计方法。难点难点:利用比较/测试方法实现分支程序设计、利用分支表结构实现分支程序设计。3、分支程序设计 学习程序设计过程中需要注意掌握转移指令的运学习程序设计过程中需要注意掌握转移指令的运用。用。分支

7、程序主要包括:分支程序主要包括:u两分支程序设计两分支程序设计u多分支程序设计多分支程序设计n条件转移法条件转移法n地址表法地址表法n跳转表法跳转表法4、循环程序设计u循环程序的基本结构循环程序的基本结构u循环程序的控制方法循环程序的控制方法u多重循环程序设计多重循环程序设计重点:重点:掌握循环程序的设计方法。掌握循环程序的设计方法。难点:难点:循环程序的控制方法:循环程序的控制方法:计数控制法和条件控制法;计数控制法和条件控制法;多重循环程序设计。多重循环程序设计。循环程序结构初始化部分工作部分修改部分循环结束结束处理部分YN循环结束工作部分修改部分结束处理部分初始化部分初始化部分Y控制部分

8、控制部分N循环程序结构1、初始化部分n设置地址指针、计数器初值2、工作部分3、修改部分4、控制部分n用计数控制循环n用条件控制循环5、结束处理部分循环控制方法1、用计数控制循环n使用计数器,达到计数器预定值,循环结束。要求循环次数已知。n计数器可以递增、递减n可以选用寄存器、也可用存储单元2、用条件控制循环n找出一个终止循环的条件,每循环一次,对条件进行一次检测。满足终止循环的条件,退出循环,否则继续。n通常选用条件转移指令来控制循环是否结束。n分清内外循环的任务和要求,划分内外循环中有规律变化的参数:地址指针、计数器n确定内外循环的控制方法和具体实施。3、多重循环程序设计循环控制方法5、子程

9、序设计u子程序设计方法子程序设计方法u子程序的参数传递子程序的参数传递u子程序的嵌套与递归子程序的嵌套与递归重点:重点:掌握子程序的设计方法;掌握子程序的设计方法;主程序现场的保护与恢复。主程序现场的保护与恢复。难点:难点:主程序和子程序之间的参数传递方法:主程序和子程序之间的参数传递方法:寄存器传递参数法、存储器传递参数法、地址寄存器传递参数法、存储器传递参数法、地址表传递参数法和堆栈传递参数法;表传递参数法和堆栈传递参数法;子程序的嵌套与递归。子程序的嵌套与递归。程序基本结构n过程n主调过程(主程序)n被调过程(子程序)查找程序字符输入串输入查找结果输出5、子程序设计n过程定义n过程调用n

10、过程返回需要掌握子程序设计方法1 1、适度地划分并确定子程序功能、适度地划分并确定子程序功能n具有独立功能的程序作为一个模块具有独立功能的程序作为一个模块n多次出现的程序段独立出来多次出现的程序段独立出来2 2、选择适当的参量传递途径、选择适当的参量传递途径寄存器传递、参数表传递、地址表传递、堆栈传递寄存器传递、参数表传递、地址表传递、堆栈传递3 3、信息的保存、信息的保存n在主程序中保存信息在主程序中保存信息n在子程序中保存信息在子程序中保存信息4 4、编写子程序的文字说明、编写子程序的文字说明6、系统功能调用系统功能调用由OS提供的一组实现特殊功能的子程序供程序员在程序中调用,以减轻编程工

11、作量。系统功能调用有两种,一种称为DOS功能调用,另一种称为BIOS功能调用。应用程序外设硬件接口BIOSDOS系统功能调用采用软中断指令 INT n (其中:n为中断类型码)(1)PUSHF,TF、IF清0,CS、IP入栈 (2)按中断类型码n,从中断向量表对应位置取出将要调用的功能子程序的入口地址CS,IP (3)功能子程序返回:IRETDOS功能调用调用方法:p 入口参数p 子程序编号送AHp INT 21HDOS功能调用基本I/O功能调用 功能 入口参数 出口参数 说明 键盘输入 AH=1AL=字符ASCII码字符显示控制台输入 AH=8同1号无显示显示输出 AH=2 DL=字符ASC

12、II码打印输出 AH=5 DL=字符ASCII码直接控制台 AH=6 ZF=0,AL=字符ASCII码输入/输出 DL=0FFH/字符码 ZF=1无键按下字符串输出 AH=9字符串须以$结束 DS:DX=串首址字符串输入 AH=0AH首先定义缓冲区 (1)从键盘输入一个字符(功能号功能号=1=1)MOV AH,MOV AH,1 1 ;等待按键 INT 21H INT 21H ;字符回显 AL (2)从键盘输入一个字符,无显示(功能号功能号=8=8)MOV AH,MOV AH,8 8 INT 21H INT 21H AL DOS功能调用 例:程序中有时需要用户对提示做出应答 GET_KEY:MO

13、V AH,1;等待键入字符 INT 21H;结果在AL中 CMP AL,Y;是Y?JZ YES ;是,转YES CMP AL,N;是N?JZ NO ;是,转NO JMP GET_KEY;否则继续等待输入 YES:NO:(3)在显示器上显示一个字符(功能号=2)MOV DL,MOV AH,2 INT 21H 例:在显示器上显示一个字符A MOV DL,A ;或MOV DL,41H MOV AH,2 INT 21HDOS功能调用(4)MOV DL,0FFH;键盘输入 MOV AH,6 INT 21H MOV DL,24H;屏幕输出 MOV AH,6 INT 21HDOS功能调用(5)显示字符串(功

14、能号功能号=9)LEA DX,MOV AH,9 INT 21H注意:被显示的字符串必须以注意:被显示的字符串必须以$结束结束。DOS功能调用DATA SEGMENT BUF DB HOW DO YOU DO?$.DATA ENDS.MOV AX,DATAMOV DS,AX.MOV DX,OFFSET BUFMOV AH,9INT 21H.例:显示一字符串(6)输入字符串(功能号功能号=0AH)此功能调用从键盘输入一串字符并把它存入用户指定的缓冲区中。LEA DX,MOV AH,0AHINT 21H DOS功能调用(预留的预留的N1个字节的存储单元个字节的存储单元)0DHN2N1 N1:缓冲区长

15、度(最大键入字符数)N2:实际键入的字符数(不包括回车符)用户定义的输入字符串的缓冲区格式 DATA SEGMENT BUF DB 10;缓冲区长度 DB?;实际输入个数 DB 10 DUP(?);存储空间DATA ENDS.MOV AX,DATAMOV DS,AX.LEA DX,BUFMOV AH,10INT 21H.例:输入字符串DOS功能调用基本I/O功能调用 功能 入口参数 出口参数 说明 设置日期 AH=2BHAL=0或AL=0FFH均为二进制数 CX=年号 DH=月,DL=日读取日期 AH=2AHCX=年号均为二进制数DH=月,DL=日设置时间 AH=2DH CH=小时,CL=分A

16、L=0或AL=0FFH均为二进制数 DH=秒,DL=百分秒读取时间 AH=2CHCH=小时,CL=分均为二进制数DH=秒,DL=百分秒MOV CX,1999MOV DH,5MOV DL,20MOV AH,2BH;设置日期INT 21H;1999.5.20MOV AH,2AH;取得日期INT 21H;cx:dx=1999.5.20MOV YEAR,CXMOV MONTH,DHMOV DAY,DLDOS功能调用(7)设置/读出日期MOV CX,090FHMOV DX,0200HMOV AH,2DH;设置时间INT 21H;9点15分2秒MOV AH,2CH;取得时间INT 21H;cx:dxMOV

17、 HOURS,CHMOV MINUTES,CLMOV SECONDS,DHDOS功能调用(8)设置/读出时间BIOS功能调用功能调用 BIOS调用通过多个软中断提供,调用方法为:MOV AH,INT BIOS中的几个主要中断类型如下:INT 10H屏幕显示INT 13H磁盘操作INT 14H串行口操作INT 16H键盘操作INT 17H打印机操作每类中断由于包含许多子功能,调用时通过功能号指定。BIOS功能调用键盘输入16H号功能调用功能 出口参数 说明 AH=0 AL=字符的ASCII码从键盘读一个字符 AH=1 ZF=1表示无键可读判键盘是否有键可读 ZF=0表示有键可读AH=2 AL=功

18、能键状态字节取特殊功能键当前状态BIOS功能调用打印输出17H号功能调用 功能 入口参数 出口参数 说明 AH=0 AL=字符代码打印一个字符 DX=打印机号AH=1 DX=打印机号初始化打印机AH=2 DX=打印机号AL=状态字节取打印机状态BIOS功能调用显示输出10H号功能调用 功能 入口参数 出口参数 说明 AH=0 AL=方式号设置显示方式AH=1 CH=光标开始行号置光标类型 CL=光标结束行号AH=2 DH=行号,DL=列号置光标位置 BH=页号AH=3 BH=页号 DH=行号,DL=列号读光标位置 CX=当前光标大小AH=5 AL=页号选择当前显示页BIOS功能调用显示输出10

19、H号功能调用 功能 入口参数 出口参数 说明向上滚屏 AH=6,AL=上滚行数,BH=空行属性 CH、CL=滚动左上角行列号 DH、DL=滚动右下角行列号向下滚屏 AH=7 其余同6读光标处 AH=8AL=字符字符和属性 BH=页号AH=属性将字符和属性 AH=9,AL=字符写到光标处 BH=页号,CX=个数 BL=字符属性/颜色将字符写到 AH=0AH属性不变光标位置 其余同9编辑程序源程序 文件宏汇编程序 MASM目标程序文件语法有错?N链接程序 LINKYAB.ASM.OBJ.LST可执行 文件调试程序DEBUG有错吗?N结束YAB.EXE.MAP7、汇编语言程序的调试1 1、编辑源程序

20、、编辑源程序 用DOS下的文本编辑器EDIT编写程序。C:EDIT Fibonacci.ASM(回车)2 2、产生目标文件、产生目标文件 对已经编辑好的.ASM文件,可以用宏汇编程序MASM进行汇编,汇编后生成二进制代码的目标程序。C:MASM Fibonacci.ASM(回车)MASM在汇编源程序时,产生三个文件。目标文件、列表文件、交叉引用符号表文件(CRF文件)3 3、连接产生可执行文件、连接产生可执行文件 汇编程序生成的目标文件,必须经过连接程序连接后,才可以得到在计算机上运行的可执行程序。C:LINK Fibonacci(回车)连接程序连接后,可以产生三个文件。可执行文件,清单文件、

21、需要连接的库文件 4、运行程序C:Fibonacci(回车)DOS下使用DEBUG调试 1 1、进入与退出命令、进入与退出命令nDEBUG DEBUG 文件名文件名 参数表参数表 n如果需要退出如果需要退出DEBUGDEBUG状态,返回操作系统,可以使用状态,返回操作系统,可以使用退出命令退出命令Q Q。2 2、显示命令、显示命令n显示寄存器内容显示寄存器内容RR命令命令n显示存储器内容显示存储器内容DD命令命令n反汇编命令反汇编命令UU命令命令3 3、修改命令、修改命令n汇编指令汇编指令AA命令命令n修改寄存器内容修改寄存器内容RR命令命令n修改存储单元内容修改存储单元内容E E 命令命令4

22、 4、程序运行命令、程序运行命令n连续运行命令连续运行命令GG命令命令n跟踪运行命令跟踪运行命令TT命令命令n执行程序命令执行程序命令PP命令命令五、课程考核五、课程考核方法 课内实验主要是在掌握计算机硬件系统基本原理的基础上,通过Intel 8086汇编语言内容的学习,进行汇编语言的上机编程,熟悉各种程序结构及DOS系统功能调用的使用方法,最后提交规范的上机实验报告。上机测试成绩占50%,程序设计报告占50。编号编号名名 称称内内 容容1 1分支程序结构编程实践分支程序结构编程实践编写、调试编写、调试1 12 2道典型分支程序结道典型分支程序结构设计题目构设计题目2 2多重循环程序结构编程实

23、多重循环程序结构编程实践践编写、调试编写、调试1 12 2道典型多重循环程道典型多重循环程序结构设计题目序结构设计题目3 3子程序结构编程实践子程序结构编程实践编写、调试编写、调试1 12 2道典型子程序结构道典型子程序结构设计题目设计题目4 4DOSDOS功能调用编程实践功能调用编程实践编写、调试编写、调试1 12 2道典型道典型DOSDOS功能调功能调用题目用题目5 5综合型程序结构编程实践综合型程序结构编程实践编写、调试编写、调试1 13 3道综合型程序结构道综合型程序结构设计题目设计题目练习题(每一部分2选1)分支程序设计:分支程序设计:1 1、编写程序,键入学生成绩(百分制),按、编

24、写程序,键入学生成绩(百分制),按A A、B B、C C、D D显示在屏幕上。显示在屏幕上。2 2、编写一程序,比较两个字符串所含字符是否相等,如果相等,在屏幕、编写一程序,比较两个字符串所含字符是否相等,如果相等,在屏幕 上显示上显示“Y Y”,反之显示,反之显示“N N”。循环程序设计:循环程序设计:1 1、设有一段文字,编写一段程序查找字母、设有一段文字,编写一段程序查找字母a a出现的次数,并显示在屏幕上。出现的次数,并显示在屏幕上。2 2、编写程序,求出、编写程序,求出100100以内既能被以内既能被2 2整除又能被整除又能被3 3整除的数,并显示在屏整除的数,并显示在屏 幕上。幕上

25、。子程序设计:子程序设计:1 1、编写子程序,分别计算、编写子程序,分别计算100100以内所有奇数之和与所有偶数之和,并显示以内所有奇数之和与所有偶数之和,并显示 在屏幕上。在屏幕上。2 2、给定一个数组存放、给定一个数组存放5 5个小写字母,用地址表传递方法编写子程序,将其个小写字母,用地址表传递方法编写子程序,将其 转换成大写字母,并显示在屏幕上。转换成大写字母,并显示在屏幕上。DOSDOS功能调用:功能调用:1 1、在图形方式下,在屏幕中央绘制一个用、在图形方式下,在屏幕中央绘制一个用“*”表示的等腰三角形。表示的等腰三角形。2 2、在图形方式下,在屏幕中央绘制一个用、在图形方式下,在

26、屏幕中央绘制一个用“*”表示的矩形。表示的矩形。综合题综合题(1、2、3选二,选二,4、5、6选选1)1 1、编写一个生成、编写一个生成ASCIIASCII码表的程序,并显示在屏幕上。码表的程序,并显示在屏幕上。2 2、输入、输入2020个十进制数(两位或三位),排序后输出结果,并显个十进制数(两位或三位),排序后输出结果,并显 示在屏幕上。示在屏幕上。3 3、根据提示输入任意年份,编写判断闰年的程序,如果是闰年,、根据提示输入任意年份,编写判断闰年的程序,如果是闰年,则在屏幕上显示则在屏幕上显示“Y Y”,否则显示,否则显示“N N”。4 4、编写一个比赛得分程序。共有、编写一个比赛得分程序

27、。共有7 7个评委,按百分制打分,计个评委,按百分制打分,计 分原则是去掉一个最高分和一个最低分,求平均值。要求:分原则是去掉一个最高分和一个最低分,求平均值。要求:(1 1)评委的打分以十进制从键盘输入。)评委的打分以十进制从键盘输入。(2 2)成绩以十进制给出,并保留)成绩以十进制给出,并保留1 1位小数。位小数。(3 3)输入输出时屏幕上要有相应提示。)输入输出时屏幕上要有相应提示。5 5、显示杨辉三角形。要求:、显示杨辉三角形。要求:(1 1)从键盘接收正整数)从键盘接收正整数n n;(2 2)屏幕显示杨辉三角形,显示)屏幕显示杨辉三角形,显示n n行信息;行信息;6 6、编写程序求解八皇后问题,并将结果显示在屏幕上。、编写程序求解八皇后问题,并将结果显示在屏幕上。要求:第一个皇后的起始位置由键盘输入,国际象棋的棋盘为要求:第一个皇后的起始位置由键盘输入,国际象棋的棋盘为8 8*8 8的方格。的方格。实验报告要求n1 1、题目要求、题目要求n2 2、编程思路、编程思路n3 3、流程图、流程图n4 4、源程序、源程序n5 5、输出屏幕抓图、输出屏幕抓图n6 6、汇编语言程序设计自学心得体会、汇编语言程序设计自学心得体会

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(汇编语言程序设计(自学)课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|