汇编语言程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

学时:32 学分:2

理论学时:24 实验学时:8

面向专业:电科、电信、通信课程代码:B2700009

先开课程:C语言程序设计课程性质:必修

执笔人:王艳春审定人:陈龙猛、张金政

第一部分:理论教学部分

一、说明

1、课程的性质、地位和任务

本课程属于专业基础课,是电科、电信和通信专业学生必修的核心课程之一,是进一步学习微机原理、操作系统等课程的基础。掌握它有助于提高学生对计算机系统的设计、研究、开发和应用能力。汇编语言是一种面向机器、实践性很强的程序设计语言,必须结合一种实际的计算机来组织教学。因此,本课程选择最广泛使用的IBM PC作为具体的机型来介绍。通过课堂教学和上机实践,培养学生用汇编语言进行编程的思路、方法,养成良好的程序设计习惯,并了解底层I/O 驱动软件的编程方法,熟悉源程序汇编、链接和调试运行的步骤和方法,掌握dos、BIOS功能的调用方法及使用debug工具的调试手段,为后续课的学习打下扎实的基础。

2、课程教学和教改基本要求

课程的目的与教学基本要求:本课程主要介绍汇编语言和宏汇编的基本概念,80X86CPU的指令系统和寻址方式;介绍汇编语言程序格式、伪操作和上机全过程。通过实际例子,详细叙述顺序、分支、循环、子程序等基本程序结构以及程序设计的基本方法和技巧。学习这门课程,应达到以下几个要求:

①掌握汇编语言的基本理论知识和有关概念;掌握用汇编语言编写源程序的基本原则、方法和技巧;

②具有阅读,分析汇编语言程序的能力;

③通过上机实践,能够熟练地掌握汇编语言程序的编辑、汇编、连接、运行

过程及debug工具的调试手段。

课堂授课采用多媒体教学,采用由浅入深、循序渐进学习步骤,主要讲解设计思想、实现技巧,通过提问题引导学生思考,提高学生的学习兴趣,从而加深学生对理论课的理解,提高学生的动手能力。

二、教学内容与课时分配

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

1.1 机器语言及汇编语言的产生

1.2 汇编语言的组成

1.3 存储器

1.4 指令和数据

1.5 存储单元及CPU对存储器的读写

1.6 三大总线

1.7 主板、接口卡及各类存储器芯片

1.8 内存地址空间

教学的重点与难点:指令和数据在内存或磁盘上没有区别;内存地址空间。

建议教学方法:讲授

思考题:

1. 1个CPU的寻址能力为8KB,那么它的地址总线宽度是多少?

2. 8080、8088、80286、80386的地址总线宽度分别为16根、20根、24根、32根,那么它们的寻址能力分别为多少?

3. 8080、8088、80286、80386的数据总线宽度分别为8根、8根、16根、16根,则它们一次可以传送的数据为多少字节?

4. 在存储器中,数据和程序以什么形式存放?

5. 为什么机器语言和汇编语言没有通用性?

第二章寄存器(3学时)

2.1 通用寄存器

2.2 字在寄存器中的存储

2.3 几条汇编指令

2.4 物理地址、8086CPU给出物理地址的方法

2.5 段的概念及段寄存器

2.6 代码段及相关寄存器

教学的重点与难点:8086CPU给出物理地址的方法;段的概念。

建议教学方法:讲授

思考题:

1. 给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址范围是?

2. 有一个数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻址到此单元,则SA的最小值和最大值分别是多少?

3. 执行下面3条指令,CPU修改几次IP?是在什么时候?最后IP的值是?

mov ax, bx

sub ax, ax

jmp ax

第三章寄存器(内存访问)(3学时)

3.1 内存中字的存储

3.2 DS和[address]

3.3 字的传送

3.4 mov、add、sub指令

3.5 数据段

3.6 栈、CPU提供的栈机制

3.7 栈顶超界问题

3.8 push和pop指令

3.9 栈段

教学的重点与难点:对[address]的理解;栈的概念及其实现。

建议教学方法:讲授

思考题:

1. 在debug中,用“d 0:0 1f”查看内存,结果如下:

0000:0000 70 80 F0 30 EF 60 30 E2 00 80 80 12 66 20 22 60

0000:0010 62 26 E6 D6 CC 2E 3C AB BA 00 00 26 06 66 88

下面程序执行前,ax=0,bx=0,写出每条指令执行完后相应寄存器中的值。

mov ax, 1

mov ds, ax

mov ax, [0000] ax=_______

mov bx, [0001] bx=_______

mov ax, bx ax=_______

mov ax, [0000] ax=_______

mov bx, [0002] bx=_______

add ax, bx ax=_______

add ax, [0004] ax=_______

mov ax, 0 ax=_______

mov al, [0002] ax=_______

mov bx, 0 bx=_______

mov bl, [000C] bx=_______

add al, bl ax=_______

2. 补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序复制到

20000H-2000FH中。

mov ax, 1000h

mov ds, ax

_______________

_______________

_______________

push [0]

push [2]

push [4]

push [6]

push [8]

push [A]

push [C]

push [E]

3. 补全下面的程序,使其可以将10000H-1000FH中的8个字,逆序复制到

20000H-2000FH中。

mov ax, 2000h

mov ds, ax

_______________

_______________

_______________

pop [E]

pop [C]

pop [A]

pop [8]

pop [6]

pop [4]

pop [2]

pop [0]

第四章第一个程序(2学时)

4.1 源程序从写出到执行的过程

4.2 源程序、编辑源程序、编译、连接

4.3 可执行文件的执行

相关文档
最新文档