8086汇编语言:第3章寄存器与内存访问
需积分: 4 175 浏览量
更新于2024-07-30
收藏 848KB PPT 举报
"《汇编语言》清华大学课件 第3章"
在计算机科学中,汇编语言是与机器语言紧密相关的编程语言,它允许程序员直接操纵硬件系统。本课件,出自王爽所著的《汇编语言》并由清华大学出版社出版,详细介绍了汇编语言中的关键概念,特别是关于内存访问的机制。以下是对各知识点的详细解释:
3.1 内存中字的存储:内存是计算机存储数据的主要场所,字是内存中数据的基本单位。在8086CPU中,字是由两个字节组成的,高字节在前,低字节在后。例如,如果0地址处开始存放20000H,那么0号单元存放的是字的高字节,1号单元存放的是低字节。
3.2 DS和[address]:DS(Data Segment)寄存器是8086CPU中用于存放数据段地址的寄存器。在访问内存时,通常需要结合DS和偏移地址(address)来形成完整的20位物理地址。例如,若DS=1000H,要访问地址为2000H的内存单元,实际的地址计算为DS*16 + 偏移地址 = 1000H * 16 + 2000H。
3.3 字的传送:字的传送是指在内存和CPU寄存器之间,或内存的两个不同位置之间移动数据。这涉及到如`mov`指令,用于将一个操作数的值复制到另一个操作数。
3.4 mov、add、sub指令:`mov`指令用于无条件地将源操作数的值移动到目的操作数;`add`用于执行加法操作,`sub`用于执行减法操作,这些指令是汇编语言中最基本的算术运算。
3.5 数据段:在8086系统中,数据可以组织在不同的段中,数据段是用来存储程序和变量的内存区域,其起始地址由DS寄存器指定。
3.6 栈:栈是一种后进先出(LIFO)的数据结构,CPU内部提供了支持栈操作的硬件机制。栈常用于函数调用、保存临时数据等场景。
3.7 CPU提供的栈机制:8086CPU中,栈顶位置由SP(Stack Pointer)寄存器维护,每次压栈或弹栈,SP会自动更新以跟踪栈顶位置。
3.8 栈顶超界的问题:当连续的栈操作导致栈顶位置超出预设的栈区范围时,就会发生栈溢出,这可能导致程序崩溃或其他未定义的行为。
3.9 push、pop指令:`push`指令用于将数据压入栈中,`pop`指令则用于从栈顶弹出数据。这两个指令经常用于保存和恢复CPU寄存器的状态,以及在函数调用中传递参数和返回值。
3.10 栈段:栈也可以组织在特定的内存段中,这个段被称为栈段,其起始地址通常由SS(Stack Segment)寄存器指定,与DS类似,但专门用于管理栈的存储。
通过学习这一章的内容,读者将能够理解如何通过汇编语言有效地访问和操作内存,包括数据的存储、传送以及利用CPU提供的栈机制进行复杂操作。这些基础知识对于深入理解计算机系统的底层工作原理至关重要。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2011-09-24 上传
2009-01-18 上传
721 浏览量
2009-10-23 上传
2010-11-15 上传
122 浏览量
hongly168
- 粉丝: 0
- 资源: 41
最新资源
- 数字电子技术基础_阎石第四版课后习题答案详解
- 高质量c++c编程指南
- 软件评测师2008年真题
- 利用ArcObjects组件技术实现图层的分类符号化
- CodeIgniter 教程
- 华为关于gpon简介
- LiferayPortal二次开发指南
- Active Man in the Middle Atacks
- 电磁兼容原理及其应用课件
- 全国软件考试软件设计师考试大纲
- 基于ArcObjects的网络三维地形场景生成
- 2009年软考程序员级考试大纲
- POP3与Foxmail+Server邮件服务器配置教程
- Log4简明手册(配置)
- net2003/2005编程技巧大全
- 数字电子技术基础 阎石第四版课后习题答案详解.pdf