8086指令系统:地址—目标传送与寻址方式解析

需积分: 13 0 下载量 183 浏览量 更新于2024-08-22 收藏 1.38MB PPT 举报
"本文主要介绍了8086微处理器中的指令系统,特别是地址—目标传送指令,包括LEA、LDS和LES三条指令。此外,还详细阐述了指令系统的概念,以及指令的基本格式和寻址方式,特别是立即寻址和寄存器寻址方式。" 在8086的指令系统中,地址—目标传送指令主要用于处理存储器操作数的地址,而不是其实际内容。这类指令有三种,分别是LEA(有效地址送寄存器指令),LDS(指针送寄存器和DS的指令),以及LES(指针送寄存器和ES的指令)。LEA指令用于将一个存储器表达式的地址传送到寄存器中,而LDS和LES则用于将存储器操作数的段地址和偏移地址分别加载到指定寄存器和段寄存器中。 指令系统是由一系列控制计算机执行特定操作的命令组成的集合。每条指令通常包括三个关键部分:操作类型(由指令助记符表示)、操作数以及操作数的寻址方式。指令的书写格式一般包含可选的标号、指令助记符、操作数和注释。寻址方式是确定操作数或其地址的方法,分为立即数寻址、寄存器寻址等多种方式。 立即数寻址是将操作数直接嵌入指令中,适用于初始化寄存器或存储器,但速度较快,且只能作为源操作数。例如,`MOV AX, 1234H` 将立即数1234H加载到AX寄存器中。然而,需要注意的是,不同位宽的立即数只能对应正确大小的寄存器,如16位立即数只能用于16位寄存器,8位立即数可用于8位或16位寄存器。 寄存器寻址则操作数直接存储在CPU内部的寄存器中,执行速度快,可以作为源或目的操作数。8086有16位和8位寄存器,如AX、BX等和AH、AL等。这种方式下的操作数长度必须与目的操作数一致,例如`MOV AX, BX` 或 `MOV DL, CL`。 在编程时,理解并正确使用这些寻址方式和指令是至关重要的,因为它们直接影响程序的效率和正确性。例如,尝试将16位立即数加载到8位寄存器中会导致错误,如`MOVAL, 1234H` 或 `MOVBL, 123H` 都是不正确的指令。因此,在编写汇编语言程序时,需确保源操作数与目的操作数的类型匹配,以避免引发错误。
2023-05-24 上传