8086指令系统详解:从寻址方式到基本指令

需积分: 0 2 下载量 68 浏览量 更新于2024-08-25 收藏 7.95MB PPT 举报
“8086指令系统教学要求,包括微处理器结构、汇编语言语句格式和8088/8086指令的掌握,涉及数据传送、加减运算、位操作和控制转移等。” 在学习8086指令系统时,首先要了解微处理器的基本结构,尤其是8088/8086的功能结构。8088/8086是16位微处理器,它们的核心组成部分包括算术逻辑单元(ALU)、控制单元(CU)和寄存器组。这些寄存器包括通用寄存器(如AX, BX, CX, DX, SI, DI, SP, BP)和段寄存器(CS, DS, ES, SS),它们在处理数据和控制程序流程中起着关键作用。 接下来,掌握8088/8086的寄存器结构意味着理解每个寄存器的用途,例如AX用于一般性计算,BX、CX和DX常用于数据传输,SI和DI在处理字符串时用作源和目标指针,SP和BP则与堆栈操作相关。存储器结构则包括内存的分段机制,每个段寄存器存储一个16位的段基址,与偏移地址组合以形成20位的物理地址。 8086的寻址方式是理解指令执行的基础,包括立即数寻址、寄存器寻址、直接寻址、间接寻址、相对寻址等多种方式。立即数寻址直接在指令中包含数值,如`MOV AX, 0102H`。寄存器寻址则直接使用寄存器中的数据,如`MOV AL, BL`。其他寻址方式则涉及内存地址的计算,如直接寻址(`MOV [BX], AX`)和间接寻址(`MOV AX, [BX+DI]`)。 在指令方面,8086支持的数据传送指令如`MOV`、`XCHG`和`XLAT`用于在寄存器、内存和I/O之间移动数据。`PUSH`和`POP`用于管理堆栈,`LEA`用于加载地址到寄存器。加减运算指令如`ADD`、`SUB`、`ADC`、`SBB`以及`CMP`用于数值的算术运算和比较。位操作指令如`AND`、`OR`、`XOR`、`NOT`、`TEST`以及移位和循环移位指令(`SHL`、`SHR`、`SAR`、`ROL`、`ROR`、`RCL`、`RCR`)用于位级别的逻辑操作。控制转移指令如`JMP`、`Jcc`、`LOOP`用于程序流程控制,`CALL`和`RET`用于子程序调用和返回,`INT n`用于中断处理。 此外,还需要掌握DOS字符和字符串输出功能调用的方法,例如使用INT 21H的DOS功能调用,以及了解ROM-BIOS的字符输出功能调用,这些是编写低级程序时与操作系统交互的基础。 通过深入学习和实践这些指令,开发者能够编写高效的汇编语言程序,理解底层硬件操作,并为更高级的编程语言和系统级编程打下坚实的基础。