当前位置:文档之家› 汇编语言教案

汇编语言教案

汇编语言教案
汇编语言教案

《汇编语言》教案

课程类别:专业基础课

课程性质:必修

开课专业及年级:计算机科学与技术专业,大二

课程教学总学时数:56

学时分配:课堂讲授40学时,实验16学时

教材名称:IBM-PC汇编语言程序设计(第2版),沈美明温冬婵编著,清华大学出版社

考核方式:笔试80%,实验10%,平时10%

第1周第1 次课

第一章基础知识(2个学时)

教学目的及要求:

1.建立二进制信息的概念;

2.掌握各种数制间的变换方法;

3.掌握补码的概念、原理和运算规律;4、掌握几种基本的逻辑运算

教学内容提要:

1.0 汇编语言与高级语言的区别及其应用场合

1.1数制

1.2数制之间的转换

1.3 算术运算和逻辑运算

1.4数和字符的表示

教学重点与难点:

(1)理解不同进位记数制可以表达同一个数,如同一个人可以有很多名字一样。理解计算机系统使用的数据都是二进制形式,但是人类所习惯的数据表达方式是十进制形式。

(2)关于数制之间的转换重点掌握十进制数与二进制数间的转换,二进制与八进制、十六进制间的相互转换,主要要求对整数的转换熟练,小数转换掌握方法即可。

(3)理解二进制数真值与二进制编码之间的概念区别,掌握真值与原码、补码间的相互转换。

(4)理解原码符号与补码符号间质的区别

(5)掌握变反加1方法,并深刻理解它的各种运用场合

讨论问题:

(1)二进制数的真值与编码间的区别是什么?

(2)为什么在计算机系统中需要使用编码而不能直接使用真值?

(3)原码与补码的符号间有什么样的区别?

(4)变反加1有哪些应用场合?怎样解释它的应用原理?

教学手段:讲授为主,讨论为辅,采用多媒体辅助教学

------------------------------------------------------------------------------------------------------- 第1周第2 次课

第二章80x86计算机组织(2个学时)

教学目的及要求:

1.了解计算机系统的基本结构;

2.了解计算机系统的基本工作原理;3.理解在8086/8088系统中,逻辑地址与物理地址间的相互联系和转换机制;4.准确理解8086/8088 CPU中各寄存器的基本功能;5.准确理解标志寄存器中各标志位的含义以及实用价值;6.理解内存的编址方式,数据在内存中的存放形式,理解内存中段的组织形式以及各个段的含义;7掌握实模式下存储器寻址方法,了解保护模式存储器寻址方法;8.理解外部设备的管理方法。

教学内容提要:

2.1 80x86处理器计算机系统

2.2基于微处理器的计算机系统构成

2.2.1 硬件

2.2.2 软件

2.3中央处理机

2.3.1 中央处理机CPU的组成

2.3.2 80x86寄存器组

2.4存储器

2.4.1 存储单元的地址和内容

2.4.2 实模式存储器寻址

2.4.3 保护式存储器寻址

2.5外部设备

教学重点与难点:

(1)理解逻辑地址与物理地址间的关联以及转换机制

(2)建立内存的分段管理概念,理解四种段类型的含义

(3)理解标志寄存器中每个标志位的确切含义、实用价值,特别注意CF、OF 这两个理解困难的标志位

(4)理解标志位是否有意义与人对数据的具体解释有关,这是一个容易引起困惑的问题

讨论问题:

(1)为什么在CPU内部不能直接使用物理地址?

(2)8086系统存储器为什么要分段,如何分段?物理地址如何形成?

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

------------------------------------------------------------------------------------------------------- 第2周第1 次课

第3章80x86的指令系统和寻址方式(8学时)(第一部分)

教学目的及要求:

1.了解8086/8088机器指令的构成;2.准确理解8086/8088 CPU每种寻址方式的确切含义;3.了解程序占用空间和执行时间的概念。

教学内容提要:

3.1 80x86的寻址方式

3.1.1 与数据有关的寻址方式

3.1.2 与转移地址有关的寻址方式

3.2 程序占有的空间和执行时间

教学重点与难点:

(1)理解各种寻址方式的含义、用途,特别是存储器寻址中的几种方式。(2)注意理解立即数寻址与存储器直接寻址的区别;寄存器寻址与寄存器间接寻址的区别;

(3)段内寻址与短间寻址的区别;

讨论问题:

(1)寻址方式的本质是什么?为什么会出现多种寻址方式?

(2)立即数寻址与存储器寻址有什么重要的区别?二者有没有相似的地方?

(3)数据寻址和跳转指令的寻址的区别?

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

------------------------------------------------------------------------------------------------------- 第2周第2 次课

第3章80x86的指令系统和寻址方式(8学时)第二部分

教学目的及要求:

1.准确理解指令系统中部分指令的含义、用途、执行过程、标志位解释,以及使用时需要注意的问题;2掌握调试工具DEBUG的基本使用方法

教学内容提要:

3.3 80x86的指令系统

3.3.1 数据传送指令

3.3.2 算术指令(第一部分)

教学重点与难点:

(1)理解指令的各种分类方法,部分指令的含义、用途、基本时序过程、对标志位的解释,注意几种地址装入指令的区别,避免混淆;(2)着重理解指令构成中的隐含操作数、隐含寻址方式,理解隐含寻址与非隐含寻址在控制上的区别;(3)理解堆栈的基本使用方法,区分栈底、栈顶、堆栈指针初始位置等容易混淆的概念;(4)算术指令对CF、OF标志的影响情况;(5)理解DEBUG工具的基本使用方法,包括DEBUG中几种基本命令的使用方法以及所显示信息的含义。

讨论问题:

(1)隐含寻址与显示操作数的寻址有何区别?

(2)LEA和LDS指令各自的功能是什么?二者之间有何质的区别?

(3)栈顶、栈底分别由何种器件指示?SP、SS中的内容与栈顶、栈底有什么样的区别、联系?

(4)在机器上调试一个小的程序片段,让同学们按步骤分析、解释当前使用的DEBUG命令、所显示的内容等。

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

------------------------------------------------------------------------------------------------------- 第3周第1 次课

第3章80x86的指令系统和寻址方式(8学时)第三部分

教学目的及要求:

1.准确理解指令系统中部分指令的含义、用途、执行过程、标志位解释,以及使用时需要注意的问题;2.根据课件中对指令执行的描述体会逻辑指令和字符

串处理指令的执行过程。

教学内容提要:

3.3.2 算术指令(第二部分)

3.3.3 逻辑指令

3.3.4 串处理指令(第一部分)

教学重点与难点:

(1)着重理解指令构成中的隐含操作数、隐含寻址方式,理解隐含寻址与非隐含寻址在控制上的区别;(2)理解各种寻址方式的含义、用途,特别是存储器寻址中的几种方式,注意理解立即数寻址与存储器寻址的区别;(3)理解部分指令的含义、用途、对标志位的解释;(4)串处理指令的特殊性及一般用法;(5)理解DEBUG工具的基本使用方法,包括DEBUG中几种基本命令的使用方法以及所显示信息的含义。

讨论问题:

(1)多字或多字节加法是如何完成的?先对低字节进行运算还是高字节?多字或多字节减法又是怎样完成的?(2)NEG指令的操作数可以解释为无符号数吗?CF标志是如何判断的?(3)CMP指令与TEST指令的功能分别是什么?在程序设计中,它们主要针对什么用途?(4)对于逻辑左移指令OF标志什么情况下才有意义?对于算术右移指令OF标志有什么样的特征?对于各种循环移位指令,OF标志什么情况下有意义?

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

------------------------------------------------------------------------------------------------------- 第3周第2 次课

第3章80x86的指令系统和寻址方式(8学时)第三部分

教学目的及要求:

1.准确理解指令系统中部分指令的含义、用途、执行过程、标志位解释,以及使用时需要注意的问题;2.串处理指令的特殊性及一般用法;3.控制转移指令的用途及使用方法4.理解DEBUG工具的基本使用方法,包括DEBUG中几种基本命令的使用方法以及所显示信息的含义。

教学内容提要:

3.3.4 串处理指令(第二部分)

3.3.5 控制转移指令(有关子程序操作命令放到第6章介绍)

3.3.6 处理机控制与杂项操作命令

教学重点与难点:

(1)串处理指令的使用方法;(2)串处理时的方向控制;(3)有符号和无符号的跳转指令的不同及测试条件的区别;

讨论问题:

(1)重复前缀和循环指令在使用时的区别?(2)有符号数与无符号数在比较时为什么会不同?

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

------------------------------------------------------------------------------------------------------- 第4周第1 次课

第4章汇编语言程序格式(4个学时)第一部分

教学目的及要求:

1.了解汇编程序功能;2.掌握各个伪指令的功能和使用方法;3.掌握伪指令与指令的重要区别;5.理解程序的段结构,掌握定义段的语法要素;6.掌握各个段寄存器的各种初始化方法。

教学内容提要:

4.1 汇编程序功能

4.2 伪操作

4.2.1 处理器选择伪操作

4.2.2 段定义伪操作

4.2.3 程序开始和结束伪操作

4.2.4 数据定义及存储器分配伪操作

教学重点与难点:

(1)在理解伪指令功能的基础上,着重理解伪指令与指令的本质区别;(2)理解汇编语言中表达式与高级语言中表达式的本质区别;(3)在理解程序的段结构基础上,着重理解各个段寄存器的初始化方法;(4)理解两种源程序框架的原理,特别注意理解在每种框架中应用程序与操作系统交接CPU控制权的方法。

讨论问题:

(1)指令与伪指令有何区别?(2)两种源程序框架对于CPU控制权的交接有何不同?

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

-------------------------------------------------------------------------------------------------------

第4周第2 次课

第4章汇编语言程序格式(4个学时)第二部分

教学目的及要求:

1.掌握各个伪指令的功能和使用方法;2.掌握伪指令与指令的重要区别;3.掌握汇编语言表达式与高级语言表达式的本质区别;4.掌握汇编语言程序格式;5.熟悉汇编语言程序的上机过程;6.掌握两种可执行文件的区别。

教学内容提要:

4.2 伪操作

4.2.5 表达式赋值伪操作EQU

4.2.6 地址计数器与对准伪操作

4.2.7 基数控制伪操作

4.3 汇编语言程序格式

4.3.1 名字项

4.3.2 操作项

4.3.3 操作数项

4.3.4 注释项

4.4 汇编语言程序的上机过程

4.4.1 建立汇编语言的工作环境

4.4.2 建立ASM文件

4.4.3 产生OBJ文件

4.4.4 产生EXE文件

4.4.5 程序的执行

4.4.6 COM文件

教学重点与难点:

(1)理解汇编语言中表达式与高级语言中表达式的本质区别;(2)地址计数器的理解和使用;(3)理解变量、标号的三个基本空间特性:段、偏移量、类型。讨论问题:

(1)汇编语言中的表达式与高级语言中的表达式相比,有何重要区别?(2)EXE文件和COM文件有何区别?(3)段、偏移量、类型三个基本空间特性如何确定一个变量在内存空间的确切位置、占用字节数?这三个特性对标号的使用而言,有何必要性?

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

-------------------------------------------------------------------------------------------------------

第5周第1 次课

第5章循环与分支程序设计(共6学时)第一部分

教学目的及要求:

1.掌握由汇编语言源程序得到可执行程序的完整过程;2.精确掌握各种转移指令的功能、使用限制、标志位使用、在程序设计中的通常用法等;3.重点理解各条件转移指令对标志位的解释及其相关的条件判断原理4.能够实际应用所学到的转移指令,在编写完整程序的基础上使用分支、循环等复杂的流程结构

教学内容提要:

5.1 循环程序设计

5.1.1 循环程序的结构形式

5.1.2 循环程序设计方法(第一部分)

教学重点与难点:

(1)在理解标志位含义的基础上,着重理解各条件转移指令对标志位的解释、条件判断原理;(2)理解循环指令的功能,以及与其它条件转移指令的主要区别;(3)结合实例,理解循环指令在程序设计中的通常用途;(4)结合实例,理解循环指令的使用限制,理解实现循环结构单纯依靠循环指令是不够的。

讨论问题:

(1)循环指令与其它条件转移有什么主要区别?使用循环指令是否可以实现所有的循环结构?

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

-------------------------------------------------------------------------------------------------------第5周第2 次课

第5章循环与分支程序设计(共6学时)第二部分

教学目的及要求:

1.掌握由汇编语言源程序得到可执行程序的完整过程;2.精确掌握各种转移指令的功能、使用限制、标志位使用、在程序设计中的通常用法等;3.重点理解各条件转移指令对标志位的解释及其相关的条件判断原理4.能够实际应用所学到的转移指令,在编写完整程序的基础上使用分支、循环等复杂的流程结构。教学内容提要:

5.1 循环程序设计

5.1.2 循环程序设计方法(第二部分)

5.1.3 多重循环程序设计

教学重点与难点:

(1)理解循环指令的功能,以及与其它条件转移指令的主要区别;(2)结合实例,理解循环指令在程序设计中的通常用途;(3)结合实例,理解循环指令的使用限制,理解实现循环结构单纯依靠循环指令是不够的

讨论问题:

(1)多重循环程序设计需要注意的关键问题,引导学生将其与高级语言在进行多重循环程序设计的异同;

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

------------------------------------------------------------------------------------------------------- 第6周第1 次课

第5章循环与分支程序设计(共6学时)第三部分

教学目的及要求:

1.掌握由汇编语言源程序得到可执行程序的完整过程;2.精确掌握各种转移指令的功能、使用限制、标志位使用、在程序设计中的通常用法等;3.重点理解各条件转移指令对标志位的解释及其相关的条件判断原理4.能够实际应用所学到的转移指令,在编写完整程序的基础上使用分支、循环等复杂的流程结构。教学内容提要:

5.2 分支程序设计

5.2.1分支程序的结构形式

5.2.2分支程序的设计方法

5.2.3跳跃表法

教学重点与难点:

(1)理解无条件转移指令存在的价值;(2)在理解各标志位含义的基础上,着重理解各条件转移指令对标志位的解释、条件判断原理;(3)结合实例,理解转移指令在分支程序设计中的通常用途;(4)结合实例,理解条件转移指令的使用限制,理解并逐步建立由框图到程序的设计思路,并由此建立使用条件转移指令所需的良好习惯;(5)理解使用分支表实现多分支结构的优越性。

讨论问题:

(1)条件转移指令最大转移范围是多少?无条件转移指令存在的意义在哪里?

(2)JNC指令与JA指令的区别是什么?

(3)JZ指令与JCXZ指令有何重要区别?

(4)由流程框图设计分支结构程序时,使用条件转移指令应当注意什么问题?(5)带符号数条件转移指令使用哪些标志位进行条件判断?条件判断主要基于一个什么原理?

(6)使用分支表实现多分支结构与通常的条件转移指令直接实现多分支有何区别?其优越性如何?

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

-------------------------------------------------------------------------------------------------------

第6周第2 次课

第六章子程序结构(共6学时)第一部分

教学目的及要求:

1.理解子程序在汇编语言中的定义语法;2.理解子程序的类型概念;3.理解子程序调用、返回的原理;4.掌握子程序入、出口参数传递方法;5.理解子程序设计时需要注意的问题;6.结合实例理解子程序设计的过程。

教学内容提要:

6.1子程序的设计方法

6.1.1 过程定义伪操作

6.1.2 子程序的调用和返回

6.1.3 保存与恢复寄存器

6.1.4 子程序的参数传递

教学重点与难点:

(1)理解子程序调用、返回的基本原理;(2)理解子程序的类型对调用、返回产生的影响;(3)理解子程序参数传递的三种方法;(4)掌握在实际应用中,区分哪些模块适合编制为子程序的方法。

讨论问题:

(1)子程序调用、返回使用了什么样的底层机制?会不会由于堆栈的操作不当而引起子程序返回错误?应当如何避免子程序返回错误?(2)段内调用、返回与段间调用、返回区别在什么地方?它们分别适合用于什么样的应用场合?(3)寄存器参数传递的优点是什么?缺点是什么?在使用堆栈传递参数时,子程序返回应当注意什么问题?

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

第7周第1 次课

第六章子程序结构(共6学时)第二部分

教学目的及要求:

1.理解子程序在汇编语言中的定义语法;2.理解子程序的类型概念;3.理解子程序调用、返回的原理;4.掌握子程序入、出口参数传递方法;5.理解子程序设计时需要注意的问题;6.结合实例理解子程序设计的过程。

教学内容提要:

6.1子程序的设计方法

6.1.4 子程序的参数传递

6.1.5 增强功能的过程定义伪操作

6.2 子程序的嵌套

教学重点与难点:

(1)理解子程序调用、返回的基本原理;(2)理解子程序的类型对调用、返回产生的影响;(3)理解子程序参数传递的三种方法;(4)掌握在实际应用中,区分哪些模块适合编制为子程序的方法。

讨论问题:

(1)子程序调用、返回使用了什么样的底层机制?会不会由于堆栈的操作不当而引起子程序返回错误?应当如何避免子程序返回错误?(2)段内调用、返回与段间调用、返回区别在什么地方?它们分别适合用于什么样的应用场合?(3)

寄存器参数传递的优点是什么?缺点是什么?在使用堆栈传递参数时,子程序返回应当注意什么问题?

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

第7周第2 次课

第六章子程序结构(共6学时)第三部分

教学目的及要求:

1.理解子程序在汇编语言中的定义语法;2.理解子程序的类型概念;3.理解子程序调用、返回的原理;4.掌握子程序入、出口参数传递方法;5.理解子程序设计时需要注意的问题;6.结合实例理解子程序设计的过程。

教学内容提要:

6.3子程序举例

教学重点与难点:

(1)理解子程序调用、返回的基本原理;(2)理解子程序的类型对调用、返回产生的影响;(3)理解子程序参数传递的三种方法;(4)掌握在实际应用中,区分哪些模块适合编制为子程序的方法。

讨论问题:

(1)子程序调用、返回使用了什么样的底层机制?会不会由于堆栈的操作不当而引起子程序返回错误?应当如何避免子程序返回错误?(2)段内调用、返回与段间调用、返回区别在什么地方?它们分别适合用于什么样的应用场合?(3)寄存器参数传递的优点是什么?缺点是什么?在使用堆栈传递参数时,子程序返回应当注意什么问题?

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

第8周第1 次课

第7章高级汇编语言技术(共2学时)

教学目的及要求:

1.掌握汇编语言中“宏”的概念,能够在程序设计中正确使用宏指令;2.理解宏和子程序的本质区别;3.掌握条件汇编和重复汇编的概念,并且能够在程序设计中正确使用;4.了解汇编工具对源程序的汇编过程;

教学内容提要:

7.1 宏汇编

7.2 重复汇编

7.3条件汇编

教学重点与难点:

(1)着重理解宏指令与子程序的区别,以及每个过程分别由什么样的角色来完成;(2)着重理解条件汇编、重复汇编与条件转移指令、循环指令的本质区别;(3)能够在实际应用中合理运用宏指令、条件汇编、重复汇编;

讨论问题:

(1)宏指令与子程序的区别有哪些?宏调用的本质是什么?与子程序调用有什么区别?宏指令与子程序相比较,它们各自的优越性是什么?什么样的软件模块适合使用子程序实现?什么样的软件模块适合使用宏指令实现?(2)条件汇编与重复汇编是在什么时候完成的?条件转移指令与循环指令是在什么时候完成的?条件、重复汇编语句的功能与条件转移、循环指令有什么本质区别?

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

-------------------------------------------------------------------------------------------------------第8周第2 次课

第8章输入输出程序设计(共4学时)第一部分

教学目的及要求:

1.掌握CPU如何和外部设备接口交换信息的方法,了解CPU控制外部设备常运转的基本原理.2.掌握端口访问指令的功能、使用方法、寻址方式,能够理解简单的接口控制程序。3.掌握中断的基本概念。中断向量表的概念,中断过程,中断程序的编写

教学内容提要:

8.1 I/O设备的数据传送方式

8.1.1 CPU与外设

8.1.2 直接存储器存取(DMA)方式

8.2 程序直接控制I/O方式

8.2.1 I/O端口

8.2.2 I/O指令

8.2.3 I/O程序举例

8.3 中断传送方式

8.3.1 8086的中断分类

教学重点与难点:

(1)着重理解程序控制方式与中断控制方式的本质区别,以及中断控制方式的相对优越性;(2)能够在实际应用中针对接口编写基本的控制程序。

讨论问题:

(1)三种数据传送方式的优缺点;(2)CPU如何控制外部设备?

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

-------------------------------------------------------------------------------------------------------第9周第1 次课

第8章输入输出程序设计(共4学时)第二部分

教学目的及要求:

1.掌握中断的基本概念;2.掌握中断向量表的概念;3.掌握中断过程,中断优先级和中断程序的编写。

教学内容提要:

8.3 中断传送方式

8.3.2中断向量表

8.3.3 中断过程

8.3.4 中断优先级和中断嵌套

8.3.5 中断处理程序

教学重点与难点:

(1)中断向量表的作用;(2)如何编写自己的中断处理程序;(3)着重理解程序控制方式与中断控制方式的本质区别,以及中断控制方式的相对优越性

讨论问题:

(1)中断向量在中断向量表中的存储形式如何?(2)编写中断向量同编写子程

序的异同?(3)编写中断程序需要注意的问题有那些?(4)中断过程包括哪几个主要的步骤?哪些步骤是硬件自动完成的?哪些步骤是程序完成的?程序控制方式与中断控制方式的主要区别是什么?相对而言,中断控制方式有什么优越性?

教学手段:

讲授为主,讨论为辅,采用多媒体辅助教学

-------------------------------------------------------------------------------------------------------第9周第2 次课

第9章BIOS和DOS中断(共4学时)第一部分

教学目的及要求:

1.掌握必要的DOS调用和BIOS调用,并且能够在程序设计中正确使用。

教学内容提要:

9.1 键盘I/O

9.1.1 字符码与扫描码

9.1.1 BIOS键盘中断

9.1.1 DOS键盘功能调用

9.2 显示器I/O

9.2.1 字符属性

9.1.1 BIOS显示中断

9.1.1 DOS显示功能调用

教学重点与难点:

(1)着重理解DOS中断调用的概念,理解调用号、入口参数、出口参数的概念及对于调用的重要性,理解中断调用与中断的区别;(2)着重理解常用DOS中断调用的功能以及使用方法;(3)能够在实际应用中适当的使用DOS中断调用,简化程序的编制过程。

讨论问题:

(1)DOS中断调用的中断入口地址计算与硬件中断过程中的中断入口地址计算是否相同?在程序设计中使用DOS中断调用与硬件中断过程的主要区别是什么?被硬件中断调用的中断服务程序是否可以在程序中直接调用?(2)在程序设计中使用DOS中断调用有什么好处?

教学手段

讲授为主,讨论为辅,采用多媒体辅助教学

-------------------------------------------------------------------------------------------------------第10周第1 次课

第9章BIOS和DOS中断(共4学时)第二部分

教学目的及要求:

1.掌握必要的DOS调用和BIOS调用,并且能够在程序设计中正确使用

教学内容提要:

9.3 打印机I/O

9.3.1 DOS打印功能

9.3.2打印机的控制字符

9.3.3 BIOS打印功能

9.4 串行通信口I/O

9.4.1 串行通信口接口

9.4.2 串行口功能调用

教学重点与难点:

(1)着重理解常用BIOS中断调用的功能以及使用方法;(2)能够在实际应用中适当的使用BIOS中断调用,简化程序的编制过程。

讨论问题:

(1)BIOS中断调用与DOS中断调用有什么共同之处?有什么区别?二者有什么重要的联系?BIOS中断调用是否可以看作设备驱动程序?(2)在程序设计中使用BIOS中断调用有什么好处?

教学手段

讲授为主,讨论为辅,采用多媒体辅助教学

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

《汇编语言程序设计》课程教学大纲 二、课程简介 汇编语言是计算机能够提供给用户使用的最快最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而,对程序的空间和时间要求很高的场合及需要直接控制硬件的应用场合,汇编语言的应用是必不可少三、课程目标 汇编语言课程是计算机专业的一门专业选修课。通过本课程的学习,应使学 生系统地了解计算机组成原理与内部的运行机理,掌握汇编语言程序设计及相关 知识,为学习本专业后继课程和进行与硬件有关的技术工作打下良好基础。通过 上机实验,使学生受到软硬件实验的初步训练,并培养学生分析问题和解决问题 的能力。 四、教学内容及要求 第一章基础知识 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系统功能调用

【汇编语言程序设计】试题及答案合集

《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 1.对于有符号的数来说,下列哪个值最大(D) A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是(D) A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.8088/8086存储器分段,每个段不超过(D ) A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 5.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时( A) A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7.若要求一个操作数中的若干位维持不变,若干位置?1?,可以使用(B)A:NOT B:OR C:AND D:XOR 8.下列指令中段默认为堆栈段的是( C) A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB [BX],[BP][DI] D. MOV DX,[1000H] 9.关于8086/8088微机系列,下列说法哪个是正确的(D) A:一个存储单元由16个二进制位组成,简称字。

B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。 10.下列关于堆栈的说法,错误的是(D) A:以?先入后出?为原则。 B:栈区最高地址单元的前一个单元为栈底。 C:运行中SP寄存器动态跟踪栈顶位置。 D:压栈和弹出都是以字节为单位。 11.表示过程定义结束的伪指令是( A) A.ENDP B.ENDS C.END D.ENDM 12.BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $-BUF1 符号COUNT等价的值是( B) A.6 B.18 C.16 D.9 13.下列标志位中,可以用来判断计算结果正负的是(B) A:PF B:SF C:DF D:OF 14.下列指令正确的是( CD) A. MOV [100H], [BX] B.MOV DS, ES C. ADD V[BX], CX D.MOV AX, 34H 15.下列哪个寄存器是属于指针寄存器(C) A:SI B:DX C:SP D:ES 二、填空题 (每小题4 分,共 20 分) 1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _LEA SI,FLD______ MOV CX, 8 XOR AX, AX

汇编语言课程标准-李新

重庆工程职业技术学院 课程标准 (工作过程系统化设计课程) 课程名称:汇编语言 适用专业:计算机控制技术、计算机系统维护技术 课程代码:16604020 学 时:72 学 分:4 编制单位:信息工程学院 编 制 人:李新 审 核 人: 编制时间:2012年7月1日

汇编语言课程标准 1.课程定位和设计思路 1.1 课程定位 《汇编语言程序设计》是计算机控制技术专业 和计算机系统维护技术专业必修的专业基础课程之 一。 本课程主要介绍IBM PC计算机CPU的结构, 存储器的组织方式;掌握IBM PC计算机的寻址方 式;掌握8086/8088指令系统,并了解80x86、 Pentium增强和扩充指令;掌握基本的汇编语言程序设计方法和技能;掌握汇编语言程序的上机方 法;了解高级汇编语言技术。它对于学生进一步了 解计算机的内部工作过程、掌握程序设计技术、掌 握DOS中断的使用、熟练上机操作过程和程序调试 都有着重要的作用。 《C语言程序设计》等课程,是《汇编语言》 的先修课程。而《计算机组装与维护》、《单片机 原理与应用》、《笔记本电脑维修》等课程是它的 后续课程。 表1 课程定位 课程性质2个专业专业必修 课程功能本课程在计算机专业教学中为以后专业课的基础课程前导课程C语言程序设计 平行课程X 后续课程计算机组装与维护、单片机原理与应用、笔记本电脑 维修 1.2 设计思路 全面贯彻党的教育方针,遵循高等职业教育规

律,突出高等职业教育特色。准确把握本门课程在人才培养方案中的作用和地位,教学内容、方法、手段的选择必须以培养社会需求的计算机应用人才的目标和要求为依据。 在“项目引导,任务驱动”的人才培养模式的理念和方法指导下,选择适合项目,以认识项目开始,学习必须够用的理论知识,在教师引导下,完成项目设计。以实际项目开发流程中的典型工作任务设计学习情境,建立真实工作任务与专业知识、专业技能的联系,增加学生的直观体验,激发学生的学习兴趣。 要坚持学生为主体,教师为主导的教学理念。发挥学生主体作用,让学生主动探索,通过自己的努力来解决问题。教师是教学过程的组织者、指导者、促进者和咨询者。突出学生学习的主体地位,充分发挥学生的积极性和学习潜能,形成适合自己的个性化学习方法,提高学习效率和学习水平。2.课程描述 表2 课程描述 课 程 名 称 汇编语言学期安排建议学时72 学 习 任 务 本课程学习3个教学情景, 9个子教学情景。 课程总目 本课程的总体目标是:知道《汇编语言程序设计》这门学科的性质、地位和独立价值。知道这门学科的研究范围、分析框架、研究方法、学科进展和未来方向。理解这门学科的主要概念、基本原理和基本方法。了解16位/32位和奔腾系列微机

汇编语言程序设计

汇编语言程序设计 一、选择题 (共72题) 1、 用于指针及变址寄存器的有()。 A、 AX,BX,CX,DX B、 SP,BP,IP C、 CS,DS,SS D、 PSW 考生答案:B 2、 完成把汇编语言源程序模块转换为目标模块的程序是()。 A、 编辑程序 B、 汇编程序 C、 连接程序 D、 调试程序 考生答案:B 3、 指令JMP FAR PTR DONE中的寻址方式属于()。 A、 段内转移直接寻址 B、 段内转移间接寻址 C、 段间转移直接寻址 D、 段间转移间接寻址 考生答案:C 4、 对于下列程序段: AGAIN:MOV AL,[SI]

MOV ES:[DI],AL INC SI INC DI LOOP AGAIN 也可用()指令完成同样的功能。 A、 REP MOVSB B、 REP LODSB C、 REP STOSB D、 REPE SCASB 考生答案:A 5、 在程序执行过程中,IP寄存器中始终保存的是()。 A、 上一条指令的首地址 B、 下一条指令的首地址 C、 正在执行指令的首地址 D、 需计算有效地址后才能确定地址 考生答案:B 6、 在汇编语言程序的开发过程中使用宏功能的顺序是()。 A、 宏定义,宏调用 B、 宏定义,宏展开 C、 宏定义,宏调用,宏展开 D、 宏定义,宏展开,宏调用 考生答案:C 7、 CPU要访问的某一存储单元的实际地址称()。 A、 段地址

偏移地址 C、 物理地址 D、 逻辑地址 考生答案:C 8、 AND、OR、XOR、NOT为四条逻辑运算指令,下面解释正确的是()。 A、 指令XOR AX,AX执行后,AX内容不变,但设置了标志位 B、 指令OR DX,1000H执行后,将DX最高位置1,其余各位置0 C、 指令AND AX,OFH执行后,分离出AL低四位 D、 NOT AX,执行后,将AX清0 考生答案:C 9、 完成对CL寄存器的内容乘以2的正确操作是()。 A、 ROL CL,1 B、 MUL 2 C、 SHL CL,1 D、 SHR CL,1 考生答案:C 10、 检查两个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP A L,BL”指令后应跟的分支指令是()。 A、 JE LOP1 B、 JAE LOP1 C、 JC LOP1 D、 JGE LOP1 考生答案:B 11、 已知变量VAR为字型,则TYPEVAR=()。

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著)

80x86汇编语言程序设计教程》(清华大学出版社,黑色封面,杨季文著) 《计算机操作系统原理》 《Inside Windows 2000》(微软出版社,我看的是E文版的,中文的书名想必是Windows 2000 技术内幕之类吧)。 《数据结构和算法》——这门课程能够决定一个人程序设计水平的高低,是一门核心课程。我首选的是清华版的(朱战立,刘天时) 《软件工程》——这门课程是越到后来就越发现它的重要,虽然刚开始看时就象看马哲一样不知所云。我的建议是看《实用软件工程》(黄色,清华) 《Windows 程序设计》——《北京大学出版社,Petzold著》我建议任何企图设计Windows 程序的人在学习VC以前仔细的学完它。而且前面的那本 建议:你还可以在CSDN上阅读到许多书评。这些书评能够帮助你决定读什么样的书 关于编程的网站 计算机编程 郭新明-FTP服务器体验式学习课程(张孝祥监制) https://www.doczj.com/doc/692267950.html,/so/so138.aspx?id=3997 https://www.doczj.com/doc/692267950.html,快速开发新闻系统在线播放 https://www.doczj.com/doc/692267950.html,/so/so138.aspx?id=4708 数字电路基础[宁波电大] https://www.doczj.com/doc/692267950.html,/so/so138.aspx?id=774 计算机组成与汇编语言程序设计(赵丽梅)宁波电大 https://www.doczj.com/doc/692267950.html,/so/so138.aspx?id=1242 操作系统(陈访荣)宁波电大(在线播放) https://www.doczj.com/doc/692267950.html,/so/so138.aspx?id=4708 计算机网络(马敏飞)宁波电大 https://www.doczj.com/doc/692267950.html,/so/so138.aspx?id=1243 https://www.doczj.com/doc/692267950.html, 2.0快速入门(12)-https://www.doczj.com/doc/692267950.html, 2.0网站快速导航 https://www.doczj.com/doc/692267950.html,/so/so138.aspx?id=2501 Internet和Intranet应用(薛昭旺)宁波电大 https://www.doczj.com/doc/692267950.html,/so/so138.aspx?id=1245 2004年电脑硬件安装调试维修视频教学讲授 https://www.doczj.com/doc/692267950.html,/so/so138.aspx?id=4825 https://www.doczj.com/doc/692267950.html, 高级排错技巧 https://www.doczj.com/doc/692267950.html,/so/so138.aspx?id=768 SQL Server 2000管理专家系列课程 https://www.doczj.com/doc/692267950.html,/so/so138.aspx?id=4832 开心三人行系列(2):使用Atlas 构建AJAX应用 https://www.doczj.com/doc/692267950.html,/so/so138.aspx?id=2564 Visual Basic 2005开发技巧系列课程(4): 在Visual Basic 2005中使用.NET Framework 2.0新增功能 https://www.doczj.com/doc/692267950.html,/so/so138.aspx?id=2526 SQL Server 2005 系列课程-使用ADO https://www.doczj.com/doc/692267950.html,开发SQL Server 2005 OLAP应用 https://www.doczj.com/doc/692267950.html,/so/so138.aspx?id=2535

汇编语言课程教学大纲

《汇编语言》课程教学大纲 一、课程的性质和任务 《汇编语言》是计算机及相关专业的一门专业必修课。 本课程教学应达到的基本要求是: 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语言程序设计》、《计算机电路基础》 《汇编语言》课程实验教学大纲 一、实验教学目的

实验一基础汇编语言程序设计

实验一基础汇编语言程序设计 实验目的 1.学习和了解TEC-XP十六位机监控命令的用法; 2.学习和了解TEC-XP十六位机的指令系统; 3.学习简单的TEC-XP十六位机汇编程序设计。 实验内容 1.使用监控程序的R命令显示/修改寄存器内容、D命令显示存储器内容、E命令修改存储器内容; 2.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。 3.学习联机使用TEC-XP教学试验系统和仿真终端软件。 实验要求 在使用该教学机之前,应先熟悉教学机的各个组成部分及其使用方法。 实验步骤 1.关闭电源,将大板上的COMl口与PC机的串口相连; 2.接通电源,在PC机上运行PCEC.EXE文件,设置所用PC机的串口为“l”或“2”,其它的设置一般不用改动,直接回车即可; 3.置控制开关为001110(连续、内存读指令、组合逻辑、16位、联机),开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意。其它实验相同; 4.按一下“RESET”按键,再按一下“START”’按键,主机上显示: 5.用R命令查看寄存器内容或修改寄存器的内容 1.用R命令查看寄存器或修改寄存器内容 1)在命令行提示符状态下输入: R↙;显示寄存器的内容 注:寄存器的内容在运行程序或执行命令后会发生变化。

2)在命令行提示符状态下输入: R R0↙;修改寄存器R0的内容,被修改的寄存器与所赋值之间可以无空格, 也可有—个或数个空格 主机显示: 寄存器原值:xxxx 在后面输入新的值0036 再用R命令显示寄存器内容,则R0的内容变为0036。 2.用D命令显示存储器内容 在命令行提示符状态下输入: D 2000↙ 会显示从2000H地址开始的连续128个字的内容; 连续使用不带参数的D命令,起始地址会自动加128(即80H)。

新版汇编语言程序设计习题答案(钱晓捷主编)电子教案

新版汇编语言程序设计习题答案(钱晓捷主 编)

新版汇编语言程序设计习题答案(钱晓捷主编) 第一章汇编语言基础知识 1.1、简述计算机系统的硬件组成及各部分作用 1.2、明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 1.3、什么是汇编语言源程序、汇编程序、目标程序? 1.4、汇编语言与高级语言相比有什么优缺点? 1.5、将下列十六进制数转换为二进制和十进制表示 (1)FFH (2)0H (3)5EH (4)EFH (5)2EH (6)10H (7)1FH (8)ABH 1.6、将下列十进制数转换为BCD码表示 (1)12 (2)24 (3)68 (4)127 (5)128 (6)255 (7)1234 (8)2458 1.7、将下列BCD码转换为十进制数 (1)10010001 (2)10001001 (3)00110110 (4)10010000 (5)00001000 (6)10010111 (7)10000001 (8)00000010 1.8、将下列十进制数分别用8位二进制数的原码、反码和补码表示 (1)0 (2)-127 (3)127 (4)-57 (5)126 (6)-126 (7)-128 (8)68 1.9、完成下列二进制数的运算 (1)1011+1001 (2)1011-1001 (3)1011×1001 (4)10111000÷1001 (5)1011 ∧~1011 (8)1011 ⊕ 1001 1001(6)1011 ∨1001(7) 1.10 数码0~9、大写字母A~Z、小写字母a~z对应的ASCII码分别是多少?ASCII码为0dh、0ah对应的是什么字符? 1.11、计算机中有一个“01100001”编码,如果把它认为是无符号数,它是10进制什么数?如果认为它是BCD码,则表示什么数?又如果它是某个ASCII码,则代表哪个字符? 1.12、简述Intel 80x86系列微处理器在指令集方面的发展。 1.13、什么是DOS和ROM-BIOS? 1.14、简述PC机最低1MB主存空间的使用情况。 1.15、罗列8086CPU的8个8位和16位通用寄存器,并说明各自的作用。 1.16、什么是标志,它有什么用途?状态标志和控制标志有什么区别?画出标志寄存器FLAGS,说明各个标志的位置和含义。

汇编语言程序设计课后习题解答宋人杰2版

第1章汇编语言基础知识 1.简述汇编语言源程序、汇编程序、和目标程序的关系。 答:用汇编语言编写的程序称为汇编源程序;汇编源程序在汇编程序的翻译下转换成计算机语言变成目标程序。 2. 简述汇编语言的优缺点。 答:(1) 汇编语言的优点: ①可有效地访问、控制计算机各种硬件设备,如磁盘、存储器、CPU、I/O端口等。. ②目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 ③可与高级语言配合使用,应用十分广泛。 (2) 汇编语言的缺点: ①通用性和可移植性较差 ②相对于高级语言来说较繁锁、易出错、不够直观。 3.CPU的寻址能力为8KB,那么它的地址总线的宽度为多少? 答:13 4. 1KB的存储器有多少个存储单元? 答:1024个字节。 5. 指令中的逻辑地址由哪两部分组成? 答:指令中的逻辑地址由段基址和偏移量组成。 6. 以下为用段基址:偏移量形式表示的内存地址,试计算它们的物理地址。 (1) 12F8:0100 (2) 1A2F:0103 (3) 1A3F:0003 (4) 1A3F:A1FF 答: (1) 13080H (2) 1A3F3H (3) 1A3F3H (4) 245EFH 7. 自12FA:0000开始的内存单元中存放以下数据(用十六进制形式表示): 03 06 11 A3 13 01,试分别写出12FA:0002的字节型数据、字型数据及双字型数据 的值。 答:字节型数据:11H 字型数据:0A311H 双字型数据:0113A311H 8. 内存中某单元的物理地址是19318H,段基地址为1916H,则段内偏移地址为 多少?若段内偏移地址为2228H,则段基地址为多少? 答:若段基地址为1916H,则段内偏移地址为01B8H;若段内偏移地址为2228H,则段基地址为170FH 9. 在实模式环境中,一个段最长不能超过多少字节? 答:64KB 10. 实模式可寻址的内存范围是多少? 答:1MB

汇编语言程序设计

汇编语言程序设计 实验报告 实验名称上机过程及顺序结构与分支结构程序设计实验班级 学号 姓名 日期2017年10月26号 成绩 评阅人 软件学院

一、实验目的与意义 理解并熟练掌握汇编语言程序设计过程中的编辑、汇编、链接和调试等各个步骤,提高对汇编课程内容的理解和汇编语言的掌握,通过上机练习加深对课程内容的理解和掌握。通过汇编语言编制的程序上机调试、运行检验程序设计是否正确。熟悉和掌握编辑、汇编、连接和调试四个实用程序的使用方法,掌握调试程序中的几个常用命令的使用方法。熟悉其基本的指令操作,debug调试操作命令以及分支结构、顺序结构和循环结构的程序设计。 二、实验环境 操作系统:Microsoft Windows8 集成环境:Masm for Windows 上机地点:信息楼B405教室 三、实验的预习内容 预习的主要内容: 1. 使用DEBUG命令的方法; 2. 熟悉掌握从理论上定义数据的类型(即DB,DW,DD,); 3. 分支结构和顺序结构的步骤以及相关的指令; 4. 常用的标志位状态及相应的作用; 实验思路: 在对题目进行分析后,分析出解题方法,并做出与实验思路相对应的程序框图。依照程序框图的内容输入相对应的代码,最终在调试代码后,发现并解决一系列的汇编语言错误。进一步优化算法。实验之前必须了解十进制、十六进制和ASCII码之间的转换。预习查表法相关命令,掌握顺序程序的结构,从键盘输入数据的命令及显示到屏幕上的命令。 实验一: 题目1:将程序编辑、汇编、连接并通过集成环境中的debug调试,观察运行结果;用E命令修改指定地址的数据,再用G命令执行程序查看变化,用A 命令将加法指令修改成减法指令,再将其编译运行,查看寄存器值变化的异同。 题目2:分别用DB、DW和DD数据段9H,0FAH,41H,27H,编译链接之后生成exe文件,再用debug的r命令找到数据段地址,用d命令指定数据段地址,观察汇编后在机器内部对应的存储情况。 实验二: 先设置数据段地址和堆栈段地址;设置堆栈段指针;读取一个字符然后存储在AL中;用BX来存储AL中字符对应的数值;将BX中的值作为偏移地址;并在数据段中查找对应字符串;最终输出结果结束程序。 实验三: 先初始化数据段地址与堆栈段地址;设置堆栈段指针;然后将数据段中的data1放入AL中;读取数据段中的data2并判断data2是否大于0;然后读取数

汇编语言程序设计教程(第3版 卜艳萍)参考答案

汇编语言程序设计教程(第3版) 习题参考答案 第1章汇编语言基础知识 思考与练习 1.计算机系统分哪几个层次?简述计算机系统的硬件结构。 1)数字逻辑层 2) 微体系结构层 3) 指令系统层 4) 操作系统层 5) 汇编语言层 6) 高级语言层 7) 应用层 硬件系统是指构成计算机系统的物理实体或物理装置。它由控制器、运算器、存储器、输入设备和输出设备等部件构成。 2.简述用汇编语言进行程序设计的必要性。 1)程序要具有较快的执行时间,或者只能占用较小的存储容量。例如,操作系统的核 心程序段,实时控制系统的软件,智能仪器仪表的控制程序等。 2)程序与计算机硬件密切相关,程序要直接、有效地控制硬件。例如,I/O接口电路 的初始化程序段,外部设备的低层驱动程序等。 3)大型软件需要提高性能、优化处理的部分。例如计算机系统频繁调用的子程序、动 态连接库等。 4)没有合适的高级语言或只能采用汇编语言的时候。例如,开发最新的处理器程序时, 暂时没有支持新指令的编译程序。 5)汇编语言还有许多实际应用,例如分析具体系统尤其是该系统的低层软件、加密解 密软件、分析和防治计算机病毒等。 3.汉字编码主要分哪几类?每类的功能如何? 汉字编码主要分为四类:汉字输入码、汉字交换码、汉字机内码和汉字字形码。 1)为了能直接使用西文标准键盘进行输入,就必须为汉字设计相应的编码方法,即用 西文标准键盘上的字母数字串表示汉字的编码。目前,汉字输入编码方法主要有三 种:数字编码、拼音编码和字形编码。 2)汉字交换码:在不同汉字信息处理系统间进行汉字交换时所使用的编码,就是国标 码。无论采用哪种方法输入汉字,一旦输入到计算机中,必须采用统一的国标码标 识每个汉字。 3)汉字机内码是汉字在设备或信息处理系统内部最基本的表达形式,是在设备和信息 处理系统内部存储、处理、传输汉字用的编码。 4)字形编码也称为字模码,是用点阵表示的汉字字形代码,它是汉字的输出形式。4.计算机的字长是怎么定义的,试举例说明。 计算机能同时处理二进制信息的位宽定义为计算机的字长。如8086能同时进行16位二进制数据的运算、存储和传输等操作,该机器的字长为16位。 5.在汇编语言中,如何表示二进制、八进制、十进制和十六进制的数值? 用相应进制的数值加上进制标记即可。

第四章MCS-51汇编语言程序设计

第四章MCS-51汇编语言程序设计 重点及难点: 单片机汇编语言程序设计的基本概念、伪指令、单片机汇编语言程序的三种基本结构形式、常用汇编语言程序设计。 教学基本要求: 1、掌握汇编语言程序设计的基本概念; 2、掌握伪指令的格式、功能和使用方法; 3、掌握顺序结构、分支结构和循环结构程序设计的步骤和方法; 4、掌握常用汇编语言程序设计步骤和方法。 教学内容 §4.1汇编语言程序设计概述 一、汇编语言的特点 (1)助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。 (2)使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。 (3)汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。 (4)汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用;但是掌握了一种计算机系统的汇编语言后,学习其他的汇编语言就不太困难了。 二、汇编语言的语句格式 [<标号>]:<操作码> [<操作数>];[<注释>] 三、汇编语言程序设计的步骤与特点 (1)建立数学模型 (2)确定算法 (3)制定程序流程图 (4)确定数据结构 (5)写出源程序 (6)上机调试程序 §4.2伪指令 伪指令是程序员发给汇编程序的命令,也称为汇编命令或汇编程序控制指令。 MCS- 51常见汇编语言程序中常用的伪指令:

第四章MCS-51汇编语言程序设计91 1.ORG (ORiGin)汇编起始地址命令 [<标号:>] ORG <地址> 2.END (END of assembly)汇编终止命令 [<标号:>] END [<表达式>] 3.EQU (EQUate)赋值命令 <字符名称> EQU <赋值项> 4.DB (Define Byte)定义字节命令 [<标号:>] DB <8位数表> 5.DW (Define Word)定义数据字命令 [<标号:>] DW <16位数表> 6.DS (Define Stonage )定义存储区命令 [<标号:>] DW <16位数表> 7.BIT位定义命令 <字符名称> BIT <位地址> 8.DA TA数据地址赋值命令 <字符名称> DATA <表达式> §4.3单片机汇编语言程序的基本结构形式 一、顺序程序 [例4-1]三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、5414和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H位中。 MOV R0 ,# 52H ;被加数的低字节地址 MOV R1 ,# 55H ;加数的低字节地址 MOV A ,@ R0 ADD A ,@ R1 ;低字节相加 MOV @ R0 , A ;存低字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;中间字节带进位相加 MOV @ R0 , A ;存中间字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;高字节带进位相加 MOV @ R0 , A ;存高字节相加结果 CLR A

新版汇编语言程序设计钱晓捷第1章习题答案

第1章汇编语言基础知识(全) 2010-10-18 19:32:40| 分类:答案集锦| 标签:|字号大中小订阅 第1章汇编语言基础知识 〔习题1.1〕简述计算机系统的硬件组成及各部分作用。 〔解答〕 CPU:包括运算器、控制器和寄存器组。运算器执行所有的算术和逻辑运算;控制器负责把指指令逐条从存储器中取出,经译码分析后向机器发出各种控制命令,并正确完成程序所要求的功能;寄存器组为 处理单元提供所需要的数据。 存储器:是计算机的记忆部件,它用来存放程序以及程序中所涉及的数据。 外部设备:实现人机交换和机间的通信。 〔习题1.2〕明确下列概念或符号: 主存和辅存,RAM和ROM,存储器地址和I/O端口,KB、MB、GB和TB 〔解答〕 主存又称内存是主存储器的简称,主存储器存放当前正在执行的程序和使用的数据,CPU可以直接存取,它由半导体存储器芯片构成其成本高、容量小、但速度快。辅存是辅助存储器的简称,辅存可用来长期保存大量程序和数据,CPU需要通过I/O接口访问,它由磁盘或光盘构成,其成本低、容量大,但速 度慢。 RAM是随机存取存储器的英语简写,由于CPU可以从RAM读信息,也可以向RAM写入信息,所以RAM也被称为读写存储器,RAM型半导体存储器可以按地址随机读写,但这类存储器在断电后不能保存信息;而ROM中的信息只能被读出,不能被修改,ROM型半导体通常只能被读出,但这类存储器断电 后能保存信息。 存储器由大量存储单元组成。为了区别每个单元,我们将它们编号,于是,每个存储单元就有了一个存储地址,I/O接口是由一组寄存器组成,为了区别它们,各个寄存器进行了编号,形成I/O地址,通常 称做I/O端口。 KB是千字节、MB是兆字节、GB是吉字节和TB是太字节,它们都是表示存储器存储单元的单位。 〔习题1.3〕什么是汇编语言源程序、汇编程序、目标程序? 〔解答〕 用汇编语言书写的程序就称为汇编语言源程序;完成汇编工作的程序就是汇编程序;由汇编程序编 译通过的程序就是目标程序。

大工19秋《汇编语言程序设计》大作业题目及要求

学习中心: 专业: 年级:年春/秋季 学号: 学生: 题目: 1.谈谈你对本课程学习过程中的心得体会与建议 2.《汇编语言程序设计》课程设计,从以下5个题目中任选其一作答。 《汇编语言程序设计》课程设计 注意:从以下5个题目中任选其一作答。 总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言 作业提交: 大作业上交时文件名写法为:[姓名奥鹏卡号学习中心](如:戴卫东浙江台州奥鹏学习中心[1]VIP) 以附件word文档形式上交离线作业(附件的大小限制在10M以内),选择已完成的作业(注意命名),点提交即可。如下图所示。

注意事项: 独立完成作业,不准抄袭其他人或者请人代做,如有雷同作业,成绩以零分计! 题目一:进制转换程序 要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。 (2)算法思路:比如可设计二进制转化十六进制的算法, 简单介绍该算法的基本思想,100字左右即可。 (3)算法程序框图:绘制流程图或原理图,从算法的开始 到结束的程序框图。 (4)主要函数代码:列出算法的具体代码。 (5)列出算法中使用指令的含义,比如解释MOV指令的 含义,ADD指令的含义,至少撰写十个指令。 总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言! 题目二:冒泡排序算法 要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。 (2)算法思路:简单介绍冒泡排序算法的基本思想,至少 100字。 (3)算法程序框图:绘制流程图或原理图,从算法的开始 到结束的程序框图。

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)解析

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社) (沈美明,温冬蝉著) 第二章 1.解答:有256个 2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元 E5 1E 3C 2A 3.解答: 30022H字节单元内容: ABH 30024H字节单元内容: EFH 30021H字单元内容: AB34H 30022H字单元内容: CDABH 4.解答: 这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址 5.解答: CS+IP 第一个字的物理地址为: 0AAA40H 6.解答: 条件标志OF,SF,ZF,CF,的值依次为:0,0,0,0 7.下列操作可使用那些寄存器? (1)加法和减法AX,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如AH ,AL等(2)循环计数 CX (3)乘法和除法DX,AX,AH,AL (4)保存段地址CS ,DS,ES,SS (5)表示运算结果为O FLAGS (6)将要执行的指令地址IP (7) 将要从堆栈取出数据的地址BP,SP,SS 8.可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP 9.一一对应; 5--A 4--B 2--C 3--D 12--E 9--F 11--G 10--H 13--I 8--J 7--K 6---L 1--M 15--N 14--O 第三章 1.(1)立即寻址没有 (2)直接寻址7237H (3)使用BX的寄存器寻址没有 (4)使用BX的间接寻址 637DH (5)使用BX的寄存器相对寻址0D5B4H (6)基址变址寻址8E18H (7)相对基址变址004FH 2.根据下列要求,写出相应的汇编指令。 (1)ADD DX,BX (2) ADD AL,[BX][SI] (3) ADD [BX][0B2H], CX (4) MOV AX,2A59H ADD [0524H] ,AX (5) ADD AL ,0B5H

汇编语言程序设计

实验四程序设计 一、实验目的 学习数据传送指令和算术运算指令的用法;掌握数据定义伪指令的格式,会用DEBUG 中的D命令观察DB、DW、DD存储数据的格式;熟悉汇编语言的基本框架,掌握编写汇编语言程序的基本方法。 二、实验题 1、已知当前数据段中DADT1和DADT2开始分别存放若干字节数据,数据个数相同,编制程序检查两数据块中数据是否相同,若相同,则在屏幕上显示1,否则显示0。 【参考程序如下】 DSEG SEGMENT DATA1 DB 'ABCDEFG3' DATA2 DB 'ABCDEF3G' CNT DW 8 DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START:MOV AX,DSEG MOV DS,AX MOV DL,31H LEA SI,DATA1 LEA DI,DATA2 MOV CX,CNT DEC SI DEC DI AGAIN:INC SI INC DI MOV AL,[SI] CMP AL,[DI] LOOPZ AGAIN JZ DISP DEC DL DISP: MOV AH,2

INT 21H MOV AH,4CH INT 21H CSEG ENDS END START 阅读程序,理解循环程序结构及执行过程,并改成串指令实现。 2 编写程序,将00H~0FH共16个数写入内存3000H开始的连续16个存储单元中。 三、实验报告 写出程序清单,记录运行结果。 改写串指令实现: DSEG SEGMENT DATA1 DB'ABCDEFG3' DATA2 DB'ABCDEF3G' CNT DW8 DSEG ENDS CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG START:MOV AX,DSEG MOV DS,AX MOV ES,AX MOV DL,31H LEA SI,DATA1 LEA DI,DATA2 MOV CX,CNT CLD

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

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

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

2013年汇编语言程序设计课程设计

2013年汇编语言程序设计课程设计 一、作业题目 2013年汇编语言程序设计大型作业给出了3道题目,供大家凭自己的兴趣自由选择其中之一完成。这3道作业题目如下: 1.通用进制转换程序 2.两位数加减乘除程序 3.高精度乘法程序 二、交付的文档材料 1.程序系统说明书 内容包括: (1)程序系统总体的功能模块调用图及模块功能说明。 (2)程序系统的详细框图(每个子程序的流程图)。 (3)程序界面图。 (4)程序清单。 2.设计和实现的技术特点、不足和改进的建议 3.课程设计的体会。 4.程序源程序和可执行程序 三、评分说明 独立完成:60分,雷同或抄袭者不及格; 设计技术及技巧使用:25分; 文档质量:10分; 按时完成:5分。 可以自主扩充功能,有创新加分。 四、参考书 1.课本 2.《IBM-PC汇编语言程序设计》清华大学出版社 五、交付时间:第十八周的周五。

题目一通用进制转换程序 一、题目要求 实现不同进制之间的相互转换。(常用进制二、八、十、十六进制) 程序功能: 1.能通过键盘输入任一种进制,有相应的提示信息。 例如please input a Binary data: 2. 输入的数据要有容错检测。 例如:输入的二进制数据为1200,则应该出现错误信息提示。(因为2在二进制中是不允许的 3.输出的数据要有进制选择。 例如:请选择输出数据的进制(0: 二进制,1: 八进制……) 二、重点考察 1.用汇编实现简单的算法。 2.用汇编实现简单的数据结构。 3.可执行程序的参数使用。 4.INT 21H系统功能调用中有关显示与输出的操作 5.综合解决问题的能力。

相关主题
文本预览
相关文档 最新文档