文档库 最新最全的文档下载
当前位置:文档库 › 程序设计语言简述.

程序设计语言简述.

程序设计语言简述.
程序设计语言简述.

第三章程序设计语言简述

3.1 高级程序设计语言的实现

从程序设计语言的发展可以看到,计算机只能根据机器语言指令来执行程序,高级语言程序必须通过翻译变成机器语言程序,这个工作一般是由翻译程序自动完成的。把一种语言翻译成另一种语言的程序叫做翻译器。把高级语言程序翻译成机器语言程序一般有两种做法:编译和解释,相应的翻译工具也分别叫做编译程序和解释程序。

3.1.1 编译程序的工作原理

一个高级语言程序当采用编译程序处理时,输入到编译程序的高级语言源程序经编译后得到目标码程序,但目标代码还不能立即装入机器执行,因为一般情况下它是不够完整的。

所以,编译后得到的目标模块还需进行连接。连接程序找出需要连接的外部模块并到模块库中找出被调用的模块,调入内存并连接到目标模块上,形成可执行程序。

执行时,把可执行程序加载到内存中合适的位置(此时得到的是内存中的绝对地址),就可执行了。

程序的编译与执行

编译型语言由于可进行优化(有的编译程序可作多次优化),目标码效率很高,是目前软件实现的主要方式。常见的程序设计语言,如C/C++、Pascal、Ada、Fortran等都是编译型语言。用这些语言编写的源程序,都需要进行编译、连接,才能生成可执行程序。这对于大型程序、系统程序、频繁使用的支持程序来说是十分有利的。

3.1.2 高级语言程序的解释执行

解释执行需要有一个解释程序,它将源代码程序逐句读入,通过一边分析源程序一边执行程序。

解释器不大,工作空间也不大,能根据程序执行情况决定下一步做什么(人工智能经常是这样的)是它的优点,不过,解释执行难于优化、效率较低,这是该类语言的致命缺点。

3.2 高级程序设计语言的基本特征

计算机程序的基本构成要素有常量、变量、表达式、语句和函数等。

3.2.1 常量、变量、表达式

程序是用来处理数据的,因此,数据是程序的重要组成部分。

常量

所谓常量是指在程序运行过程中其值始终不发生变化,通常就是固定的数值或字符串。

变量

变量是指在程序运行过程中其值可以发生变化的量。在程序设计语言中,变量也可以用指定的名字来代表,换句话说,变量由两部分组成:变量的“标识符”(又称“名字”),以及变量的“内容”(又称“值”)。变量的内容在程序运行过程中是可以变化的。

变量在使用前需要首先进行定义。因为变量代表不同的值,所以在定义时只说明类型就可以了,数据类别指明了保存在变量中的数据的类别。

表达式

表达式是常量、变量、函数调用或者由它们和运算符组成的序列。

3.2.2 语句和函数

一个程序的主体是由语句组成的,语句是构成程序的基本单位,语句决定了如何对数据进行处理并且根据运算结果决定程序执行下一步的语句。在高级程序设计语言中语句分两大类:可执行语句和说明语句。

可执行语句是指那些在执行时,要完成特定的操作(或动作),并且在可执行程序中构成执行序列的语句。例如赋值语句、结构控制语句、输入输出语句都是可执行语句。

说明语句,也称为非执行语句或不可执行语句,不是程序执行序列的部分。它们只是用来描述某些对象(如数据、子程序等)的特征,将这些有关的信息通知编译系统,使编译系统在编译源程序时,按照所给的信息对对象作相应的处理。

赋值语句

变量可以在使用过程中予以赋值。赋值是用一个等号来连接一个变量名和一个值。变量名写在等号的左侧,欲赋给变量的值写在等号的右侧,表示将值赋给变量,此时等号称为赋值符号。

输入输出语句

输入输出语句在某些呒队镅灾杏卸ㄒ澹械脑蛎挥校鏑语言,是通过输入和输出函数来完成。

程序中的一条语句对应着计算机的一条命令(用一条或多条指令来实现)。一个赋值语句就是一条赋值命令。程序就是有多个语句组成的序列,但由于程序并不是简单的顺序执行,常常要根据判断转到不同的地方运行或在一定的部位重复运行,因此,在程序语言里还要有一些控制结构语句,以便对程序的走向实施控制。因此,语句的主要作用就是对程序进行控制,控制语句是语言中的主要部分。

程序的控制结构语句

程序约定自上向下自左向右地执行,也就是顺序地执行语句(或表达式)。如果只能这样,计算机无异于计算器。计算机之所以能自动计算,就是因为它能通过判断将程序转到应该执行的地方。人们就是通过巧妙地安排控制转移,使计算机实施算法。

控制语句的数量不算多,很容易就记住了。控制语句可以分为下面几类:

? 选择控制语句;

? 循环控制语句;

? 转移控制语句;

? 子程序调用和返回语句等。

最基本的程序控制有以下三种:顺序执行、分支控制和循环控制。这三种执行控制的任意组合和重复、嵌套就可以描述任意复杂的程序。

函数

函数是程序设计语言也就是系统提供给用户的一系列现成的程序,用户只需要给出参数,引用这个函数即可。有时函数也可以是用户自己编制的一段子程序,在C语言就是这样,把所有的子程序都用函数来实现

3.3 面向过程式语言及基本特征

3.3.1 过程式语言与过程程序设计

一、过程语言

过程式语言,也叫命令式语言或强制式语言,它是通过指明一列可执行的运算及运算的次序来描述计算过程的语言。

命令式语言以冯·诺依曼式计算机体系结构为背景。机器语言与汇编语言是最早问世的命令式语言。FORTRAN,ALGOL,COBOL,PASCAL,C,Ada等高级语言也属过程式语言,其变量对应于存储单元,对变量的访问就是对相应存储单元的访问。各个语句在程序中的顺序以及转向语句等控制语句则明确规定了机器的执行步骤,这就是冯·诺依曼式体系结构的思维方式在程序设计中的反映。

高级语言中每种语句几乎都要翻译成若干个低级机器指令。由于存储器空间有限,几乎所有程序都要用重复语句重复执行某些语句,语句的重复执行使过程式语言程序的层次性受到很大的影响。

过程式语言程序的本质是重复地、按步地计算低级(非抽象)值并将之赋给变量(对象),这就迫使程序人员去关心比较低级的细节,而这不适用于设计复杂算法。因此,几十年来过程式语言一直向着隐蔽低级机器属性、提高程序层次与抽象性的方向发展。

但过程式语言无论如何发展,都是基于冯·诺依曼式体系结构的。例如,几乎所有命令式语言都要涉及全程变量、传地址参数(或变量参数、引用参数等),它们一方面可以提高程序的执行效率,另一方面也降低了程序的层次性与抽象性,使程序难以编写、阅读、分析与修改,也使得程序的正确性证明难以进行。随着在非冯·诺依曼式体系结构、基础理论、元器件、人工智能与软件工程等方面的不断发展,已有一些非过程式语言问世,函数式语言与逻辑语言就是其中的代表。但几乎每种非过程式语言其中都或多或少要掺入一些具有过程式语言特征的成分。而且,由于非过程式语言在效率、应用等方面所存在的诸多问题,过程式语言在相当长的时期内仍会占据主导地位。

二、过程式程序设计

使用过程语言设计、编写和测试问题求解程序的活动称为过程式程序设计。过程式程序设计中主要涉及到数据结构的确定、求解算法的设计、代码文档的组织和测试等活动。

前面在数据结构概述里我们已经知道,程序的处理对象是数据,这些数据或者是简单数据元素,或者是由一些数据元素构成的复杂数据,这些数据的逻辑结构统称为数据结构。因此,确定数据结构是过程式程序设计的首要任务。简单数据元素通常有整数、实数、布尔值、字符、枚举值和指针等,复杂数据有字符串、数组、记录、集合、链表、树和图等。为描述数据结构,程序中需要定义数据类型和变量。数据类型可分为简单数据类型和结构数据类型,分别对应于简单数据元素和复杂数据。根据变量在程序中的作用域的大小,变量可分为局部变量和全局变量。局部变量的有效范围只在程序的一小部分,全局变量则在程序的任何地方都可以进行存取。为提高程序的可读性和可修改性,程序中应该尽可能地减小变量的作用域。

求解算法的设计是指利用程序语言提供的控制结构描述求解步骤的活动。过程语言均提供顺序、选择和循环等三种控制结构。顺序结构是指按先后顺序从前到后执行的语句序列。选择结构是指根据判定条件控制一些语句是否执行的语句。循环结构是指可重复执行一组语句(称为循环体)的程序语句。在过程程序设计中,主要是用程序语言描述解决问题的步骤即——算法。而采用的程序设计方法比较多是自顶向下、逐步求精的程序设计方法。其基本思想是从最能直接反映问题体系结构的概念出发,逐步精细化、具体化、逐步补充细节,直到可用程序设计语言直接描述为止。

3.3.2 过程式语言

采用高级语言编写的程序在不同型号的计算机上只需做某些微小的改动便可运行,只要采用这些计算机上的编译程序重新编译即可。

典型的过程式语言包括:

? FORTRAN语言

? ALGOL60语言

? P ascal语言

? BASIC语言

? C语言

3.4 面向对象语言及基本特征

3.4.1 面向对象的基本概念

到今天,结构化程序设计已无处不在,几乎每种程序设计语言都具备支持结构化程序设计的机制。然而,随着程序规模与复杂性的增长,程序中的数据结构变得与这些数据上的操作同样重要。在大型结构化程序中,一个数据结构可能被许多过程处理,修改此数据结构将影响到所有这些过程。在由几百个过程组成的成千上万行结构化程序中,这相当麻烦,并且容易产生错误。

从80年代中期开始,计算机科学的许多领域如程序设计语言、程序设计方法学、人工智能、数据库及操作系统等等,都出现了面向对象热。面向对象编程已成为90年代软件设计的趋势。

面向对象程序设计是当今众多的计算机语言中最具有特色且别具一格的一种程序设计范例,它与其它计算机语言的程序设计风格迥然不同。面向对象程序设计同样能满足结构程序设计特点的需要:可用于设计和维护越来越庞大和越来越复杂的程序。这些程序由于通过建立一致的、易于操作的实体,即对象,而更加模块化了。此外,面向对象语言打破了“数据”与“算法”之间的传统的二分法。它汇集了与同一种概念相联系的所有知识,其汇集方式有如烹调技术既包括佐料又包括加工方法一样。这种程序设计风格使软件变得易于扩展,并可实现软件的重复使用。

3.4.2 面向对象的程序设计语言

作为面向对象的程序设计语言必须具备四个基本的特征:抽象、封装、继承与多态性。

就目前程序设计的发展现状,常用的面向对象的程序设计语言有:Java、C++、Object Pascal等。使用C++作为程序设计语言的开发环境有Microsoft VisualC++、Borland C++等,使用Object Pascal作为程序设计语言的开发环境有Borland Delphi。

全国高等教育自学考试高级语言程序设计

全国高等教育自学考试高级语言程序设计 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

2001年10月全国高等教育自学考试高级语言程序设计(一) 试卷 第一部分选择题 一、单项选择题 (本大题共20小题,每小题1分,共20分) 在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。 1. C语言程序编译时,程序中的注释部分【】 A. 参加编译,并会出现在目标程序中 B. 参加编译,但不会出现在目标程序中 C. 不参加编译,但会出现在目标程序中 D. 不参加编译,也不会出现在目标程序中 2. 下列表达式的值为0的是【】 A. 3﹪5 B. 3/ C. 3/5 D. 3<5 3. 正确的C语言用户自定义标识符是【】 A. print B. float C. when?

D. random﹪2 4. 设int a = 3;则表达式a<1&& - - a>1的运算结果和a的值分别是【】 A. 0和2 B. 0和3 C. 1和2 D. 1和3 5. 下列叙述中,正确的是【】 A. 引用带参的宏时,实际参数的类型应与宏定义时的形式参数类型相一致 B. 宏名必须用大写字母表示 C. 宏替换不占用运行时间,只占编译时间 D. 在程序的一行上可以出现多个有效的宏定义 6. 下列保留字中用于构成循环结构的是【】 A. if B. while C. switch D. default 7. 与语句if(a>b)if(c>d)x = 1;else x = 2;等价的是【】 A. if(a>b){if(c>d) x = 1;else x = 2;} B. if(a>b){if(c>d) x = 1;} else x = 2;

汇编语言程序设计报告

实验一: 一、实验目的: 1. 学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2. 了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3. 掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4. 掌握DOS系统功能调用的基本方法。 二、实验原理 通过调用(INT 21H)表中的01h号功能号从键盘输入一个字符并回显到视频显示器上 三、实验内容及算法流程、源程序清单 实验内容:编写程序,从键盘输入一个字符并回显到视频显示器上。 源程序清单: 实验1.asm 实验1.obj 实验1.exe code segment assume cs:code start: mov ah,1 int 21h mov ah,4ch int 21h code ends end start 实验二:编写程序,显示一个字符Q 一、实验目的 1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2、了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4、掌握DOS系统功能调用的基本方法。 二、实验原理 通过调用(INT 21H)表中的02h号功能显示输出一个字符Y。

三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,显示输出一个字符Q。 源程序清单: 实验2.asm 实验2.obj 实验2.exe code segment assume cs:code start: mov ah,02 mov dl,'Q' int 21h mov ah,4ch int 21h code ends end start 实验三:编写程序,在屏幕上显示输出“I love DOTA” 一、实验目的 1、学习汇编语言源程序的编辑、汇编、连接、运行全过程。 2、了解汇编程序、连接程序、DOS系统装入和返回功能。掌握MASM、LINK的应用。 3、掌握汇编语言程序结构,熟悉汇编语言的一些常用语法规则,初步掌握汇编语言的开发过程。 4、掌握DOS系统功能调用的基本方法。 二、实验原理 考察通过调用(INT 21H)表中的0ah号功能显示输出字符串 三、实验内容及算法流程(流程框图)、源程序清单(要求在重要语句后写出注释) 实验内容: 编写程序,在屏幕上显示输出‘I love DOTA。 源程序清单: 实验3.asm 实验3.obj 实验3.exe data segment buf db 'I love DOTA.$'

高级语言程序设计综合复习资料-考试必备

C语言程序设计综合复习资料 要求掌握的章节: 第1章、第3章~第8章、 第10章(前4节)、第11章(前6节)重点章节: 第3章~第8章、第10章(前4节) 难点章节: 第8章、第10章(前4节) 考试题型: ①选择题(填空题)(20%) ②读程序题(40%) ③编程序题(40%)第1章C语言概述一、选择题 1.能将高级语言编写的源程序转换为目标程序 的软件是 A)汇编程序B)编辑程序C)解释程序D)编译程序 2.在一个C程序中 A)main函数必须出现在所有函数之前B)main 函数可以在任何地方出 现 C)main函数必须出现在所有函数之后D)main 函数必须出现在固定位 置 3.C语言中用于结构化程序设计的三种基本结 构是 A)顺序结构、选择结构、循环结构B)if、switch、break C)for、while、do-whileD)if、for、continue 4.C语言程序的基本单 位是 A)函数B)过程C)子例程 D)子程序 二、填空题 1.C语言程序总是从函 数开始执行。 2.C语言是种面向 _____的程序设计语言, 其程序的基本单位是。. 3.C语言中的函数由、 两部分组成。 4.结构化程序设计中所 规定的三种基本控制结 构是、和。 第3章数据类型、运 算符与表达式 一、选择题 1.下列关于C语言用户 标识符的叙述中正确的 是 A)用户标识符中可以出 现下划线和中划线(减 号) B)用户标识符中不可以 出现中划线,但可以出现 下划线 C)用户标识符中可以出 现下划线,但不可以放在 用户标识符的开头 D)用户标识符中可以出 现下划线和数字,它们都 可以放在用户标识符的 开头 2.C语言中基本数据类 型有 A)整型、实型、逻辑型 B)整型、字符型、逻辑 型 C)整型、实型、字符型 D)整型、实型、字符型、 逻辑型 3.在计算机中,一个字 节所包含二进制位的个 数是 A)2B)4C)8D)16 4.用8位无符号二进制 数能表示的最大十进制 数为 A)127B)128C)255D) 256 5.在计算机系统中,存 储一个汉字的国标码所 需要的字节数为 A)1B)2C)3D)4 6.在C语言中,char 型数据在内存中的存储 形式是 A)原码B)补码C)反 码D)ASCII码 7.十六进制数100转换 为十进制数为 A)256B)512C)1024D) 64 8.十六进制数7A转化 成八进制数是 A)123B)122C)173D)17 2 9.十进制数32转化成十 六进制数是 A)20B)ffC)10D)21 10.与十进制数511等 值的十六进制数为 A)1FFB)2FFC)1FED)2F E 11.以下选项中可作为C 语言合法整数的是 A)10110BB)0386C) 0XffaD)x2a2 12.以下选项中合法的实 型常数是 A)5E2.0B)E-3C).2E0D) 1.3E 13.依据C语言的语法 规则,下列()是用户定 义的合法标识符。 A)intB)INTC)jin#2D)8f 14.依据C语言的语法 规则,下列合法标识符是 A)ElseB)elseC)user$2D )5_examp 15.以下不正确的字符常 量是 A)'8'B)'\xff'C)'\887'D)'' 16.以下不正确的字符常 量是 A)'\0'B)'\xgg'C)'0'D)'a' 17.以下选项中不合法的 八进制数是 A)01B)077C)028D)00 18.下列运算符优先级最 高的是 A) B)+C)&&D)!= 19.若有说明: chars1='\067',s2='1';则 变量s1,s2在内存中各占 的字节数是。 A)11B)41C)31D)12 20.以下不能定义为用户 标识符的是 A)scanfB)VoidC) _3com_D)inte 21.在C语言中,可以 作为用户标识符的一组 标识符是 A)voiddefineWORDB)a s_b3_224Else C)Switch-wercaseD)4b DOSIG 22.若有:intx=1,n=5;则 执行语句x%=(n%2)后, x的值为 A)3B)2C)1D)0 23.设所有变量均为整 型,则表达式 (a=2,b=5,a++,b++,a+b) 的值是

00342高级语言程序设计(一)考试说明

00342高级语言程序设计(一) 一、本课程使用教材、大纲 高级语言程序设计(一)课程使用的教材为《高级语言程序设计》 迟成文编著、经济科学出版社、2007年第一版。 二、本课程的试卷题型结构及试题难易度 1、试卷题型结构表 四个认知层次在试卷中所占比例大致分别为:识记占20%、领会 占30%、简单应用占30%、综合应用占20%。 3、试卷难易度大致可分为“容易、中等偏易、中等偏难、难”。根据 课程的特点,每份试卷中,不同难易度试题所占的分数比例大致 依次为易占30分、中等偏易占30分、中等偏难占20分、难占 20分。 三、各章内容分数的大致分布

五、各题型范例及解题要求 1.单项选择题 要求:在下列每小题的四个备选答案中选出一个正确的答案,并将其字母标号填入题干的括号内。 例:组成C语言程序的是(B ) A.过程B.函数C.子程序D.主程序和子程序 2.填空题 函数中的形参和调用时的实参都是变量时,传递方式为________。答案:值传递方式 3.程序填空题 例:输入10个整数存入一维数组,再按逆序重新存放后再输出。 main( ) { int i, j, a[10], t, *p; for(i=0; i<10; i++) scanf("%d", __________ ); for(i=0, j=9; i

2位数计算器程序-汇编语言课程设计

信息学院课程设计题目:2位数计算器程序设计 __ 姓名: __ _____ 学号: ____ ___ 班级: 课程:汇编语言 ________ 任课教师:侯艳艳 ____ 2011年12月

课程设计任务书及成绩评定

目录 摘要 (2) 1.设计目的………………………………………………………………………………………………?2 2.概要设计………………………………………………………………………………………………?3 2.1系统总体分析…………………………………………………………………………?3 2.2程序流程图 (3) 3.详细设计......................................................................................................? (4) 3.1主程序及子程序说明 (4) 3.2程序代码编写 (4) 4.程序调试 (6) 4.1运行界面分析 (6) 4.2算法的分析 (6) 4.3调试过程及分析 (6) 5.心得体会 (7) 5.1设计体会...................................................................................................? (7) 5.2系统改进...................................................................................................? (7) 参考文献 (8)

汇编语言程序设计报告模板总结模板计划模板.docx

《汇编语言》课程设 计报告 专业计算机科学与技术 学生姓名张竹青 班级Z计算机 151 学号1560704132 任课老师王志宏 完成日期2017年12月29日

目录 1 概述 (1) 1.1 设计目的 (1) 1.2 设计内容 (1) 2 系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (1) 2.3 开发环境 (2) 3 系统概要设计 (2) 3.1 系统的功能模块划分 (2) 3.2 系统流程图 (3) 4 系统详细设计 (4) 4.1 界面设置 (4) 4.2 选择算法设置 (4) 4.3 十进制转换设置 (4) 5 测试 (5) 5.1 测试方案 (5) 5.2 测试结果 (5) 6 小结 (6) 参考文献 (7)

实现加减乘除四则运算的计算器 1 概述 1.1 设计目的 使用汇编语言,通过实现简单计算器的一般功能,如加、减、乘、除的计算来 了解并掌握 DOS系统功能的调试方法,学会画出编程的具体流程图,同时在程序 设 计过程中熟悉各种指令的应用和意义,以及如何进行上机编辑、汇编、连接和调试。 本课程设计也是对课堂上所学的基本理论知识和程序设计方法的巩固和深化, 提高我们的编程思想、分析问题和解决问题的综合应用能力,能够编写较复杂的应 用程序,最终达到熟练地掌握结构化程序设计技术和编写汇编源程序的基本方法的 目的。 1.2 设计内容 设计一个能实现加、减、乘、除计算的程序,要求该程序接受从键盘输入的十 六进制数,当程序执行时需在文件名后直接跟上计算表达式,每当读到一个有效的 表达式时对表达式进行相应的运算后,输出用十进制数或十六进制数表示的运算结果,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2系统需求分析 2.1 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单的加减乘除四则运算的 计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则 运算。具体功能如下: (1)调用中断把要做运算的两个数输入到屏幕上并用程序将他们存储起来 (2)判断用户所输入的运算是四则运算中的哪一种运算 (3)判断运算过程中是进位还是借位 (4)选择用何种输出方式 (5)实现清屏 2.2 主体功能 要求该程序接受的是十六进制数,执行相应的计算后,计算结果以十六进制数 或十进制数输出。本设计的使用说明如下: (1)按照提示选择数字 1,2,3,4 (2) 1: ADD 加法 (3) 2: SUB 减法 (4) 3: MUL 乘法

《高级语言程序设计》答案

1. 输入两个整数,要求用两个函数求出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。#include int main() { int i,j,t; int max(int,int); int min(int,int); scanf("%d%d",&i,&j); if(i int main() { int max4(int,int,int,int); //对max4的函数声明 int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); //输入4个数 printf("max=%d\n",max4(a,b,c,d));//调用4个数中的最大者 return 0; } int max4(int a,int b,int c,int d) //定义max4函数 { int max2(int,int); //对max2的函数声明 return max2(max2(max2(a,b),c),d); //调用max2把作为函数值带回main函数} int max2(int a,int b) { return(a>b?a:b); //返回条件表达式的值,即a和b中的大者 } 3. 用递归调用的方法求5!。 #include int main() { int fac(int); int n; scanf("%d",&n);

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

汇编语言程序设计大纲

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

C语言程序设计概述

C语言程序设计概述 1.算法的描述有哪些基本方法? 2.C语言程序的基本结构是怎样的?举一个例子说明。 3.C语言有什么特点? 4.指出合法与不合法的标识符命名。 ABl2 leed_3 a*b2 8stu D.K.Jon EF3_3 PAS if XYZ43K2 ave#xy 762 #_DT5 C.D 5.说明下列Turbo C热键的功能。 F2 F10 F4 Ctrl+F9 Alt+F5 6.在Turbo C方式下输入并运行下列程序,记录下运行结果。 (1)main( ) {printf(″**************************\n″) printf(″welcome you \n″) printf(″very good \n″) printf(″**************************\n″) } (2) main( ) {int a,b,c,t; printf(″please input three numbers;″); Scanf(″%d,%d,%d″,&a,&b,&c); T=max(max(a,b),c) ; printf(″max number is:%d\n″,t); } int max(int x,int y) { int z; if ( x>y) z=x; else z=y; return(z); } 7.一个C程序是由若干个函数构成的,其中有且只能有一个函数。8.在Turbo C环境下进行程序调试时,可以使用Run下拉菜单的命令或按键转到用户屏幕查看程序运行结果。 9.C语言对标识符与关键字有些什么规定? 10.C源程序输入后是如何进行保存的?

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

《汇编语言程序设计》课程教学大纲 二、课程性质与教学目标 《汇编语言程序设计》是计算机科学与技术专业一门重要的基础课,是必修的核心课程之一,是"操作系统"和"微机原理和接口技术"等其它核心课程必要的先修课,而且对于训练学生掌握程序设计技术,熟悉上机操作和程序调试技术都有重要作用。因此该课程在整个教学计划中占有重要地位。 本课程的目的和要求是: 1、应使学生掌握8086/8088宏汇编语言程序设计的基本方法和技巧,能够运用8086/8088宏汇编语言编写应用程序。提高学生分析问题、解决问题的能力以及实际动手能力。 2、应使学生基本掌握汇编语言程序设计的基本理论,方法和技巧,正确地使用结构化、模块程序设计技术。注意培养学生良好的程序设计风格。 3、应使学生比较熟练地使用调试工具DEBUG调试8086/8088汇编语言程序。注意提高学生的调试能力。 4、注意与前后相关课程的关系。使学生对前导课程有进一步的理解,同时为学习后继课程打好基础。 三、教学内容及基本要求 第一单元基础知识 [知识点] 汇编语言的基本概念、数据的表示和类型、几种基本的逻辑运算、Intel 8088/8086微处理器基本概念、存储器分段和地址的形成、

[教学内容] 1.以二进制存在的机器语言。计算机内部数的存储及运算也都是采用二进制。 2.制数的值由1所在位置的权来确定。 3.进制是一种很重要的短格式记数法,它把二进制数每4位分成一组,分别用0-9和 A-F来表示0000-1111。反之,16进制数的每一位用四位二进制表示,就是相应的二进制数。 4.十进制转换为二进制的方法主要有降幂法和除法。计算机十化二程序中采取下面的算法: 5.标志位OF=1表示带符号数的运算结果无效。CF=1表示无符号数运算结果无效。 6.计算机中的字符数据用ASCⅡ码表示,一个字符在存储器中占用一个字节(8位二进制码)。 7.BCD码是一种用二进制编码的十进制数,又称二-十进制数或8421码,它用4位二进制数表示一个十进制数码。BCD码有压缩和非压缩两种格式,压缩的BCD码用4位二进制数表示一个十进制数位,如95 表示为1001,0101。非压缩的BCD码用地位二进制数表示一个十进制数位。如95 表示为00001001 00000101。 8.两种类型的内部存储器是ROM(只读存储器)和RAM(随机存储器)。存储器按字节编址,存储器地址一般用16进制的无符号数表示。 9.字数据在存储器中存放的顺序为高地址字节放高8位,低地址字节放低8位。 10.AX、BA、CA、和DX是通用寄存器,每个通用寄存器可作两个8位寄存器使用(如AH和AL)。 11.一个20位的物理地址可表示成段地址:偏移地址。计算存储器单元的物理地址,可将段地址乘以10H,再加上偏移地址。 物理地址=(段地址×10H)+偏移地址 12.段寄存器CS、SS、DS和ES分别寄存代码段、堆栈段、数据段和附加段的段地址。 13.变址寄存器SI和DI一般指示数据段内单元的地址,有时也可作为数据寄存器用。 14.16位的标志寄存器个包括6个状态标志(SF、ZF、PF、CF、AF、OF)和3个控制标志(DF、IF、TF)。(CF、AF、SF、ZF和OF反映了算术运算以及移位、循环、逻辑等操作的结果状态。 [重难点] 1.教学重点 1.汇编语言的基本概念 (1)机器语言,汇编语言,汇编程序,汇编语言源程序,目标程序,目标代码,可执行程序。 (2)汇编语言的特点 (3)为什么要学习汇编语言,汇编语言的应用场合。 2.数据的表示和类型 (1)数值数据的表示,符号扩展,数值数据的表示范围,BCD码,不同数据之间的转换。 (2)非数值数据类型:字节、字、双字等。 3.几种基本的罗辑运算 “与”、“或”、“非”、“异或” 4.Intel 8088/8086微处理器基本概念 (1)8086/8088基本结构:执行单元EU,总线接口单元BIU,指令的执行次序。

《汇编语言程序设计》考核方式

考核方式与要求 期末总成绩构成:期末开卷考试60% + 平时作业10% + 实验和实验报告30%。 1、试卷考核方式与要求 “汇编语言程序设计”的课程要求是使学生具有一定的程序设计能力。虽然课程是通过80x86微处理机来开展教学的,但学习的重点不仅仅是学会80x86指令的语法和规范,更重要的是通过多读程序、多练习编写程序来掌握程序设计的基本方法和技术,要求学生在工作中遇到其他机型,都应该能利用所掌握的方法和技术顺利解决实际问题。因此,我们在教学过程的各个环节,特别是具有指挥棒作用的考核环节中,着重体现了“能力培养是首位”的指导思想。 为此,汇编课一直实行多元化考核方式,在考核评分上,平时练习和上机实验占40%,期末考试占60%。期末考试实行开卷考试,这样学生平时学习的关注点就会放在分析问题和编程实现的方法上,有利于学生开阔思路,发挥自身创造力。每年设计开卷考试的考题是有一定难度的,教师必须非常熟悉课程的知识点、重点和难点,以及体现这些知识和能力水平的多种题目类型。 2、实验方式与要求 实验的目标为:加强课堂上相关理论和技术学习的有效性;提高学生上机编程和调试的能力;培养学生科学实践的理念和独立分析问题、解决问题的能力。其设计思想是:实验内容兼顾基础性和综合性,实验题目由简单→复杂,程序功能由单一→综合,实验安排有基本要求题+自选题,实验题类型有验证型和自主创新设计型。 √实验课组织形式: 1.系教学实验室按课程要求负责上机环境配置及实验设备管理; 2.以班为单位组织上机实验,并将上机时间安排表发至每位同学; 3.每单元实验课安排一位助教(助博)负责实验指导和答疑; 4.学生每做完一个实验即可提交老师验收,老师将实验运行结果记录下来作为实验成 绩的依据。验收时教师要注意发现比较突出的好的实验例题(完成时间短、程序运行效率高); 5.要求提交实验报告,根据实验报告及实验运行结果的记录,评出实验成绩,实验成 绩一般占总成绩的30%。 √教师指导方法: 1.大课集体指导。每学期实验前教师安排一次实验指导课,讲解实验方法和实验要求; 2.每次实验课都安排助教(助博)进行个别或集体的实验指导和答疑; 3.对具有共性的、问题比较多的实验,主讲教师在课堂上再进行集体指导; 4.每学期对实验中出现的问题,对照实验题目进行分析、总结,以利于以后的教学。 5.对于实验中有创新点的学生,还可以请他上讲台为同学们介绍他的设计思路,引发大家展开讨论。

高级语言程序设计(高起专)

河南工程学院 2017年秋季《高级语言程序设计》期末试卷 批次专业:2017年春季-机电一体化技术(高起专)课程:高级语言程 序设计(高起专)总时长:180分钟 1. ( 单选题 ) 能将高级语言编写的源程序转换为目标程序的是 _____________ 。(本题2.0分) A、链接程序 B、解释程序 C、编译程序 D、编辑程序 学生答案:C 标准答案:C 解析: 得分:2 2. ( 单选题 ) C语言程序编译时,程序中的注释部分()。(本题 2.0分) A、参加编译,并会出现在目标程序中 B、参加编译,但不会出现在目标程序中

C、不参加编译,但会出现在目标程序中 D、不参加编译,也不会出现在目标程序中 学生答案:D 标准答案:D 解析: 得分:2 3. ( 单选题 ) C 语言中的标识符只能由字母、数字和下划线三种字符组成 , 且第一个字符( )(本题2.0分) A、 必须为下划线 B、 可以是字母、数字和下划线中的任意一种 C、 必须为字母或下划线 D、 必须为字母 学生答案:C 标准答案:C 解析: 得分:2 4. ( 单选题 ) 一个 C 程序的执行是从( )(本题2.0分) A、 本程序的main函数开始,到main函数结束 B、 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、 本程序的main函数开始,到本程序文件的最后一个函数结束 D、 本程序文件的第一个函数开始,到本程序main函数结束 学生答案:C

标准答案:C 解析: 得分:2 5. ( 单选题 ) C 语言提供的合法关键字是( ) (本题2.0分) A、swicth B、chan C、case D、default 学生答案:D 标准答案:D 解析: 得分:2 6. ( 单选题 ) C语言程序的基本单位是()(本题2.0分) A、程序行 B、语句 C、函数 D、字符 学生答案:C 标准答案:C 解析: 得分:2 7. ( 单选题 ) 组成C语言程序的是( )。(本题2.0分)

河北工业大学汇编语言知识程序设计实验

汇编语言程序设计实验 网络*** *** 实验一 顺序与分支程序设计 一 、实验目的 1) 掌握顺序程序设计方法。 2) 掌握分支程序的结构及分支程序的设计,调试方法。 2) 学习数据传送及算术和逻辑运算指令的用法。 3) 熟悉在pc 机上建立、汇编、连接、调试和运行汇编语言程序的过程。 二、实验内容 1.实验六 从键盘上接收一位十进制数x ,计算y 值,并以十六进制形式显示出来,y 按下列公式计算。 ???????===-=+=) 6(2/) 5()4(2) 3(22 2 2X X X X X X X X X X Y 2..实验七 实验内容:从键盘上接收两个一位十六进制数x 和y ,然后再输入一个a-d 之间的一个字符,按下列要求计算。 a) 当输入字符为a ,则计算x+y ,并以十六进 制形式显示出来 b) 当输入字符为b ,则计算|x-y|,并以十六进制形式显示出来 c) 当输入字符为c ,则计算x*y ,并以十六进制形式显示出来 d) 当输入字符为d ,则计算x/y ,并以十六进制形式显示出来 三、实验代码 实验六 DATE SEGMENT X DB ?

DATE ENDS ;数据段 CODE SEGMENT ASSUME CS:CODE,DS:DATE START:MOV AX,DATE ;代码段 MOV DS,AX ;初始化ds寄存器 MOV AH,1 INT 21H ;读文件到缓冲区 CMP AL,33H ;比较指令 JB L0 ;A

程序设计语言简介

学号:3140103583 姓名:陈上义 程序设计语言简介 程序设计语言,通常称为编程语言,是指一组用来定义计算机程序的语法规则。更简单地说。就是算法的一种描述。这种标准化的语言可以向计算机发出指令。依靠程序设计语言,人们把解决某一个或者某一类问题的算法,也可以说是步骤,告诉计算机,从而让计算机帮助我们解决人脑难以解决的问题。如果说计算机的硬件是身体,那么程序就是计算机的灵魂,而程序设计语言就是组成灵魂的各种概念和思想。用户能够根据自己的需求来安装不同程序,使计算机完成所需的功能,程序设计语言可以说是功不可没。 程序设计语言的基础是一组记号和一组规则。程序设计语言一般都由三部分组成:语法、语义以及与语用。语法就是在编写程序时所需要遵守的一些规则,也就是各个记号之间的组合规律。语法没有什么特殊含义,也不涉及使用者,但是编译器能够识别并编译的基础。语义表示的就是程序的含义,也就是按照各种方法所表示的各个记号的特殊含义。程序设计语言的语义又包括静态语义和动态语义。静态语义值得是在编写程序时就可以确定的含义,而动态语义则必须在程序运行时才可以确定的含义。语义不清,计算机就无法知道所要解决问题的步骤,也就无法执行程序。语用表示了构成语言的各个记号和使用者的关系,涉及符号的来源,使用和影响。语用的实现有个语境问题。语境是指理解和设计程序设计语言的环境,包括编译环境和运行环境。 和自然语言一样,程序设计语言也经过了一步步的发展才逐渐完善的。从发展的历程看,程序设计语言的发展可以分为四个阶段。 第一代程序设计语言是机器语言。机器语言是由二进制的0和1代码指令构成,不同的CPU又有不同的指令系统。但由于人们习惯于十进制,所以用机器语言编写程序异常困难。尽管机器语言可以直接被计算机识别,但这种语言却非常难以编写,难以修改,难以维护。因此,这种语言并不利于推广。在以后的几十年中,这种语言渐渐地被淘汰了。 第二代程序设计语言是汇编语言。汇编语言也是面向机器的程序设计语言,具有很强的功能性,可以利用计算机硬件的所有特性,并能直接控制硬件的语言。汇编语言是机器语言的指令化,虽然汇编用语言也和机器语言一样,存在着难学难用、容易出错、维护困难等缺点,但相对于机器语言,汇编语言更易于读写、调试和修改,汇编程序翻译成的机器怨言程序的效率高。在实际应用中,某些高级语言无法胜任的工作,也可以利用汇编语言来实现。汇编语言虽然是还是一种面向机器的低级语言,但更能发挥出硬件的特性。 第三代语言则是如今在使用的高级语言,种类繁多,如目前流行的C#,Java,https://www.wendangku.net/doc/879249370.html,、c/c++、foxpro、delphi等,这些语言的语法、命令格式都各不相同。即使是c语言和c++,在语法规则上,也有些差别。高级语言是相对机器语言、汇编语言等低级语言来说的。虽然高级语言种类多,每种语言都有各自的语法与命令格式,但高级语言最大的优点是在形式上接近自然语言和算术语言,概念上接近人们使用的概念。这样的特点使得高级语言很容易进行编写、修改于维护,通用性强、易于学习。因此,高级语言是一种面向用户的语言,即使不是程序员,也可以编写程序。 高级语言并不能为计算机所识别,需要编译器的帮助。编译器既是编写程序

《高级语言程序设计》(一)教学大纲要点

《高级语言程序设计》(一)理论课教学大纲 课程编号:08402003学时数:60 学分:4执笔人:任祯琴 一、课程的性质与目的 《高级语言程序设计》是计算机科学与技术、软件工程、网络工程等信息技术学院本科专业的学科基础必修课,所包含的知识与技能是计算机在软件工程专业中的应用之基础。本课程主要训练学生程序设计的基本能力,训练学生将计算机作为“人类通用智力工具”来看待,目标是利用计算机这个智力工具来分析问题和解决问题。编程能力的培养是本门课程的首要任务。 《高级语言程序设计》课程分两学期开设,第一学期开设《高级语言程序设计》(一)。 设置本课程的主要目的是通过对C语言的语法规则、数据类型、数据运算、语句、程序设计的三种结构、数组等的学习,掌握应用C进行程序设计的技能,为进行各种实用程序开发奠定一个良好的基础。 本课程的实践性很强,要精讲多练,注重理论联系实际。一方面要求学生熟练掌握C语言的各种语法和编写程序的知识;另一方面要求学生熟练掌握阅读、分析、调试程序等基本技能。 二、教学内容与要求 本课程的主要内容包括: C语言概述;算法,算法的表示以及算法流程图;数据的表现形式及其运算;数据类型;运算符与表达式的规则和使用方法;数据的输入输出;程序的顺序结构,选择结构,选择结构的嵌套和循环结构,循环结构的嵌套等程序设计方法;一维数组和二维数组的定义、引用、初始化方法;字符数组的定义、引用、初始化方法,字符数组的输入输出。 本课程的重点部分在于:培养学生的编程能力,分析问题、设计算法是重点,语法学习与讲解应以编程需要为导向,以服务于程序设计为目的。 本课程的难点部分在于:C语言当中部分语法知识较抽象,如:各数据类型的存储以及取值范围、表达式计算的优先顺序、赋值过程中的类型转换、二维数

汇编语言的编程步骤与调试方法

汇编语言的编程步骤与调试方法 一、汇编源程序的建立 1. 使用工具 (1)EDIT,记事本等文本编辑软件,编辑源程序,保存为.asm文 件; (2)ASM,MASM汇编程序,对源程序进行汇编,生成.obj文件- 目标文件,以及调试用.LST-列表文件和.CRF-交叉引用表; (3)Link连接程序,对使用的目标文件和库文件进行连接,生 成.exe文件,同时调试用.map-地址映像文件; 如果源程序无语法错误,上述三步将生成可运行的.exe文件, 如果运行结果无误,则完成对汇编程序的编程,如果运行后结果存 在错误,需要进行调试。 (4)Debug调试程序,对.exe文件进行调试,修改,直到程序正 确。 图3 目标程序生成步骤图2. 编程过程 (1)用文本编辑软件,编写扩展名为.asm的源文程序文件。 (2)用汇编程序对编好的源文件进行汇编。 命令行:masm [*.asm] ↙ 如果源文件中存在语法错误,则汇编程序将指出错误类型及位置,可根据这些信息重新编辑源文件,直至无语法错误,汇编后,将生成指定名称的目标文件.obj。 使用MASM50汇编程序进行汇编,输入命令行masm或者masm *.asm后,根据提示,输入文件名,在汇编没有错误的情况下,如屏幕所示:汇编程序可生成三个文件,*.obj,*.lst和*.crf。 *.obj-目标文件,用于连接生成可执行文件; *.lst-列表文件(可选),汇编语言汇编的机器语言与汇编语言对照表,可用于

调试; *.crf-交叉引用文件(可选),给出了用户定义的所有符号和对每个符号定义、引用的行号。 (3)目标文件的连接 命令行:link [*.obj] [*.obj] [*.lib] ↙ 连接程序,将多个目标程序及库文件,连接生成可执行的*.exe文件,同时可选择生成*.map文件。 *.map-地址映像文件,给出内存地址分配的有关信息。 下图所示屏幕,为Link连接两个目标文件,没有错误的情况下,生成*.exe 文件。 (4)执行程序 执行*.exe文件,观察程序运行结果,如果存在错误,需要进行调试。调试工具DEBUG是针对汇编语言程序设计的一种调试工具,熟练使用DEBUG有助于汇编语言程序员对于逻辑错误的调试。 二、汇编程序的调试

《汇编语言程序设计》教案

授课题目第七章更灵活地定位内存地址的方法课时安排4学时一、教学目的 通过本次课程学习,让学生 1.掌握and与or指令 2.掌握大小写之母的转换 3.掌握SI和DI寄存器 4.掌握内存地址的多种定位方法 二、教学重点 1.and与or指令 2.定位内存地址的多种方法 三、教学难点 1.灵活运用and与or指令 2.灵活运用地址定位方法 四、教学方法(请打√):讲授√□ 讨论□ 课堂练习√□ 实验□ 其他□ 五、教学手段(请打√):多媒体√□ 模型□ 实物□ 挂图□ 音像□ 其他□ 六、教学内容及过程 1. 课程引入 (约 5 分钟) 我们已经学过了用bx来保存内存的偏移地址,也可以用cs:[idata]的方法来访问内存单元,还有没其他的内存地址定位方法? 我们已知一组由英文字母组成的字符串,如何将这些字符进行大小写的转换? 2. and和or指令 (约15分钟) (1)and指令 and指令是逻辑与指令,按位进行与运算。 (2)or指令 or指令是逻辑或指令,按位进行或运算。 3. 关于ASCII码 (约10分钟) 编码方案,就是一套规则,它约定了用什么样的信息来表示现实对象。ASCII码就是一种编码方案。 4. 以字符形式给出的数据 (约10分钟) 汇编程序中,用 ‘……’的方式指明数据是以字符的形式给出的,编译器将把它们转化为相对应的ASCII码。

Db表示定义字节型数据,即define byte。 例题分析。 5 大小写转换的问题 (约25分钟) 大写字母与小写字母的ASCII码相差20H,因此可以利用这个规律进行大小写转换。但是前提条件是需要知道该字母是大写字母还是小写字母。 例题分析。 目前我们尚未学习判断字母是大小写的问题,那么如何应用学过的知识进行大小写字母的转换。 就ASCII码的二进制形式来看,除第5位(位数从0开始计算)外,大写字母和小写字母的其他各位都一样。大写字母ASCII码的第5位(位数从0开始计算)为0,小写字母的第5位为1。因此就可以利用大小写字母的这个特点以及or指令和and指令进行大小写转换。 6 [bx+idata] (约10分钟) [bx]指明一个内存单元。 [bx+idata]也指明一个内存单元,它的偏移地址为(bx)+idata。 mov ax,[bx+200]也可以写成mov ax,[200+bx]、 mov ax,200[bx]、mov ax,[bx].200问题7.1。 7 用[bx+idata]处理数组 (约15分钟) (1)利用[bx+idata]的方式,就可以用更简化的方法来编写代码。 (2)例题分析。 (3)[bx+idata]与高级语言的比较。 [bx+idata]的方式为高级语言实现数组提供了便利机制 8 SI和DI (约15分钟) (1) SI和DI寄存器 SI和DI与bx功能相近的寄存器,SI和DI不能够分成两个8 位寄存器来使用。 (2)例题分析。 (3)问题7.2分析 用ds:si指向源字符串的地址,ds:di 指向复制的目的地址。 问题7.2的简化。利用[bx(si或di)+idata]可以进一步简化代码。 9 [bx+si]和[bx+di] (约15分钟) (1)[bx+si]和[bx+di]的含义 [bx+si]和[bx+di]的含义相似,[bx+si](或[bx+di])表示一个内存单元,它的偏移地址为(bx)+(si)(即bx中的数值加上si中的数值)。 (2)问题分析 10 [bx+si+idata]和[bx+di+idata] (约20分钟)

相关文档