汇编语言_入门经典教材-230页 汇编入门(7 讲)

时间:2025-04-05

汇编入门(7 讲)

时间:2009-5-16 8:12:26

核心提示:第 5 章微机CPU 的指令系统指令系统确定了CPU 所能完成的功能,是用 汇编语言进行程序设计的最基本部分。如果不熟悉汇编指令的功能及其有关规定,那么,肯 定不能灵活运用汇编语言。所以,本章的内容是学习本课程的重点和难点。5.1 汇编语言 指令格式为了介绍指令系统中指令的功能,先要清楚汇编语言是如何书写指令的...

第5章微机CPU的指令系统

指令系统确定了CPU 所能完成的功能,是用汇编语言进行程序设计的最基本部分。如 果不熟悉汇编指令的功能及其有关规定,那么,肯定不能灵活运用汇编语言。所以,本章的 内容是学习本课程的重点和难点。

5.1 汇编语言指令格式

为了介绍指令系统中指令的功能,先要清楚汇编语言是如何书写指令的,这就象在学习 高级语言程序设计时,要清楚高级语言语句的语义、语法及其相关规定一样。

5.1.1 指令格式

汇编语言的指令格式如下:

指令助忆符 [ 操作数1 [, 操作数2 [, 操作数3]]] [; 注释]

指令助忆符体现该指令的功能,它对应一条二进制编码的机器指令。指令的操作数个数 由该指令的确定,可以没有操作数,也可以有一个、二个或三个操作数。绝大多数指令的操 作数要显式的写出来,但也有指令的操作数是隐含的,不需要在指令中写出。 当指令含有操作数,并要求在指令中显式地写出来时,则在书写时必须遵守: 指令助忆符和操作数之间要有分隔符,分隔符可以是若干个空格或TAB 键; 如果指令含有多个操作数,那么,操作数之间要用逗号"," 分开。

指令后面还可以书写注释内容,不过,要在注释之前书写分号";"。

5.1.2了解指令的几个方面

在学习汇编指令时,指令的功能无疑是我们学习和掌握的重点,但要准确、有效地运用 这些指令,我们还要熟悉系统对每条指令的一些规定或约束。

归纳起来,对指令还要掌握以下几个方面内容:

、要求指令操作数的寻址方式;

、指令对标志位的影响、标志位对指令的影响;

、指令的执行时间,对可完成同样功能的指令,要选用执行时间短的指令(见附 录2 )。

5.2、指令系统

指令系统是CPU 指令的集合,CPU 除了具有计算功能的指令外,还有实现其它功能的 指令,也有为某种特殊的应用而增设的指令。

通常,把指令按其功能分成以下几大类:

数据传送指令

标志位操作指令

算术运算指令

逻辑运算指令

移位操作指令

位操作指令

比较运算指令

下面,我们逐一介绍每类指令中

的指令。

循环指令

转移指令

条件设置字节指令

字符串操作指令

ASCII-BCD 码运算调整指令

处理器指令

5.2.1 数据传送指令

数据传送指令又分为:传送指令、交换指令、地址传送指令、堆栈操作指令、转换指令 和I/O 指令等。

除了标志位操作指令SAHF 和POPF 指令外,本类的其它指令都不影响标志位。

1 、传送指令MOV(Move Instruction)

传送指令是使用最频繁的指令,它相对于高级语言里的赋值语句。指令的格式如下: MOV Reg/Mem, Reg/Mem/Imm

其中:Reg—Register(寄存器),Mem—Memory(存储器),Imm—Immediate( 立即数),它 们可以是8 位、16 位或32 位( 特别指出其位数的除外) 。在本网络课件的网页中,都将采用上

述缩写,此后不再说明。

指令的功能是把源操作数(第二操作数)的值传给目的操作数(第一操作数)。指令执行后, 目的操作数的值被改变,而源操作数的值不变。在存储单元是该指令的一个操作数时,该操 作数的寻址方式可以是任意一种存储单元寻址方式。

下面列举几组正确的指令例子:

源操作数是寄存器

MOV CH, AL MOV BP, SP MOV ECX, EBX

MOV DS, AX MOV [BX], CH MOV [BX+SI], AX

源操作数是存储单元

MOV AL, [100H] MOV BX, ES:[DI] MOV EDX, [BX]

MOV BX, VARW MOV AX, [BX+SI] MOV CH, [BX+DI+100H]

其中:VA R W 是字类型内存变量(下同)。

源操作数是立即数

MOV AL, 89H MOV BX, -100H MOV EDX, 12345678H

MOV VARW, 200H MOV [BX], 2345H MOV [BX+DI], 1234H

在汇编语言中,主要的数据传送方式如图5.1所示。虽然一条 MOV指令能实现其中大 多数的数据传送方式,但也存在MOV指令不能实现的传送方式。

对MOV指令有以下几条具体规定,其中有些规定对其它指令也同样有效。

1) 、两个操作数的数据类型要相同,要同为8 位、16位或32位;如:MOV BL, AX等是 不正确的;

2) 、两个操作数不能同时为段寄存器,如:MOV ES, DS等;

3) 、代码段寄存器 CS不能为目的操作数,但可作为源操作数,如:指令 MOV CS, AX

等不正确,但指令MOV AX, CS等是正确的;

4) 、立即数不能直接传给段寄存器,如:MOV DS, 100H等;

5) 、立即数不能作为目的操作数,如:MOV 100H, AX等;

6) 、指令指针IP ,不能作为MOV指令的操作数;

7) 、两个操作数不能同时为存储单元,如:M O V VA R A , VA R B等,其中VA R A 和VA R B

是同数据类型的内存变量。

对于规定2 、4 和7 ,我们可以用通用寄存器作为中转来达到最终目的。表5.1列举一个 …… 此处隐藏:13602字,全部文档内容请下载后查看。喜欢就下载吧 ……

汇编语言_入门经典教材-230页 汇编入门(7 讲).doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219