文档库 最新最全的文档下载
当前位置:文档库 › 遗传算法的C语言程序案例教学提纲

遗传算法的C语言程序案例教学提纲

遗传算法的C语言程序案例教学提纲
遗传算法的C语言程序案例教学提纲

遗传算法的C语言程

序案例

遗传算法的C语言程序案例

一、说明

1.本程序演示的是用简单遗传算法随机一个种群,然后根据所给的交叉率,变异率,世代数计算最大适应度所在的代数

2.演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的命令;相应的输入数据和运算结果显示在其后。

3.举个例子,输入初始变量后,用y= (x1*x1)+(x2*x2),其中-

2.048<=x1,x2<=2.048作适应度函数求最大适应度即为函数的最大值

4.程序流程图

5.类型定义

int popsize; //种群大小

int maxgeneration; //最大世代数 double pc; //交叉率

double pm; //变异率

struct individual

{

char chrom[chromlength+1];

double value;

double fitness; //适应度

};

int generation; //世代数

int best_index;

int worst_index;

struct individual bestindividual; //最佳个体

struct individual worstindividual; //最差个体

struct individual currentbest;

struct individual population[POPSIZE];

3.函数声明

void generateinitialpopulation();

void generatenextpopulation();

void evaluatepopulation();

long decodechromosome(char *,int,int);

void calculateobjectvalue();

void calculatefitnessvalue();

void findbestandworstindividual();

void performevolution();

void selectoperator();

void crossoveroperator();

void mutationoperator();

void input();

void outputtextreport();

6.程序的各函数的简单算法说明如下:

(1).void generateinitialpopulation ()和void input ()初始化种群和遗传算法参数。

input() 函数输入种群大小,染色体长度,最大世代数,交叉率,变异率等参数。

(2) void calculateobjectvalue();计算适应度函数值。

根据给定的变量用适应度函数计算然后返回适度值。

(3)选择函数selectoperator()

在函数selectoperator()中首先用rand ()函数产生0~1间的选择算子,当适度累计值不为零时,比较各个体所占总的适应度百分比的累计和与选择算子,直到达到选择算子的值那个个体就被选出,即适应度为fi的个体以fi/∑fk的概率继续存在;

显然,个体适应度愈高,被选中的概率愈大。但是,适应度小的个体也有可

能被选中,以便增加下一代群体的多样性。

(4)染色体交叉函数crossoveroperator()

这是遗传算法中的最重要的函数之一,它是对个体两个变量所合成的染色体进行交叉,而不是变量染色体的交叉,这要搞清楚。首先用rand ()函数产生随机概率,若小于交叉概率,则进行染色体交叉,同时交叉次数加1。这时又要用rand()函数随机产生一位交叉位,把染色体的交叉位的后面部分交叉即可;若大于交叉概率,则进行简单的染色体复制即可。

(5)染色体变异函数mutation()

变异是针对染色体字符变异的,而不是对个体而言,即个体变异的概率是一样。随机产生比较概率,若小于变异概率,则1变为0,0变为1,同时变异次数加1。

(6)long decodechromosome(char *,int,int)

本函数是染色体解码函数,它将以数组形式存储的二进制数转成十进制数,然后才能用适应度函数计算。

(7)void findbestandworstindividual()本函数是求最大适应度个体的,每一代的所有个体都要和初始的最佳比较,如果大于就赋给最佳。

(8)void outputtextreport () 输出种群统计结果

输出每一代的种群的最大适应度和平均适应度,最后输出全局最大值

二、运行环境

本程序的开发工具是VC++,在VC++下运行。

源代码

#include"stdafx.h"

#include

#include

#include

/////////////The definiton of user data 定义用户数据////

#define Cmax 100 //certain maximal value

#define Cmin 0 //certain minimum value

#define LENGHT1 3

#define LENGHT2 3

//总染体长度

#define CHROMLENGTH LENGHT1+LENGHT2

const int MaxGeneration = 100;

const int PopSize = 10;

const double Pc = 0.6;

const double Pm = 0.001;

////////////// 数据结构定义///////////////////

struct Individual{

char chrom[CHROMLENGTH + 1];

double value;

double fitness;

汇编语言程序设计教学大纲

《汇编语言程序设计》课程教学大纲 二、课程简介 汇编语言是计算机能够提供给用户使用的最快最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而,对程序的空间和时间要求很高的场合及需要直接控制硬件的应用场合,汇编语言的应用是必不可少三、课程目标 汇编语言课程是计算机专业的一门专业选修课。通过本课程的学习,应使学 生系统地了解计算机组成原理与内部的运行机理,掌握汇编语言程序设计及相关 知识,为学习本专业后继课程和进行与硬件有关的技术工作打下良好基础。通过 上机实验,使学生受到软硬件实验的初步训练,并培养学生分析问题和解决问题 的能力。 四、教学内容及要求 第一章基础知识 1.教学内容 (1) 为什么要用汇编语言编写程序 (2) 进位计数制与不同基数的数之间的转换 (3) 二进制数和十六进制数运算 (4) 计算机中数和字符的表示 (5) 几种基本的逻辑运算 2.基本要求 了解机器指令、代码指令、机器语言、汇编指令、汇编语言、汇编语言源程 序、汇编程序、汇编等概念;掌握进位计数制与不同基数的数之间的转换及

运算;计算机中数和字符的表示;“与”、“或”、“非”、“异或”等几种基本的逻辑运算; 第二章80X86计算机组织 1.教学内容 计算机系统概述、存储器、中央处理机和外部设备。 2.基本要求 理解计算机的硬件和软件系统及其关系。掌握计算机的基本结构及总线;存储器的内容、地址及存储器的分段;中央处理机的组成、80X86系列CPU工作寄存器构成和功能,特别是段寄存器和标志寄存器;外设接口、端口和8086/8088的端口地址范围和访问方法。 第三章80X86的指令系统 1.教学内容(重点内容) IBM PC机的寻址方式、IBM PC机的指令系统。 2.基本要求 熟练掌握IBM PC机寻址方式及物理地址的计算;数据传送、算术、逻辑、串处理、控制转移和处理机控制指令六组中的所有指令的格式、操作、及影响的标志位。了解机器语言的指令组成; 第四章汇编语言程序格式 1.教学内容 汇编程序功能、伪操作、汇编语言程序格式、汇编语言程序的上机过程。 2.基本要求 掌握DEBUG程序和命令及能用DEBUG 程序调试和运行简单小程序;汇编语言上机步骤、汇编程序的功能;数据定义及存储器分配、表达式赋值“EQU”和“=”、段定义、程序开始和结束、对准、基数控制等六类伪操作;汇编语言程序格式中的名字、操作、操作数和注释等项。 第五章循环与分支程序设计 1.教学内容 程序设计的一般步骤和基本结构、循环程序设计和分支程序设计 2.基本要求 掌握汇编语言程序的编制步骤和结构化程序设计的三种基本结构;循环的设计方法和多层循环的设计;分支程序的设计方法,并能编制相应的程序。第六章子程序结构 1.教学内容 子程序的设计方法、嵌套与递归子程序、子程序举例和DOS系统功能调用

《汇编语言程序设计》考纲、试题、答案

安徽新华学院成人高等学历教育 《汇编语言程序设计》课程2013年12月期末考试指导 一、考试说明 本课程为闭卷考试,考试时间90分钟,考试题型包括以下题型: 1. 选择题(每题2分,共10分) 2. 填空题(每空1分,共20分) 3. 判断题(正确打√,错误打×,每题2分,共10分) 4. 简答题(每题5分,共15分) 5. 指出下列指令的错误(每题2分,共10分) 6. 程序分析题(每空5分,共25分) 7. 程序设计题(每空1分,共10分) 二、课程知识要点 第一章绪论 1. 汇编程序是将汇编语言源程序翻译成二进制代码程序的语言处理程序,翻译的过程称为汇编。 2. 汇编语言的特点 3. 数据的表示和类型(ASCII码和基本数据类型是重点) 第二章 8086/8088寻址方式和指令系统 1. 8086/8088寄存器组(各种寄存器的名称和功能) 2. 存储器分段和地址的形成(存储单元中存放信息的原则,物理地址的计算方法,逻辑地址的表示方法,有效地址EA) 3. 寻址方式的概念,能够判断寻址方式 4.传输指令 (1)数据传送指令. MOV 传送字或字节. (掌握课本30页图2.13) XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数) (2)地址传送指令: LEA 装入有效地址. 例: LEA DX,string ;把偏移地址存到DX. LDS 传送目标指针,把指针内容装入DS.

例: LDS SI,string ;把段地址:偏移地址存到DS:SI. LES 传送目标指针,把指针内容装入ES. 例: LES DI,string ;把段地址:偏移地址存到ES:DI. (3)堆栈操作指令,按照“后进先出”的原则,所有数据的存入和取出都在栈顶进行。 PUSH 把字压入堆栈. SP-2 POP 把字弹出堆栈. SP+2 (4)标志操作指令 LAHF 标志寄存器传送,把标志装入AH. SAHF 标志寄存器传送,把 AH内容装入标志寄存器. PUSHF 标志入栈. POPF 标志出栈. 5.算术运算指令 ADD 加法. ADC 带进位加法. INC 加 1. SUB 减法. SBB 带借位减法. DEC 减 1. NEC 求反(以 0 减之). CMP 比较.(两操作数作减法,仅修改标志位,不回送结果). MUL 无符号乘法. IMUL 有符号数乘法. 以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算) DIV 无符号除法. IDIV 整数除法. 以上两条,结果回送:商回送AL,余数回送AH, (字节运算);或商回送AX,余数回送DX, (字运算). CBW 字节转换为字. (把AL中字节的符号扩展到AH中去) CWD 字转换为双字. (把AX中的字的符号扩展到DX中去) 6. 逻辑运算指令(按位运算)

汇编语言课程教学大纲

《汇编语言》课程教学大纲 一、课程的性质和任务 《汇编语言》是计算机及相关专业的一门专业必修课。 本课程教学应达到的基本要求是: 1、加深对于微机结构及其内部运行过程的理解。 2、掌握Intel80x86汇编语言的语法、程序结构,能读懂和编写汇编语言程序。 3、了解BIOS、MS—DOS的功能调用方法,并掌握和运用主要的功能调用。 4、了解PC机主要外设的工作原理及简单编程方法。 5、掌握汇编语言的编程、调试技术,能够以汇编语言为工具,解决一些实际问题。 二、课时分配 本课程教学总时数为72学时,4学分,具体课时分配见课时分配表。 课时分配表 三、 课题一:基础知识 数制及数制间的转换(二进制、八进制、十进制、十六进制数概念及相互转换);二进制数的算术、逻辑运算;计算机中数和字符的表示(数值数据:原码、补码、反码的表示,字符数据的表示,数据类型等)。 重点:进位计数制及转换,ASCII码表示,数值数据表示等。 课题二:IBM PC 计算机组织 微型计算机系统基本结构(硬件、软件);中央处理器(组成、寄存器组);存储器等。

重点:8086CPU内容结构、寄存器组,存储器的地址和内容,内存地址的分段。 难点:逻辑地址和物理地址。 课题三:寻址方式与指令系统 寻址方式、指令格式、8086/8088指令系统(数据传送、算术运算、逻辑运算和移位运算、控制指令等)。 重点内容:1、掌握8086/8088CPU的寻址方式。 2、掌握8086/8088的常用指令。 了解内容:8086/8088指令系统的特点。 课题四:汇编语言程序格式 程序结构(分段式、简化式);伪操作;汇编语言程序格式;汇编、连接和运行;程序的调试与DEBUG。 课题五:分支与循环程序设计 顺序程序设计;分支程序设计;循环程序设计;串处理。 重点内容:顺序、分支和循环程序基本方法,能编写、运行、调试简单的汇编语言程序。 课题六:子程序与宏指令 子程序的设计方法;子程序嵌套;子程序举例;宏汇编。 课题七:输入与输出程序设计 输入与输出指令;输入输出控制方式;中断控制方式;中断处理程序举例。 课题八:BIOS和DOS中断 BIOS中断调用;DOS中断调用;键盘I/O调用;显示器I/O调用;其它调用(发声和时间中断等调用);显示方式;字符显示缓冲区的组织;图形方式下的编程。 重点内容:掌握DOS和BIOS中断方法。 四:说明 1、教材与参考书:教材选用《汇编语言》人民交通出版社 参考书选用《IBM PC 汇编语言程序设计》清华大学出版社 2、其它要求: (1)、该课程平时作业以课后习题为内容,由任课教师自行选择,次数在五次以上。 (2)、根据实验内容,填写实验报告8次,实验成绩计入课程总评分中。 3、预修课程:《C语言程序设计》、《计算机电路基础》 《汇编语言》课程实验教学大纲 一、实验教学目的

汇编语言程序设计打字练习程序

汇编语言课程设计报告 ( 2014 -- 2015 年度第 1 学期) 专业 xxx 学生姓名 xxxx 班级 xxx 学 号 xxxx 指导教师 xxx 完成日期 xxxxx 课题名称: 打字计时练习程序

目录 1.设计目的与设计要求 2.程序流程图 (5) 2.1主程序流程图 (5) 2.2时间计算流程图 (6) 2.3正确率计算流程图 (7) 3.设计关键问题 (9) 3.1输入输出 (9) 3.1.1 输出显示信息 (9) 3.1.2 输入十个字符 (11) 3.2 输入字符串所用时间计算 (11) 3.3 正确率判断 (13) 4.调试运行结果分析 (14) 参考文献 (19) 附录二打字计时练习程序 (19)

一.设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程 序设计方法,提高分析问题,解决问题的综合应用能力。 设计要求 在缓冲区预放了一些字母,运行时,可按照屏幕上显示的字母输入练习,每输入完一行按回车键后,可显示出练习输入的时间。 设计思路 1.系统总体分析 在缓存区预放了一些字母,运行时可按照屏幕上显示的字母输入练习,每输入完一行按回车键后,可显示出练习输入的时间。当一个句子分析完后(回车键作为结束符),屏幕上以min:sec:msec的格式显示出键入字符的时间。在每次打字之前,屏幕上先显示一个例句,然后打字员按照例句,将句中字符通过键盘输入。这个过程共进行五次,当键入一个enter键时,推出打字计时练习程序。 在键盘上联系的打字例句及其他地址表,计时单位等预存在DATA数据段中。 自编的中断程序Kbint检测按键时产生的中断,并将按键扫描码转换为ASCII码存入缓存区BUFFER(内存中一个区域),这个工作和EOM09类型的键盘中断例行程序所完成的工作大致相同,只是在解释各个键时作了简化,即只解释了可显示字符(如英文小写字母,数字及一些字符),其他特殊键(如组合键,双态键,功能键),都未做解释,只做字符码0来处理。在主程序部分保存原有09类型的中断向量,设置自编例行程序的中断向量,设置中断屏蔽位,然后在开断。当键盘中断处理后,主程序安排指令读取缓存区中的字符并显示在屏幕上。在主程序的末尾,利用DOS功能恢复原09类型的中断向量,然后返回DOS。在显示键入的字符时,还应判断字符是否为回车符。说明一个句子输入完毕,此时调用显示时间的子程序显示打字时间,然后顺序显示一个例句。如果所存放的例句都已显示完毕,则再次从第一个例句开始显示,直至键入某个功能(如ESC键等)退出程序,结束打字练习。打字时间统计利用自编的计时器中断处理程序Clint来完成。 每输入一个例句,计时一次。在此中断例行程序中,定时器中断的次数记录在计

汇编语言程序设计大纲

《汇编语言程序设计》课程教学大纲 课程编号: 0910218 课程名称:汇编语言程序设计 英文名称:Assemble Language Programming 课程类型: 专业基础课 总学时:48 讲课学时:48 实验学时:0 学分:3 适用对象: 计算机科学与技术、网络工程、信息安全及相关专业 先修课程:数字逻辑与数字系统设计、数据结构 一、课程性质、目的和任务 汇编语言程序设计是计算机科学与技术、网络工程、信息安全等专业的必修课,是进一步学习操作系统、编译、接口与通信等专业课的基础。通过本门课程的学习,学生可以加深对计算机工作原理的理解,有助于促进后续课程的学习。同时,汇编语言作为一种计算机语言工具,对于学生将来从事计算机的研究与应用是必需的,有助于提高学生的程序设计能力。 二、教学基本要求 通过本课程的学习,要求学生了解或掌握:模型机的基本结构、工作原理、寻址方式及指令系统,用汇编语言编写顺序、分支、循环、子程序、宏汇编语言程序等各种程序的技术。学会编写输入/输出程序和中断服务程序,掌握利用系统的功能调用进行程序设计的方法。掌握汇编过程和汇编程序的原理,能够正确熟练地使用编辑、汇编、链接和调试等各种软件工具。 三、教学内容及要求 1. 模型机结构。模型机系统的概述,存储器、中央处理器及外部设备与接口的基本概念、工作原理及编程方法。 2. 指令系统与寻址方式。模型机的寻址方式,机器语言指令格式,汇编语言指令系统。 3. 汇编语言程序格式。汇编程序的功能,伪操作,汇编语言程序格式。 4. 循环与分支程序设计。程序流程图的画法;分支与循环程序的设计思想与方法,重点介绍双重循环的程序设计和通过比较——判断、跳转表等方法进行分支程序设计。 5. 系统功能调用。介绍操作系统提供的BIOS、DOS等系统功能调用,学习通过功能调用进行程序设计的方法。 6. 子程序设计。子程序的设计方法,嵌套与递归子程序,堆栈在其中的应用。 7. 高级汇编语言技术。宏汇编、重复汇编、条件汇编的基本概念及其程序设计。 8. 输入输出及中断程序设计。I/O设备的数据传送方式,程序直接控制I/O方式和中断程序设计。 9. 软件工具。汇编程序、文本编辑程序、链接程序、调试程序的基本功能及汇编语言程序编写、调试、运行中的使用方法。 四、实践环节 见“汇编语言程序设计综合实验”。

计算机组成原理与汇编语言程序设计复习提纲

2016年新疆大学软件学院计算机组成原理与汇编复习提纲名词解释 冯诺依曼机:有存储器、运算器、控制器、输入设备、输出设备组成采用存储程序 工作方式,采用二进制。 硬件:指系统中课触摸到的设备实体。 软件:系统中的各类程序和文件。 操作系统:是软件系统的核心。负责管理和控制计算机系统硬件软件资源及运行的程序,它合理的组织计算机的工作流程,是用户与计算机之间的接口。 机器语言:机器语言是计算机硬件能够直接识别的语言 汇编语言:是一种用符号表示的,面向某一特定机型的程序设计语言,它的指令语句与机器指令一一对应。 高级程序设计语言:是面向用户,于特定机型属性相分离的程序设计语言,具有通用性。 编译:就是把人能看懂的英文代码变成机器能懂的指(机器语言)的过程。 解释:边解释边执行。由解释器根据输入的数据当场执行而不生成任何的目标程序 虚拟机:通常是指通过配置软件(如某种语言的编译器或解释器)扩充及其功能后所形成的一台计算机。 流水线:流水线(pipeline)技术是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。 RISC:精简指令集计算机。简化指令使得计算机的结构更简单合理,从而提高处理速度。超标量:指具有多条相互独立的指令执行流水线,可同时执行薯条指令的处理机。 并行计算机:由多个处理单元(多个处理器或多个计算机)组成的计算机系统。 桌面计算机:包括个人计算机和工作站,个人计算机主要为一个用户提供良好的计算 性能和较低的成本的工作环境。工作站是指具有完整人机交互界面、图形处理性能和较高计算性能,可配置大容量的内存和硬盘,I/O和网络功能完善,使用多任务多用户操作系统的小心通用个人化计算机系统。

汇编语言程序设计——知识点-v3.0

第一章 1、什么是汇编语言? 2、汇编语言程序设计过程:编辑源程序,编译(汇编),连接,运行调试 3、汇编语言特点?与机器语言一一对应,直接操作硬件,高效率(空间和时间,运行速度快,目标代码短,占用存储空间少) 4、数制转换 第2章8086计算机组织结构 1、计算机硬件系统组成:CPU、存储器、输入输出设备。 2、CPU组成:运算器、控制器、寄存器,运算器和控制器由芯片设计时设计好,不可做任何改动,程序设计员仅能在程序里使用寄存器,寄存器都有相应的名字,如AX,能在程序里直接使用寄存器是汇编语言区别于高级语言的最重要特点,这样就可以直接控制硬件系统。 3、总线结构:数据总线、地址总线、控制总线。数据总线分8位、16位、32位和64位等,多少位机就是以数据总线来划分,比如8位机、32位机。8086机是16位机,但地址总线是20位,地址总线数量决定了内存寻址空间的大小,如8086有20位地址线,那么寻址空间是:220=210*1K=1M,8086最大寻址空间为1MB,即地址范围:00000H~FFFFFH。控制总线主要传送控制信息,如读写操作,读写操作的主体是CPU,读操作是指CPU从内存或外设读取数据,写操作是指CPU把数据写到内存或外设中。 4、存储器:存储器的最小单元是字节(Byte,由8个位组成),字节的多少就是存储器的容量。每一个字节单元都有一个唯一的编号,这个编号就是字节单元的地址,此地址就是物理地址,对于8086而言,编号的形式为:XXXXXH,如85421H。如果要读写存储器,必须知道某一个字节单元的地址。多个字节单元可以组合成更大的单元(数),比如2个字节单元组合成一个字(Word),4个字节单元组合成一个双字(Double Word)等,规定:这个组合后的大单元是以最小字节单元地址为自己的地址。如85421H字节单元内容为12H,85422H 字节单元内容为34H,那么以85421H地址的字单元的内容就是3412H。 地址取最小字节单元的地址为大单元的地址。 内容排序按照“高高低低”原则:高字节放在高地址里,低字节放在低地址里。 详细请参看2.3节(P30页) 5、8086CPU寄存器 (1)通用类:AX(AH,AL)、BX(BH,BL)、CX(CH,CL)、DX(DH,DL) (2)段寄存器类:CS、DS、ES、SS (3)与偏移地址相关类:SI、DI、SP、BP (4)特殊类:IP、FLAGS 所有寄存器都是16位大小,通用类的16位又可看成2个8位的寄存器组成,区分为高8位(High)和低8位(Low),因此取名为AH和AL,其他类似。 CS:存放代码段段地址,DS:存放数据段段地址,SS:存放堆栈段段地址,ES:存放数据附加段段地址,一般作为DS的辅助使用,比如在一段程序里需要用到2个不同数据段的数据时,其中一个数据段段地址存放在DS中,另一个存放在ES中。 SI、DI:一般用于变址寻址方式,如[BX+SI]、[BX+DI], SP:堆栈段中堆栈栈顶的偏移地址,不可修改,由SS:SP逻辑地址始终指向堆栈的栈顶。 详细参看2.3.2,P32页 BP:一般也用于堆栈,可以作为SP的备份,通常也是用SS:BP逻辑地址表示,BP可以随意修改,因此通过SS:BP可以访问堆栈的任何地方。此外,BP还与BX一样,可以作为基地址

汇编语言程序设计课程教学大纲

课程教学大纲 (理论课) 课程名称:汇编语言程序设计 适用专业:计算机科学与技术 课程类别:学科基础课 制订时间: 2006年8月 数学与计算机科学学院制

汇编语言程序设计课程教学大纲 (2002年制订,2006年修订) 一、课程代码:0502121009 二、课程类别:学科基础课程 三、预修课程:计算机导论、高级语言程序设计等 四、学分: 4学分 五、学时: 86学时(其中实验部分32学时) 六、课程概述: 汇编语言是计算机能提供给用户最快也最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而在对于程序的空间和时间要求很高的场合,汇编语言是必不可少的,至于对于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可。 汇编语言作为计算机专业的一门必修课程是了解计算机体系结构和操作系统的最佳切入点。通过汇编语言课程的学习,对计算机理论中包括CPU体系结构、指令调度方式、存储器管理、基本输入输出接口的理解都会有一个比较本质而且直观的认识。在对汇编语言实际运用的基础上同时还能帮助对高级语言程序设计的深入体会,包括变量的组织,地址的访问,循环与分支在机器码中的处理,调用函数时参数的传递等,所以汇编语言在本专业中是一门核心的课程,通过对本课程的学习是加深对后续课程认识的基础。 七、教学目的: 通过对本课程的学习,掌握8086微处理器的寄存器组和基本寻址方式,学生要达到对程序在计算机中的基本调度有一定认识,对二进制基础理论有深入的理解,同时熟练掌握8086汇编语言的编写方式,掌握基本的系统调用,具备良好的源程序调试能力以及最基本的、实模式下的反汇编能力。

汇编语言程序设计

《汇编语言程序设计》课程教学大纲 学时:32 学分:2 理论学时:24 实验学时:8 面向专业:电科、电信、通信课程代码:B2700009 先开课程:C语言程序设计课程性质:必修 执笔人:王艳春审定人:陈龙猛、张金政 第一部分:理论教学部分 一、说明 1、课程的性质、地位和任务 本课程属于专业基础课,是电科、电信和通信专业学生必修的核心课程之一,是进一步学习微机原理、操作系统等课程的基础。掌握它有助于提高学生对计算机系统的设计、研究、开发和应用能力。汇编语言是一种面向机器、实践性很强的程序设计语言,必须结合一种实际的计算机来组织教学。因此,本课程选择最广泛使用的IBM PC作为具体的机型来介绍。通过课堂教学和上机实践,培养学生用汇编语言进行编程的思路、方法,养成良好的程序设计习惯,并了解底层I/O 驱动软件的编程方法,熟悉源程序汇编、链接和调试运行的步骤和方法,掌握dos、BIOS功能的调用方法及使用debug工具的调试手段,为后续课的学习打下扎实的基础。 2、课程教学和教改基本要求 课程的目的与教学基本要求:本课程主要介绍汇编语言和宏汇编的基本概念,80X86CPU的指令系统和寻址方式;介绍汇编语言程序格式、伪操作和上机全过程。通过实际例子,详细叙述顺序、分支、循环、子程序等基本程序结构以及程序设计的基本方法和技巧。学习这门课程,应达到以下几个要求: ①掌握汇编语言的基本理论知识和有关概念;掌握用汇编语言编写源程序的基本原则、方法和技巧; ②具有阅读,分析汇编语言程序的能力; ③通过上机实践,能够熟练地掌握汇编语言程序的编辑、汇编、连接、运行 过程及debug工具的调试手段。

《汇编语言程序设计》 实验指导书2012.5.24)

《汇编语言程序设计》课程实验指导书(Assembly Language Programming) 计算机科学与技术系 杨定安编写 佛山科学技术学院 2012 年 5 月

摘要 汇编语言实验主要使学生掌握DEBUG或DEB2000调试程序中各命令的使用方法,掌握MASM汇编程序对汇编语言源程序进行编辑、汇编、连接、装配、调试到运行的上机操作方法。本实验大纲要求学生熟练掌握汇编语言指令练习、顺序程序设计、分支程序设计、循环程序设计和子程序设计。

目录 实验一宏汇编程序(MASM)及汇编语言上机过程 (4) 实验二程序的基本结构练习 (8) 实验三汇编编译器的使用及程序调试 (11) 实验四分支程序设计 (17) 实验五循环程序设计 (19) 实验六子程序设计 (23) 实验七汇编语言与C语言混合程序设计 (29)

实验一宏汇编程序(MASM)及汇编语言上机过程 一、实验目的 1.通过实验了解和熟悉微机系统的配置。 2.学习在DEBUG状态下输入汇编源程序的方法。 3.初步掌握调试(在DEBUG状态下)的过程。 二、实验原理 1. 本实验要求在DEBUG状态下输入汇编源程序,并用DEBUG命令进行调试。用单步跟踪的方法验证指令的功能。 2. 以下是给定的参考程序,并在实验时在每条指令的“;”符号右边按要求填写指令的执行结果。 注:⑴微机进入DEBUG状态下之后,一切立即数和地址数据均被默认为十六进制数,在输入时数的后面不加后缀“H”; ⑵在DEBUG状态下执行程序时,“INT 20H”指令可使系统执行完该指令前的程序时返回到“-”提示符状态,并且恢复CS和IP寄存器原来的值。 三、实验仪器 微机一台,U盘一块。 四、实验步骤 1.开机和关机操作顺序 开机:先打开微机外部设备电源开关,如显示器,最后打开主机电源开关。 关机:与开机相反,先关掉主机电源开关,然后关闭所有外设的电源开关。 2. 装入DEBUG程序 若计算机系统启动正常,可以进入MASM文件夹或MASM5文件夹从磁盘上调用DEBUG,程序到内存。如是WINDOWS环境下,先运行CMD命令,然后运行CD MASM命令,再运行DEB2000命令。一般C盘上装有DEBUG和DEB2000软件,若没有,可以用复制命令从其它盘拷贝过来,然后从装有DEBUG和DEB2000软件的磁盘上调用DEBUG和DEB2000软件程序。例如: C :\MASM> DEB2000↙(↙回车符) -(-DEBUG 提示符) 当显示器出现提示符“-”时,说明已进入DEBUG状态,这时,可用DEBUG命令进行操作。 4. 用DEBUG的Register命令检查所有寄存器内容,并作记录。命令格式: R [寄存器名] 检查和修改寄存器内容的命令R,它有三种方式: 1)显示CPU内部所有寄存器内容和标志位状态;格式为:-R R命令显示中标志位状态的含义如下表所示: 标志名置位复位

《汇编语言程序设计》实验教学大纲

《汇编语言程序设计》实验教学大纲 课程名称:汇编语言程序设计实验 学时:16 学分:非独立,与《汇编语言程序设计》配合 课程性质:专业选修课 开课对象:计算机科学与技术(师范)专业学生 一、教学目的与要求 本课程是与《汇编语言程序设计》配合的非独立开设的实验课程。汇编语言程序设计是计算机科学与技术专业的重要专业基础课之一,实验与理论密切配合。《汇编语言程序设计实验》最重要的任务是发展学生的智力,即编程、上机调试能力,具体到教学内容上则是重在使学生掌握理论教学中的重点和难点,对汇编语言指令能熟练掌握,提高自身的编程能力,加强素质教育。注重从事理论研究、实验工作的能力和严谨的科学作风的培养,提倡创新精神。 本课程以Intel 80x86指令系统和微软MASM展开汇编语言程序设计实验。通过本课程的学习,加深对汇编语言基础理论、基本知识的理解,熟悉win汇编的编程开发环境和编程操作运行步骤,较熟练地掌握汇编语言编程能力,培养学生严谨的工作作风和实事求是的科学态度,为学习后继课程和未来的科学研究及实际工作打下良好的基础。 二、主要仪器设备 PC兼容计算机、MASM软件、DEBUG调试软件、EDIT等文本编辑软件。 三、实验项目设置与内容

四、课程考核 平时成绩占40%,实验报告60%,最后以占20%计入《汇编语言程序设计》总分。 五、实验指导书及主要参考书 [1] 沈美明等编著. IBM-PC汇编语言程序设计实验教程. 清华大学出版社,1992. [2] 钱晓捷主编. 汇编语言程序设计. 电子工业出版社,2003. [3] 徐爱芸,向华.汇编语言程序设计教程与实验.清华大学出版社,2007. 执笔人:陈英撑审定人:胡永良、管功湖

汇编语言程序设计考试大纲

汇编语言程序设计考试大纲 -、课程性质及其设置目的和要求 (-)课程的性质、地位与任务 汇编语言程序设计课程在高等教育自学考试计算机及应用专业(专科)考试计划中是一门专业基础课程,是为培养计算机应用专科人才的需要而设置的。 本课程的任务是为《微型计算机及其接口技术》、《操作系统概论》等后继课程提供必要的汇编语高及程序设计的基础知识。对训练应考者掌握程序设计技术,熟悉上机操作和程序调试技术都有重要作用。为从事计算机的开发应用提供了强有力的编程工具。 (二)本课程的基本要求 通过本课程的学习要求应考者: 1.系统地获得计算机(以8086CPU的微型机作为典型机)指令系统的常用指令及寻址方式的概念、功能、书写格式及其在编程中的应用。 2.系统地获得汇编语言语句、源程序的书写格式和规定,伪指令语句的概念、功能、书写格式,宏指令定义、调用及其在编程中的应用。 3.系统地获得汇编语言程序的基本结构形式及其程序设计的基本方法和技巧。 4.熟练掌握汇编语言程序的上机调试和运行。 (三)本课程与有关课程的联系 1.有关数制、二进制算术运算和逻辑运算等知识,应在先修课程《模拟电路与数字电路》、 《计算机组成原理》中学过。 2.有关输人/输出、中断、接口电路及其编程,本课程不作介绍,全部列入“微型计算机及其接口技术"课程中。二、课程内容与考核目标 第l章基础知识 (-)课程内容

1.计算机系统基本组成 2.8086汇编语言编程的硬件模型 3.汇编语言程序设计的特点和作用 (二)学习目的和要求 本章总的要求是:熟练掌握有关计算机系统的基本概念、基本组成。熟练掌握8086汇编语言编程的基本硬件模型。理解学习汇编语言程序设计的目的,了解汇编语言程序设计的特点和作用。 本章的知识点中,重点是8086汇编语言编程的硬件模型。 (三)考核知识点和考核要求 1.计算机系统基本组成。应达到“识记”的层次。 1.1有关计算机的基本概念和基本组成。 2. 8086汇编语言编程的硬件模型,应达到“综合应用”的层次。 2.l 8086微处理器内部数据寄存器组和段寄存器组的各寄存器名称、符号、位数和功能,指令寄存器IP的位数和功能。 2.2 8086的程序状态字寄存器PSW的状态标志位和控制标志位的名称、符号和功能,状态标志的状态符号的表示。 2.3 8086存储器的组织形式和特点,存储器地址的分段,存储单元物理地址的形成方法。 3.汇编语言程序设计的特点和作用,应达到“识记”的层次。 3.1学习汇编语言程序设计的目的和意义。 3.2汇编语言程序设计的特点和作用。 第2章 8086的寻址方武和指令系统 (-)课程内容 1. 寻址方式的定义 2. 与数据有关的寻址方式 3. 与转移地址有关的寻址方式 4. 指令和指令系统的定义

《汇编语言程序设计》实验教学大纲

《汇编语言程序设计》实验教学大纲 课程性质:专业基础课先修课程:高级语言程序设计 总学时:18 实验个数:6 开课学院:皖江学院适用专业:电子信息工程 大纲执笔人:大纲编写时间:2006年8月 教研室主任审核:教学院长审定: 一、实验的性质与任务 本课程实验为专业基础必修课。是《汇编语言程序设计》课程的配套实验课。 授课对象是电子信息工程专业的本科生。 汇编程序对开发要求高速运行的高级应用程序有重大意义,学习汇编程序有利于理解计算机系统中软件和硬件的关系。而“汇编语言程序设计”是一门实践性很强的课程,只有通过上机实践才有可能掌握程序设计技术并使学生达到较高的水平。本课程实验一方面为“汇编语言程序设计”课程的实验教学服务;另一方面也是为后续课程(《微机原理与接口技术》和《单片机原理》等)打下坚实的基础。 本课程实验的主要任务是让学生掌握利用汇编语言进行程序设计的方法,提高学生的汇编语言程序的设计能力以及上机修改、调试程序的动手能力。 二、实验目的与要求 本课程是《汇编语言程序设计》一课的配套课程,要求通过实验掌握CPU的指令系统以及汇编语言程序设计的方法。在学生学完本课程后能较好地理解微型计算机系统的工作原理,掌握内存的组织结构、指令和伪指令,多模块程序设计等。并能通过自编软件对计算机及接口设备进行控制,以达到控制计算机应用于实际控制过程的目的。

三、实验项目及内容提要

四、实验报告的形式 根据实验结果和现象用专用实验报告纸书写出书面的实验报告。 五、本课程考核方式、方法及实验成绩评定方法 实验成绩以学生完成实验的质量和实验报告的质量,作为评分标准。 六、实验应配套的主要仪器设备及台(套)数 微型计算机系统:60套(需要再额外备用1套)。 七、使用教材与教学参考书目 【使用教材】 《汇编语言程序设计实验指导书》,自编教材,在不断更新。 【教学参考书目】 1、苏帆,汇编语言程序设计,华中科技大学出版社. 2005年2月,第1版。 2、沈美明,温冬婵编著,IBM–PC汇编语言程序设计,清华大学出版社,2001年8月,第2版。

上海大学汇编语言程序设计复习提纲

《汇编语言程序设计》复习提纲 第二章 80X86 计算机组织 1.计算机的硬件构成5部分,总线的分类与名称。 2.中央处理机重点是 80X86 寄存器组 * 程序可见的寄存器与程序不可见的寄存器 寄存器分类: 通用寄存器— AX,BX,CX,DX,BP,SI,DI 16位 专用寄存器— IP,SP,FLAGS 16位 段寄存器— CS,DS,ES,SS 16位 flags条件码标志位名称及作用 3.存储器—存储器的编址方式,存储单元的地址,数在存储器中的存储格式4.存储器分段和物理地址的形成: (1)在 8086/8088 系统中,存储器是分段组织的,存储器物理地址计算公式。(2)在1M 字节内存空间中,若各段互不重叠且每段长均为64K,可以分成多少个段。小段的长度16字节。 (3)段内偏移地址是几位二进制数,每段最长为多少字节。 (4)如果存储器地址表示为2F00:1400,指出该存储单元段地址,偏移地址和物理地址。 (5)程序分段与四个段寄存器关系。 (6)在程序执行过程中,代码段的段地址存放在哪里?偏移地址存放在哪里?堆栈段的段地址存放在哪里,栈顶数据的偏移地址存放在哪里? (7)写出指令存放单元物理地址的计算公式,栈顶数据物理地址的计算公式。(8)写出可用于寻址的通用寄存器名。 第三章 80X86的指令系统和寻址方式 一.寻址方式与物理地址计算 1.七种寻址方式 熟练掌握8086/8088与数据有关的七种寻址方式,以及相应的存储单元物理地址的计算,能指出各寻址方式的名称。 判断指令语句的正确性 A. PUSH DS B. SUB AX,[SI+DI] C. XOR AX,VAS[BX] ;VAS字变量 D. MOV DH,100 E. OR AX,[CL] F. MUL VAS ;VAS是字变量 G.INC CX H. MOV DX, [BX+BP] ;错,两个基址 I. SBB CX,VAS[BP+DI] ;正确,在数据区取数据 J. POP ES K. NOT DX

汇编语言程序设计实验教学大纲

计算机系教学大纲汇编语言程序设计实验 《汇编语言程序设计》实验大纲 课程代码:8617 课程名称:汇编语言程序设计实验 授课对象:计算机科学与技术及应用类专业 课程性质:汇编语言程序上机实验的内容与计算机硬件特性联系紧密。是一门软件和硬件结合的实验。通过上机实验的学习,使学生不仅能加深理解和巩固理论课所学的知识,而且还能了解计算机的底层软件的工作过程,为今后学习后续课程打好良好的基础。 教学目的:通过本课程的学习,应使学生掌握汇编语言程序设计的基本方法和技术,为后期专业课奠定基础,并理解如何用汇编语言解决某些基础的代码优化、软件集成接口等问题。通过汇编语言程序的设计和调试,使学生从根本上认识和了解计算机的内部工作原理,深入体会、理解计算机是如何实现各种复杂运算与操作的,为学生奠定设计系统软件、应用软件的一定基础,培养学生软件研制的基本技能。 教学原则和方法: 1、编程思想与高级语言程序设计方法相结合,但在具体实现过程中又要区别于高级语言,例如分支结构的实现; 2、整个教学过程本着深入贴近硬件的原则。 课程总学时:总学时数为20学时。 课程教学内容要点及建议学时分配: 实验1 汇编语言上机基本操作(2学时) 【实验目的】 1、学习及掌握汇编语言源程序的书写格式和要求。 2、学会使用EDIT、MASM、LINK等软件工具。 3、熟练掌握在计算机上编辑、汇编、连接及运行汇编语言程序的方法。【实验内容】 1、汇编语言源程序的建立 程序要求是:在屏幕上显示“Hello, world !”。设定源程序的文件名为ABC.ASM。 在DOS状态下键入以下命令: C:\MASM> EDIT ABC.ASM 程序输入完毕后一定要将源程序文件存盘,以便进行汇编及连接,也可以再次调出源程序进行修改。 2、将源程序文件汇编成目标程序文件 - 80 -

汇编语言程序设计教学大纲

汇编语言程序设计教学大纲 课程概述 “汇编语言程序设计”是继“高级语言程序设计”之后的又一门计算机语言程序设计课程,但讲解的是面向处理器的低级语言。该课程一方面加强学生的高级语言编程能力;另一方面配合“计算机组成原理”和“微机原理及接口技术”课程,从软件角度理解计算机工作原理;同时,还作为自动控制等与硬件相关应用领域的程序设计基础,以及为“嵌入式系统”、“操作系统”、“编译原理”等课程提供基础知识。 本课程以Intel 80x86指令系统和微软MASM展开汇编语言程序设计方法。课程要求学生系统学习80x86整数指令系统、进一步理解计算机工作原理;要求学生掌握汇编语言源程序语句和格式,能够利用顺序、分支、循环和子程序等结构解决常规问题。本课程配有上机实践环节,要求学生具有阅读、编辑、汇编和调试汇编语言程序的能力。 授课目标 “汇编语言”课程主要基于32位Windows控制台,以IA-32处理器常用指令和微软MASM展开汇编语言程序设计方法。 编程实践以普通32位PC机为唯一硬件条件,结合MASM开发软件包进行。 课程从开发环境的熟悉、MASM开发方法的练习、开发过程的熟练掌握,逐步掌握常用指令应用、顺序、分支、循环、子程序的编程。 课程大纲 第1周汇编语言基础 1-1 硬件组成 1-2 程序格式 1-3 开发过程 第1周测试 第2周数据表示 2-1 常量表达 2-2 变量定义

2-3 变量应用 第2周测试 第3周数据寻址 3-1 立即数寻址 3-2 寄存器寻址 3-3 存储器寻址 第3周测试 第4周通用数据处理指令4-1 数据传送类指令 4-2 算术运算类指令 4-3 位操作类指令 第4周测试 第5周顺序程序结构 5-1 移位实现乘法 5-2 自然数求和 第5周测试 第6周分支程序结构 6-1 转移指令 6-2 单分支结构 6-3 双分支结构 第6周测试 第7周循环程序结构

《汇编语言程序设计》课程实验大纲1

《汇编语言程序设计》实验教学大纲 课程编号:11141970 适用专业:计算机科学与技术、电子信息工程 学时数:9 学分数:0.5 执笔人:宋敦波 编写日期:2009年9月 一、课程的性质和目的 汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而在对于程序的空间和时间要求很高的场合,汇编语言是必不可少的,至于对于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可。 每一系列的处理器都有自己独特的操作指令集。Intel公司生产的8086系列微处理器在微型计算机中使用最广泛。基于8086系列机型的汇编语言程序设计,对学习和使用微型计算机有着广泛的使用价值。 从1981年8088被IBM选中做个人计算机的处理器,随后8086系列的增强版本有8086、80286、80386、80486、Pentium(or 586)、Pentium系列,每个版本都提供了更多的操作和更快的速度。虽然机器的发展速度远远超出了人们的想象,但汇编语言,一门和机器硬件直接打交道的语言,是永远都不会过时的。相反,它有着极强的生命力,随着硬件的发展不断的发展和完善。每当新版本CPU推出后,汇编语言也扩展自己的指令对新硬件提供支持(如从8086到80286提供了对虚模式的支持,从80286到80386对寻址范围的扩展),但汇编语言的基本指令集没有变,这就对学习汇编语言提供了极大的方便,学生在对汇编的基本指令的学习中就可抓住汇编语言的精髓。更重要的是,程序设计的基本思想是不会变的。在对汇编语言基本指令的学习中掌握了程序设计的基本思想,则拥有了解决问题的方法,在以后的工作中,通过查阅资料等方式了解硬件的新特性,就可以完成实际工作。 二、课程的教学内容要求及学时分配 实验一、熟悉指令系统掌握汇编上机过程(3学时) 实验目的: 1、熟悉8088/8086的指令书写格式、功能。 2、能熟练运用数据传递、算术、逻辑三类指令 3、掌握汇编、连接、运行汇编程序的全过程,并能检查修改程序简单错误。 4、学习数据传送、逻辑、移位等指令的用法。 内容要求: 1、编写程序,实现功能如下:将字变量 W(初值为12ABH) 的值转换为十六进 制字符串,结果存储于字节数组 String中。

《汇编语言程序设计》教学大纲

《汇编语言程序设计》教学大纲 课程性质:专业基础课程先修课程:高级语言程序设计 总学时:50 理论学时:32 实验学时:18(有课程实验) 开课学院:皖江学院适用专业:电子信息工程 大纲执笔人:教学院长审定: 教研室主任审核: 一、说明 1、课程的性质、地位和任务 本课程为专业基础必修课。授课对象是电子信息工程专业的本科生。 汇编语言是计算机能够提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而在对于程序的空间和时间要求很高的场合,汇编语言是必不可少的,至于对于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可。“汇编语言程序设计”是《微机原理与接口技术》、《操作系统》等核心课程的必要先修课,而且对于训练学生掌握程序设计技术,熟悉上机操作和程序调试技术都有重要作用。通过本课程的学习,学生应掌握汇编语言程序设计的方法,掌握中断调用和系统功能调用等高级程序员技术,通过实验应能独立上机调试和编制较大型的汇编语言程序,为很好地使用计算机编程及后续课程打下扎实的基础。 2、课程教学的基本要求 (1)了解汇编语言的特性及其编程技术,掌握汇编语言程序设计的方法。 (2)建立起“机器”和“程序”、“空间”和“时间”的概念。 (3)能独立上机调试和编制汇编语言程序。

(4)对于汇编语言的模块化程序设计要求熟练掌握。 (5)坚持课后练习是教好、学好本门课程的关键。在整个教学过程中,将根据正常教学进度布置一定量的课后作业,要求学生按时完成。 3、本课程的重点与难点 重点:本课程的有关基本理论和基本概念,指令系统中的常用指令及其功能,存储器的组织方式和寻址方式,CPU内部寄存器的结构,汇编语言程序设计的方法和上机操作,常用的中断功能调用。 难点:存储器的组织方式和寻址方式,汇编语言程序设计的方法和上机操作,常用中断功能调用的应用。 三、本文 第一章汇编语言基础知识

《汇编语言程序设计》实验教学大纲

《汇编语言程序设计》实验教学大纲课程号:080503101301 课程类别:专业基础课 适用专业:计算机科学与技术专业 课程总学时:34 实验学时:17 大纲编写人:\\\ 编写时间:2010年6月18日 【实验目标要求】 《汇编语言程序设计》是计算机科学与技术专业必修的专业基础课程。汇编语言程序设计实验的目标是学习汇编语言程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法,汇编语言程序实验的内容与计算机硬件特性联系紧密。通过上机实验的学习,使学生不仅能加深理解和巩固理论课所学的知识,而且还能了解计算机的底层软件的工作过程,为今后学习后续课程打好良好的基础。 【实验学习要求】 认真阅读《IBM-PC汇编语言程序设计》教材中与实验相关的章节内容,提前做好实验预习,做到在每个实验前明确实验目的、掌握实验的基本内容及操作方法;在实验中正确使用实验设备,认真观察、分析实验结果;实验后要根据要求做好总结,上交实验报告。具体要求如下: 1.上机前,要作好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。 2.上机时,要熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序、调试程序)的使用方法;在程序调试过程中,有意识的学习及掌握Debug 的各种操作命令,以便掌握程序的调试方法及技巧;程序调试完后,须由实验辅导教师在机器上检查运行结果。 3.上机后,应写出实验报告,及时总结。 4.遵守实验室的规章制度,爱护实验设备。

【实验教材及主要参考资料】 教材: 1.《IBM-PC汇编语言程序设计(第二版)》,沈美明、温冬蝉编著,清华大学出版社,2001.8。 2.《IBM-PC汇编语言程序设计实验教程》,沈美明、温冬蝉、张赤红编著,清华大学出版社,2008.2。

相关文档
相关文档 最新文档