内存存储方式
CPU中用16位寄存器来存储一个字(1 word = 2 bytes = 16 bits). 其中高8位存放高字节, 低8位存放低字节. 如下图, 用0 , 1两个内存单元存放数据20000(4E20H).
DS和[address]
- CPU读写一个内存单元时,必须要先给出这个内存单元的地址.
- 内存地址由段地址和偏移地址组成.
- 数据段寄存器DS( Data Segment ), 用来存放要访问数据的段地址.
mov BX, 1000H #向BX寄存器中写入1000H
mov DS, BX #将BX寄存器中的值移入DS寄存器
mov AL,[0] #将地址单元1000h:0中的值移入AX寄存器中的低位.
#"[]"说明操作对象是一个内存单元
- "[...]"表示一个内存单元, [0] 表示内存单元的偏移地址为0. 在执行指令时8086CPU自动读取DS寄存器中的数据作为内存单元的 段地址 .
- 因为8086CPU的硬件设计无法使用mov指令直接对DS寄存器写入数据.
- 段寄存器:
- 代码段寄存器CS(Code Segment).
- 数据段寄存器DS(Data Segment).
- 堆栈段寄存器SS(Stack Segment).
- 附加段寄存器ES(Extra Segment).
例题:
mov、add、sub指令
- mov
- mov 段寄存器, 寄存器.
- mov 寄存器, 段寄存器.
- mov 内存单元, 寄存器.
- mov 内存单元, 段寄存器.
- mov 段寄存器, 内存单元.
- add和sub
- 不能对段寄存进行操作.
CPU提供的栈机制
- 栈(stack), 有两个基本操作: LIFO(Last In First Out)
- 入栈: 将新元素放入栈顶.
- 出栈: 从栈顶取出一个元素.
- 8086CPU提供入栈(PUSH)和出栈(POP)指令. 例如:
- push ax : 表示将寄存器ax中的数据送入栈中.
- pop ax : 表示从栈顶取出数据送入ax.
- 注意: 在8060CPU中push/pop操作都是以word(16 bits)为单位. 图例:
- CPU如何知道栈顶的地址?
- 8086CPU中有两个寄存器:
- 段寄存器SS.
- 寄存器SP.
*任意时刻,SS:SP 都指向栈顶元素.
- 8086CPU中有两个寄存器:
push、pop指令
1. push/pop 寄存器
2. push/pop 段寄存器
3. push/pop 内存单元
- 将10000H~1000FH这段空间作为栈, 初始栈是空的, 将AX, BX, DS中的数据入栈.
分析:
1. 需要设置栈空间.则需要设置SS:SP.
2. push AX BX DS.
代码:
mov ax, 1000 ;将段地址写入寄存器ax.
mov ss, ax ;将ax寄存器中的值写入ss段寄存器.
mov sp, 0010 ;将偏移地址写入sp寄存器.
;将AX, BX, DS中的数据入栈
push ax
push bx
push ds
栈段
- 栈段就是将一组地址连续, 起始地址为16的倍数的内存单元当作栈空间来使用.
- 栈段的最大容量为64KB. 因为在执行push, pop指令时只修改SP, 而SP的变化换位是0-FFFFH, 所以为64KB.
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
寄存器
+关注
关注
31文章
5325浏览量
120046 -
存储器
+关注
关注
38文章
7455浏览量
163619
发布评论请先 登录
相关推荐
ARM汇编语言与指令格式资料分享
1、ARM汇编语言与指令格式介绍汇编语言介绍概念指的是用助记符代替操作码,用地址符号或标签(:#&)代替地址码的编程语言。优缺点优点:可以直接访问硬件目标,代码简短,执行速度快
发表于 04-22 16:10
汇编语言教程-段寄存器的说明语句
汇编语言教程-段寄存器的说明语句
在汇编语言源程序中可以定义多个段,每个段都要与一个段寄存器建立一种对应关系。建立这
发表于 03-27 17:17
•1391次阅读
汇编语言学习课件_微处理器基础知识
汇编语言学习课件 第二章 微处理器基础知识
2.1 Intel公司80x86系列微处理器简介
2.2 程序可见寄存器组
2.3 存储器
发表于 12-31 10:39
•0次下载
[从零学习汇编语言] -寄存器详解
文章目录前言一、 存储器与通用寄存器1. 存储器2. 通用寄存器前言上一章我们曾简单的介绍过计算机中的一些硬件和软件的相关概念,还不熟悉的小伙伴可以点击下面的链接进行预习:[
发表于 11-26 20:51
•8次下载
单片机汇编语言的结构/数据类型/汇编指令
开发汇编语言是为了为机器级代码指令提供助记符或符号,汇编语言程序由助记符组成,因此应将它们翻译成机器代码。负责这种转换的程序称为汇编程序。汇编语言通常被称为低级
评论