80X86汇编语言:物理地址形成与寄存器使用

需积分: 18 1 下载量 50 浏览量 更新于2024-08-14 收藏 1.38MB PPT 举报
"80X86汇编语言程序设计,胡福林教授的课程,讲解8086微处理器的限制与汇编语言预备知识,包括寄存器组、主存储器编址、物理地址形成、数的表示、标志寄存器等内容,以及汇编源程序结构。课程涵盖汇编语言基础、80X86寄存器、堆栈操作、实模式和保护模式下的地址计算、数的运算对标志寄存器的影响等主题。" 在80X86汇编语言中,"问题的由来"主要指的是8086微处理器的局限性。由于8086设计时只有20位的地址总线,这限制了它可以寻址的最大内存为2^20字节,即1MB。然而,16位的寄存器如SP、BP、SI和DI限制了直接通过这些寄存器访问超过64KB(2^16字节)的内存。为了解决这个问题,80X86引入了存储器分段机制,将1MB内存分为多个64KB的段,每个段可以独立寻址,从而通过16位的段基址和16位的偏移量组合成32位的物理地址,实现对整个1MB内存的访问。 1.3.3 存储器物理地址的形成是关键点之一。在8086的实模式下,物理地址是通过段地址左移4位(相当于乘以16)后加上16位的偏移地址得到的。段地址代表了段的起始位置,而偏移地址则是在该段内的相对位置。这样,即使寄存器只能存储16位,也可以表示出20位的物理地址。 学习80X86汇编语言时,需要掌握以下重点内容: 1. 汇编语言和汇编程序的概念:汇编语言是一种低级编程语言,它将机器指令以人类可读的形式表示出来,而汇编程序则是将汇编语言源代码转换成机器语言的程序。 2. 80X86寄存器组:包括数据寄存器(AX, BX, CX, DX)、指针寄存器(SP, BP)、索引寄存器(SI, DI)以及控制和状态寄存器,如CS(代码段寄存器)、DS(数据段寄存器)等。 3. 堆栈操作:堆栈是按照后进先出(LIFO)原则工作的数据结构,PUSH和POP指令分别用于入栈和出栈,而堆栈指示器(SP)用于跟踪栈顶的位置。 4. 物理地址的形成:在实模式下,通过段地址和偏移地址计算,而在保护模式下,涉及到更复杂的分页机制。 5. 数和符号的表示方法:了解二进制、八进制、十六进制和ASCII编码等。 6. 标志寄存器:如CF(进位标志)、OF(溢出标志)、ZF(零标志)和SF(符号标志),它们记录了算术和逻辑操作的结果,影响着程序的流程控制。 学习难点主要包括理解各个寄存器的功能、堆栈操作的实际应用,以及在保护模式下物理地址的复杂计算。同时,理解有符号数和无符号数的运算对标志寄存器的影响也是重要的,因为这关系到条件转移指令的正确使用。 汇编语言是计算机科学的基础,深入理解80X86汇编有助于理解计算机系统的底层工作原理,对于软件开发、系统编程和硬件调试等领域都有重要作用。胡福林教授的课程提供了一个系统学习80X86汇编的框架,帮助学生逐步掌握这些核心概念和技能。