汇编教程课件上.docx

上传人:b****5 文档编号:29047770 上传时间:2023-07-20 格式:DOCX 页数:94 大小:52.28KB
下载 相关 举报
汇编教程课件上.docx_第1页
第1页 / 共94页
汇编教程课件上.docx_第2页
第2页 / 共94页
汇编教程课件上.docx_第3页
第3页 / 共94页
汇编教程课件上.docx_第4页
第4页 / 共94页
汇编教程课件上.docx_第5页
第5页 / 共94页
点击查看更多>>
下载资源
资源描述

汇编教程课件上.docx

《汇编教程课件上.docx》由会员分享,可在线阅读,更多相关《汇编教程课件上.docx(94页珍藏版)》请在冰豆网上搜索。

汇编教程课件上.docx

汇编教程课件上

安徽大学教学进度表

计算机学院网络工程与软件工程专业2009(1、2班)级

2010—2011学年度第二学期

课程名称:

汇编语言程序设计教学总时数:

54(授课)+36(上机)

序号

周次

学时数

教学主要内容

教学环节

备注

1

1

3

第一章:

基础知识数制、转换、运算;数和字符的表示;四种逻辑运算;计算机组织、系统构成

讲课

2.28

2

2

3

第一章:

基础知识、CPU、寄存器组、存储器、外设和接口;

第二章:

汇编语言程序实例及上机操作两个程序实例

讲课

3.6

3

3

3

第二章:

汇编语言程序实例及上机操作上机环境和操作、DEBUG、DOS命令和几个常用的DOS系统功能调用(INT21H)

讲课

3.13

4

4

3

第三章:

指令系统和寻址寻址方式、程序的空间和时间

讲课

3.20

5

5

3

第三章:

指令系统和寻址传送指令、类型扩展指令、算术指令、

讲课

3.27

6

6

3

第三章:

指令系统和寻址逻辑指令、移位指令、串处理指令

讲课

4.3

7

7

3

第三章:

指令系统和寻址控制转移指令、处理机控制及杂指令

讲课

4.10

8

4

实验一:

上机过程及程序调试;上机实验步骤和要求;实验报告的要求

上机

4.9/4.10

9

8

3

第四章:

伪指令系统与源程序格式

讲课

4.17

10

4

实验二:

算术及位串处理程序

上机

4.16/4.17

11

9

3

第五章:

分支与循环程序设计分支程序设计的结构、单分支、复合分支、多分支结构程序方法技巧,例题

讲课

4.24

12

4

实验三:

分支程序设计

上机

4.23/4.24

13

10

3

五一法定假日

5.1假

14

11

3

第五章:

分支与循环程序设计循环程序设计的结构、计数循环、条件循环、条件计数循环、多重循环程序的方法、技巧、例题

讲课

5.8

15

4

实验四:

循环程序设计

上机

5.7/5.8

16

12

3

第六章:

子程序设计子程序结构子程序的设计方法、子程序定义的伪操作、调用和返回、保存与恢复寄存器内容、参数传送

讲课

5.15

17

4

实验五:

子程序设计1

上机

5.14/5.15

18

13

3

第六章:

子程序设计多模块程序设计、子程序的嵌套和递归、举例

讲课

5.22

19

4

实验六:

子程序设计2

上机

5.21/5.22

20

14

3

第六章:

子程序设计综合大型程序设计:

程序设计实例;

讲课

5.29

21

4

实验七:

模块化程序设计1、2

上机

5.28/5.29

22

15

3

第七章:

高级汇编语言技术宏汇编的定义、调用、展开;宏定义中的参数、LOCAL伪操作、在宏定义内使用宏

讲课

6.5

23

4

实验八:

模块化程序设计3

上机

6.4/6.5

24

16

3

第七章:

高级汇编语言技术列表伪操作、宏库、PURGE伪操作、重复汇编、条件汇编

讲课

6.12

25

4

实验九:

宏汇编程序设计

上机

6.11/6.12

26

17

3

第八章:

简单介绍输入输出和中断程序设计:

I/O数据传送方式、直接控制I/O方式、中断传送方式;第九章输入和输出应用

讲课

6.19

27

18

3

总复习辅导、试题分析和解答、迎考

讲课

6.26

说明:

1.教学主要内容栏,清填写教学大纲规定的章节内容。

2.教学环节系指讲课、实验、实习、习题课、课堂讨论、期中测验等。

3.本表一式两份,院、系存一份,教研室一份。

任课教师刘玉峰(签字)教研室负责人(签字)2011年2月18日

 

09级计算机科技专业平时成绩计算方法

 

点名:

点名平时成绩=100分/18次×有效次数

作业:

作业成绩=每交一次作业8分×11次=88分

好(优):

+4分,差:

-2分

最好成绩:

8分×11次+4分×3次优=100分

上机:

上机点名成绩=100分/9次×有效上机次数

实验报告:

优:

95分,优下:

90分,

良上:

85分,良:

80分良下:

75分,

及格:

70分,不及格:

60分

平时成绩=(点名分+作业分+上机分+实验报告分)/4

 

引言:

●关于本书

●我们要学习本书中的哪些内容?

●时间安排

●平时成绩计算方法

 

目录

第一章基础知识

1.1汇编语言简介

1.1.1什么是汇编语言

1.1.2为什么要学习汇编语言

1.2计算机中数据的表示

1.3计算机组织

1.3.1计算机系统概述

1.3.2中央处理机CPU

1.3.3寄存器组

1.3.4存储器

1.3.5外部设备

 

第二章汇编语言程序实例及上机操作

2.1汇编语言程序实例

2.2工作环境及上机操作

2.3DEBUG主要命令

2.4常用的DOS命令

2.5几个常用的DOS系统功能调用(INT21H)

第三章指令系统和寻址方式

3.1寻址方式

3.2指令系统

第四章汇编语言程序格式

4.1汇编程序功能

4.2伪操作

4.3程序格式

4.4汇编语言上机

第五章分支与循环程序设计

5.1分支程序设计

5.2循环程序设计

第六章子程序

6.1子程序的结构

6.2子程序的参数传递

6.3模块化程序设计

6.4子程序的嵌套与递归

6.5子程序举例

第七章高级汇编语言技术

7.1宏汇编

7.2重复汇编

7.3条件汇编

 

第一章基础知识

1.1汇编语言简介

1.1.1什么是汇编语言

机器语言汇编语言高级语言

1.1.2为什么要学习汇编语言

A汇编语言程序是用符号指令写成的,本质上是机器语言。

与具体机器的机型的硬件密切相关,可以直接有效地控制计算机硬件,程序运行速度快,程序短小精悍,占用内存少,在某些特殊应用场合更能发挥作用。

如:

智能化仪表家用电器实时控制系统单片机控制病毒研究等

B使用汇编语言能从根本上认识和理解计算机的工作过程,它可直接而精确地控制计算机硬件的操作。

C学习汇编语言对从事计算机的研究和开发有着重要的意义。

所以,它作为一门计算机专业基础课,并对计算机专业今后课程的学习是非常重要的。

1.2计算机中数据的表示

1.2.1不同进位计数制及其相互转换

1、二进制

十进制数:

123.6(D)=1×102+2×101+3×100+6×10-1

各位权值10k

二进制数:

(B)=1×25+1×23+1×22+1×20=45(D)

各位权值2k

十六进制数:

5F(H)=5×161+15×160(D)

各位权值16k

 

1.2.2二进制数、十进制数和十六进制数转换

(1)二进制数转换为十进制数(按权展开)

1101.1(B)=23+22+20+2-1=8+4+1+0.5=13.5(D)

(2)十进制数转换为二进制数

.降幂法:

(适用于数值不大的数)

13.5(d)=8+4+1+0.5=1101.1

1000

0100

0001

+0.1

 

1101.1

★对于小数有:

例1.2:

N=0.8125D(降幂法)

2-12-22-32-4

0.50.250.1250.0625

计算过程:

0.8125-0.5=0.3125(b1=1)

0.3125-0.25=0.0625(b2=1)

0.0625-0.125<0(b3=0)

0.0625-0.0625=0(b4=1)

N=0.8125D=0.1101B

 

例1.4:

N=0.8125D(乘2取整法)

0.8125×21.625

0.625×21.25

0.25×20.5

0.5×21.0

1.8125D=0.1101B

★对于整数有:

除法:

(除2取余法,对整数而言)

N=13除2即二进制数去掉最右一位

13/2=6余1(余1表明N是奇数,得到一位)

6/2=3余0商为6即可写出110

3/2=1余1

1/2=0余1

13(d)=1101(b)

1011B=11D

1101B=13D

 

1.1.3十六进制数与二进制数和十进制数转换

(1)十六进制数与二进制数转换

每四位二进制数表示一位十六进制数

例:

001101011011111135BF

即11111(B)=35BF(H)

(2)十六进制数与十进制数转换

方法同二进制数与十进制数转换,不过是基数为十六进制数所对应的权。

例:

35BF(H)=0011010110111111(B)

 

(3)常见几种进制数码表

二进制

八进制

十进制

十六进制

0000

0

0

0

0001

1

1

1

0010

2

2

2

0011

3

3

3

0100

4

4

4

0101

5

5

5

0110

6

6

6

0111

7

7

7

1000

10

8

8

1001

11

9

9

1010

12

10

A

1011

13

11

B

1100

14

12

C

1101

15

13

D

1110

16

14

E

1111

17

15

F

1.2.2二进制数和十六进制数运算

1.2.2.1二进制运算

加法规则:

0+0=01+0=10+1=11+1=0(进位1)

乘法规则:

0×0=01×0=00×1=01×1=1

 

1.2.2十六进制数运算

原则:

逢十六进一

43A55A342A34

+5A34-34A5×0025

9DD9258FD304

+5468

61984

 

1.3计算机中数和字符的表示

1.3.1数的补码表示

定义:

(X>=0时)[X]补=符号+|X|------

(1)

(X<0时)[X]补=2n-|X|=(2n-1-|X|)+1---

(2)

|X|=2n-[X]补=(2n-1-[X]补)+1(X<0)---(3)

(2)+(3)即X<0时:

 

[X]补+|X|=2^n

 

数的补码具体操作是:

反码+1,符号扩展

 

1.3.2补码的加减法(见教材P6-7)

 

由上面式

(2),(3)得到式(4):

[X]补求补[-X]补求补[X]补---(4)

 

[X+Y]补=[X]补+[Y]补--(5)

[X-Y]补=[X]补+[-Y]补--(6)

(6)式的Y<0时即为(5)式,仅需考察(6)式且可认为X>0,Y>0:

1)如果[X-Y]>=0,由定义应有[X-Y]补=X-Y,

则(6)式右边=X+(2^n-Y)=X-Y+2^n=X-Y(2^n为多余)

2)如果[X-Y]<0,(或者说Y>X),

应有[X-Y]补=2^n-|X-Y|=2^n-(Y-X)=2^n-Y+X=[-Y]补+[X]补

(computer)

 

1.3.3无符号数

1.3.4字符表示

见教材P:

8表1.1“ASCII码”

*2A+2B-2D

/2FLF0ACROD

 

1.4几种基本逻辑运算

AND,OR,NOT,XOR

A

B

AND

OR

NOTA

XOR

0

0

0

0

1

0

0

1

0

1

1

1

1

0

0

1

0

1

1

1

1

1

0

0

 

1.3计算机组织

2.1计算机系统概述

硬件:

存储器

大容量

存储器

接口

总线控制

逻辑

中央处理机CPU

 

……

I/O设备

接口

计算机结构

.中央处理机CPU

.存储器memory

RAM(RandomAcceseMemory),ROM(ReadOnly),

EPROM(写几百~几千次),闪存(一种高速EPROM,可写几千次)

.输入输出子系统I/O

系统总线:

数据线,地址线,控制线

CPU的发展:

8088(准16位机)

8086:

16位机,16位通用寄存器,20位地址线,1M寻址.

80286(准32位机)

80386:

32位机,32位通用寄存器,32位地址线,4G寻址(理论).

80486

80586:

1993,字长32位,主频60-166M,数据总线64,地址总线32,寻址4G

80686(PRO)

PⅡ:

1997,字长32位,主频-333M,数据总线64,地址总线32,寻址4G

PⅢ:

1999,字长32位,主频-600M,数据总线64,地址总线36,寻址64G

PⅣ:

 

软件:

系统软件

应用软件

操作系统

系常驻监督程序

件文I/O调文翻连装系

件驱试本译接入统

管动程编程程程程

理程序辑序序序序

程序程库

序序

软用户程序用户程序库

 

****************************************************************************************************

 

2.2中央处理机CPU

2.2.1CPU的组成

算术逻辑部件、控制逻辑、工作寄存器

2.2.280X86寄存器组

寄存器分为可见和不可见311615870

///////////////////////

AH

AL

///////////////////////

BH

BL

///////////////////////

CH

CL

///////////////////////

DH

DL

///////////////////////

SP

///////////////////////

BP

///////////////////////

DI

///////////////////////

SI

1、.通用数据寄存器EAX

AX=AHAL累加器EBX

BX=BHBL基址变址ECX

CX=CHCL计数EDX

DX=DHDL数据

.指针及变址寄存器

SP堆栈指针

BP基址指针

DI目的变址(自动增1/减1)

SI源变址(自动增1/减1)

2、专用寄存器

///////////////////////

IP

///////////////////////

FLAGS

IP指令指针

FLAGS标志

SP堆栈指针

标志寄存器FLAGS

1514131211109876543210

NT

IO

PL

OF

DF

IF

TF

SF

ZF

AF

PF

CF

.程序状态字寄存器

PSW

表2.1PSW标志位的符号表示

标志名

flag=1

flag=0

OF溢出(是/否)

OV

NV

第四章DF方向(增/减)

DN

UP

第四章IF中断(允许/关闭)

EI

DI

第四章SF符号(负/正)

NG

PL

ZF零(是/否)

ZR

NZ

AF辅助进位(是/否)

AC

NA

PF奇偶(偶/奇)

PE

PO

CF进位(是/否)

CY

NC

 

3、段寄存器

CS

DS

ES

SS

////////FS///////

////////GS////////

CS代码

DS数据

ES附加

SS堆栈

 

.?

段寄存器是16位寄存器,用什么

办法提供20位地址.

220=1KK=1M(兆)

 

段寄存器主要用于存储器寻址,用来直接或间接地存放段地址。

是解决1M地址的寻址问题。

*8088/8086只能工作在实模式(实模式寻址1M)

 

150存储器

段地址

0000

所选存储单元

段地址

偏移地址

偏移地址

+

 

*除段寄存器外,286以上,还可见32位,前加E,如EAX,ESP,EDI。

2.3存储器

存储器分内存和外存,这里指内存,外存指硬盘等。

存储器按作用分:

RAM,ROM(C000~FFFF),Cache(缓冲CPU与

低速的RAM)

 

2.3.1存储单元的地址和内容

位、字节、字

BIT:

0/1

BYTE:

8BIT

7

6

5

4

3

2

1

0

 

WORD:

2BYTE

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

 

单字、双字、四字

70

(1)字节

N地址

158

70

(2)字N+1N地址

31高位字16

15低位字0

(3)双字N+3N+2N+1N地址

63高位双字32

31低位双字0

(4)四字N+7N+6N+5N+4N+3N+2N+1N地址

 

.存储单元以字节为最基本单位存储信息.

.存储单元的地址从0开始编号,机器中地址以二进制数表示,无符号数,书写用十六进制.

.?

字长16位表示地址,可表示多少字节单元.

210=1024=1K

216=65536=64K0---65535

地址编号十六进制:

0---FFFFH

220=1KK=1M(兆)

.一个存储单元中存放的信息称为该存储单元的内容。

(0004)=78H字节单元

(0005)=56H字节单元

(0004)=5678H字单元,高位在高地址。

(0004)=H双字单元,高位在高地址。

地址

低址

内容

0004H

78H

0005H

56H

0006H

34H

0007H

12H

2.3.2实模式存储器寻址

.?

用什么办法提供20位地址.

220=1KK=1M(兆)

 

16位段地址0000

 

000016位偏移地址

 

20位物理地址

16dx段地址+偏移地址=物理地址

代码段CS

数据段DS

堆栈段SS

附加段ES

*8088/8086只能工作在实模式(实模式寻址1M),其他可实模式/保护模式。

保护模式:

支持多任务处理,扩大寻址范围。

支持虚拟存储(把外存看作内存),

程序员编程无内存限制。

 

15,031,0内存

单元

偏移地址

选择器

 

所选段最大

4GB

+

地址转换

段基地址物理地址

 

选择器放在段寄存器中,但不直接表示段基地址,由操作系统完成转换。

 

2.4外部设备

.主机通过I/O接口与外设交换数据的。

每个I/O

接口电路中都有如下

三个寄存器:

数据寄存器

状态寄存器

命令寄存器

.端口PORT16位二进制代码0000--FFFFH

.通过调用例行程序进行

BIOSBasicInput/OutputSystem

(存在ROM中)

DOSDiskOperatingSystem

(存在磁盘中,完成比BIOS更高的功能)

 

第二章汇编语言程序实例及上机操作

 

2.1汇编语言程序实例

例2.1编写从键盘输入单个字符,并将该字符的下一个字符显示输出的程序。

codesegment

assumecs:

code

start:

movah,1

int21h

movdl,al

adddl,1

movah,2

int21h

movah,4ch

int21h

codeends

endstart

 

键入A接着显示B,键入K接着显示L

例2.2编写显示“HELLO,WORLD!

”的程序。

datasegment

Stringdb‘HELLO,WORLD!

$’

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movdx,offsetstring

movah,9

int21h

movah,4ch

int21h

codeends

endstart

 

显示HELLO,WORLD!

详见教材P31表2.1

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

2.2.1为运行汇编语言程序至少要在磁盘上建立以下文件:

1、编辑程序EDIT.EXE

2、汇编程序MASM.EXE

3、连接程序LINK.EXE

4、调试程序DEBUG.EXE

必要时还需建立CREF.EXE等文件

2.2.2建立ASM文件

在DOS的提示符下,输入EXE文件的文件名。

如:

C>EDIT↓

C>EDIT文件名.ASM↓例如文件名为LI21.ASM

C>

在EDIT程序中,将我们编写的汇编程序输入到计算机中,并将LI21.ASM保存ASM源程序。

然后退出EDIT程序,回到DOS状态。

 

2.2.3用MASM程序产生OBJ文件

源程序建立后,就要用汇编程序对源文件汇编,汇编后产生二进制的目标文件(OBJ文件),其操作与汇编程序回答如下:

C>MASMLI21.ASM↓

Microsoft(R)MacroAssmblerVersion6.0

Copyright(C)MicrosoftCorp1981-1985,1987,Allrightsreserved

Objectfilename[LI21.OBJ]:

Sourcelisting[NUL.LST]:

LI21

Cross-reference[NUL.CRF]:

LI21

51646+Bytessymbolspacefree

0WarningErrors

0SevereErrors

li21.OBJ目标文件,这是汇编的主要目的

li21.LST列表文件,可有可无

li21.CRF

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1