UNIT THREE
基础
(1) 内存以字节为单位,划分为若干个单元。
(2) 计算机内数据存-取单位:
① 字节 (8bit)
② 字 (16bit)
③ 双字 (32bit)
④ 四字 (64bit)
ds寄存器
DS: 数据段段寄存器,用于存放数据段的「段地址」
将一段内存用作数据段,是编程时的一种安排
在mov, add, sub等汇编指令中,访问内存单元时,默认情况下,指的是数据段。
格式:
mov ax, [1]; ax ← ( (ds) × 16 + 1)
附:
注意:
(1) 两个操作数长度要一致。
(2) 关于常数(也叫立即数)
① 不能作为第1个操作数(目的操作数)
② 作第2个操作数(源操作数)时,如果最高位是十六进制的a~f或A~F,前面要加零!
(2)例:
mov 4000H, ax × mov ax, 4000H √
mov ax, A400H × mov ax, 0A400H √
(3) 两个内存单元之间不能直接传送数据。
(4) 不能使用mov指令修改CS和IP的值。
(5)段寄存器
① 两个段寄存器之间不能直接传送;
② 不能把常数送到段寄存器。
栈
「栈」是一个逻辑上的概念。可以将一段内存空间当作「栈」来使用。
栈顶: 最后入栈的字数据所对应的地址单元
栈底: 固定的一端,栈区最高地址单元的前一个单元
入栈: 把数据存入栈
出栈: 从栈取出数据
SS: 栈段段寄存器,用于存放栈段的「段地址」
SP: 栈指针寄存器,用于存放栈顶的偏移地址。
SS:SP对应的物理地址是栈顶的物理地址。
(SS) × 16 + (SP) → 栈顶的物理地址
「栈」操作指令: push和pop
小结
(1) 「段」是一个逻辑上的概念。
编程时,可根据需要指定一段内存区用作数据段、代码段或是栈段。
(2) 用作数据段时,要把段地址→DS
用作栈段时,要把段地址→SS,栈顶偏移地址 → SP
用作代码段时,段地址→CS,要取的指令偏移地址→IP。但CS和IP的值不能使用mov改变。
(3) 一段内存可以同时用作代码段、数据段、栈段。
由编程时灵活确定。
(4) 在8086CPU中,每个段的最大长度不能超过64KB。
(因为寄存器是16位的,能表示的地址范围只能是0000H~FFFFH,即0~216-1)
UNIT THREE的更多相关文章
- ABP(现代ASP.NET样板开发框架)系列之12、ABP领域层——工作单元(Unit Of work)
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之12.ABP领域层——工作单元(Unit Of work) ABP是“ASP.NET Boilerplate Pr ...
- ABP源码分析十:Unit Of Work
ABP以AOP的方式实现UnitOfWork功能.通过UnitOfWorkRegistrar将UnitOfWorkInterceptor在某个类被注册到IOCContainner的时候,一并添加到该类 ...
- Failed to stop iptables.service: Unit iptables.service not loaded.
redhat 7 [root@lk0 ~]# service iptables stop Redirecting to /bin/systemctl stop iptables.service Fai ...
- VS2012 Unit Test 个人学习汇总(含目录)
首先,给出MSDN相关地址:http://msdn.microsoft.com/en-us/library/Microsoft.VisualStudio.TestTools.UnitTesting.a ...
- VS2012 Unit Test —— 我对IdleTest库动的大手术以及对Xml相关操作进行测试的方式
[1]我的IdleTest源码地址:http://idletest.codeplex.com/ [2]IdleTest改动说明:2013年10月份在保持原有功能的情况下对其动了较大的手术,首先将基本的 ...
- VS2012 Unit Test——Microsoft Fakes入门
如题,本文主要作为在VS2012使用Fakes的入门示例,开发工具必须是VS2012或更高版本. 关于Fakes的MSDN地址:http://msdn.microsoft.com/en-us/libr ...
- MTU(Maximum transmission unit) 最大传输单元
最大传输单元(Maximum transmission unit),以太网MTU为1500. 不同网络MTU如下: 如果最大报文数据大小(MSS)超过MTU,则会引起分片操作. 路径MTU: 网路 ...
- Simulink Memory vs Unit Delay
Memoryブロック.Unit Delayブロック共に前回の入力値を出力しますが.動作するタイミングが異なります. ●Memoryブロック シミュレーションの各時刻(ステップ)で動作し.「1ステップ」 ...
- GRU(Gated Recurrent Unit) 更新过程推导及简单代码实现
GRU(Gated Recurrent Unit) 更新过程推导及简单代码实现 RNN GRU matlab codes RNN网络考虑到了具有时间数列的样本数据,但是RNN仍存在着一些问题,比如随着 ...
- Unit Testing with NSubstitute
These are the contents of my training session about unit testing, and also have some introductions a ...
随机推荐
- 【layui】下拉控件dropdown 简单的使用
官方网站地址: http://test.microanswer.cn/page/dropdown.html 1.代码 layui.use(['index', 'table', 'form', 'dro ...
- B - Yet Another Palindrome Problem
B - Yet Another Palindrome Problem 思路: 给一个长为n(≤5000≤5000)的数组,问是否存在一个长度至少为3的子序列是回文的.回文的定义是把序列reverse, ...
- 深度剖析CPython解释器》Python内存管理深度剖析Python内存管理架构、内存池的实现原理
目录 1.楔子 第1层:基于第0层的"通用目的内存分配器"包装而成. 第2层:在第1层提供的通用 *PyMem_* 接口基础上,实现统一的对象内存分配(object.tp_allo ...
- 富文本 HTML String 转化为 nodes 数组
https://github.com/ant-mini-program/mini-html-parser?spm=ding_open_doc.document.0.0.4ef9722fXz27PV
- WPF窗体图标设置
WPF程序在编写结束后,界面没有图标,影响美观性.今天在添加图标的时候,一直报错,然后通过查找资料,将这个问题解决,现在将主要步骤记录如下; 准备好图标文件,注意文件格式应该为ico格式文件.有一个在 ...
- c++基础: uint8_t uint16_t uint32_t uint64_t size_t ssize_t数据类型
https://blog.csdn.net/lzx_bupt/article/details/7066577 在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等.咋一看,好像是个 ...
- ICPC2020 World Final
ICPC2020 WF C 洛谷 题意:给定矩形区域左下角\((0,0)\),右上角\((dx,dy)\),其中\(2<=dx,dy<=10^5\),在矩形区域有\(n(n<=100 ...
- R7-7 调查电视节目受欢迎程度
R7-7 调查电视节目受欢迎程度 分数 15 全屏浏览题目 切换布局 作者 颜晖 单位 浙大城市学院 某电视台要调查观众对该台8个栏目(设相应栏目编号为1~8)的受欢迎情况,共调查了n位观众(1≤n≤ ...
- 92、kkfile打印当前页
使用kkfile预览pdf时,有肯能需要打印其中的某一张.如果pdf中有几百张,那么打印加载就会很慢.打印当前页就不会出现这个问题. 这个是我编译后的,有需要的请联系QQ: 1842988062
- 微信小程序学习记录
尺寸单位 rpx 常常以iphone6为开发基准, 1px = 2rpx,不同设备的比例是不同的: 小程序生命周期 和vue的生命周期很相似,不过小程序的生命周期和页面.组件的生命周期又又一点不一样 ...