8086指令系统详解:取有效地址与寻址方式

需积分: 13 0 下载量 151 浏览量 更新于2024-08-22 收藏 1.38MB PPT 举报
"8086微处理器的指令系统,特别是关于取有效地址指令的介绍。" 8086微处理器的指令系统是其核心功能的一部分,它包含了各种指令,用于控制计算机执行不同的操作。指令系统是所有指令的集合,包括数据传送、算术运算、逻辑运算、控制流程等不同类别。每条指令都具有特定的格式和功能,旨在高效地处理数据和控制程序执行。 取有效地址指令,如"LEA"(Load Effective Address),是一种特殊的指令,它的主要作用是将存储器源操作数的有效地址直接送入指定的目标寄存器。指令格式通常为 "LEA R,src",其中R是目标寄存器,src是源操作数,可以是一个存储器地址的表达式。例如,"LEA BX,COUNTER"这条指令会将变量"COUNTER"的地址偏移量(假设为0002H)装载到BX寄存器中,使得BX寄存器的值变成0002H。 指令的书写通常包括标号、指令助记符和操作数,有时还会附带注释。标号用于标识指令的位置,指令助记符则表示指令的功能,操作数则是指令作用的对象或其存放位置。在8086指令系统中,寻址方式是寻找操作数或其地址的方法,主要有立即数寻址、寄存器寻址、存储器寻址等多种方式。 立即数寻址是最直接的方式,操作数作为常数直接包含在指令中,如"MOV AX,1234H",将立即数1234H加载到AX寄存器中。这种方式执行速度快,但只能作为源操作数,且有大小限制,16位立即数只能装入16位寄存器,8位立即数可以装入8位或16位寄存器。 寄存器寻址则是另一种快速的方式,操作数存储在CPU内的寄存器中,例如"MOV AX,BX"将BX寄存器的内容移动到AX寄存器。这种寻址方式执行速度快,但要求源操作数和目的操作数的长度一致。 在8086的指令系统中,数据传送类指令如"MOV"是基础,而"LEA"这样的特殊指令则提供了额外的功能,如获取存储器地址,这对于数组遍历、动态内存管理等操作尤为重要。理解并熟练掌握这些指令对于编写高效的汇编语言程序至关重要。在编程时,必须注意操作数的类型匹配,遵循指令系统的规定,以确保程序的正确执行。