8086汇编语言教程笔记:CPU与内存寻址

需积分: 7 0 下载量 65 浏览量 更新于2024-09-11 收藏 45KB DOC 举报
"这是一份关于汇编语言的教程笔记,主要涵盖了汇编语言的基础知识、CPU工作原理以及内存访问等内容。笔记基于清华大学王爽的《汇编语言》教材,详细解析了汇编语言的组成、CPU的地址线宽度、内存单位的换算,以及8086CPU的寄存器结构和寻址方式。此外,还讨论了段寄存器的作用,特别是CS和IP在指令执行中的角色,以及如何通过JMP指令改变它们的值。在内存访问部分,讲解了数据段寄存器DS、字存储的规则、栈操作以及PUSH和POP指令的应用。" 汇编语言是计算机科学中的基本编程语言之一,它与机器语言密切相关,但比机器语言更易读和编写。本教程笔记首先介绍了汇编语言的三个基本组成部分:汇编指令、伪指令和其他符号。汇编指令是机器码的助记符形式,可以直接被CPU执行;伪指令则由编译器处理,不直接对应机器码;其他符号,如算术运算符,由编译器识别和处理。 在CPU的地址线宽度部分,笔记指出地址线数量决定了CPU可寻址的内存单元数量。例如,8086CPU有20根地址线,能寻址的范围是00000H到FFFFFH,总计1MB的内存空间。其中,地址00000H至9FFFFH用于主存储器,A0000H至BFFFFH为显存,C0000H至FFFFFH则是各种ROM。 在8086CPU的寄存器结构中,强调了其16位结构的特点,包括16位的运算器、寄存器和数据通路。物理地址的计算方式是段地址乘以16再加上偏移地址,这种设计允许8086达到1MB的寻址能力。段寄存器(CS、DS、SS和ES)在内存访问中扮演重要角色,其中CS与IP结合确定了指令的执行位置。由于不能直接通过MOV指令修改CS和IP,因此需要使用JMP指令来改变程序执行流程。 在内存访问章节,笔记详细解释了DS数据段寄存器的用途,并指出不能直接将数据写入段寄存器。字数据在存储时占用两个连续的内存单元,低位存储在低地址,高位存储在高地址。此外,栈操作的PUSH和POP指令以及它们对栈顶指针SP的影响也被详细阐述。PUSH用于将数据压入栈,POP则用于从栈中弹出数据,这些操作在处理函数调用和保护现场时非常关键。 通过这份教程笔记,读者可以深入理解汇编语言的基本概念,8086CPU的工作原理,以及如何有效地访问和操作内存。这对于学习计算机底层原理和进行系统级编程至关重要。