基础

(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的更多相关文章

  1. ABP(现代ASP.NET样板开发框架)系列之12、ABP领域层——工作单元(Unit Of work)

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之12.ABP领域层——工作单元(Unit Of work) ABP是“ASP.NET Boilerplate Pr ...

  2. ABP源码分析十:Unit Of Work

    ABP以AOP的方式实现UnitOfWork功能.通过UnitOfWorkRegistrar将UnitOfWorkInterceptor在某个类被注册到IOCContainner的时候,一并添加到该类 ...

  3. 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 ...

  4. VS2012 Unit Test 个人学习汇总(含目录)

    首先,给出MSDN相关地址:http://msdn.microsoft.com/en-us/library/Microsoft.VisualStudio.TestTools.UnitTesting.a ...

  5. VS2012 Unit Test —— 我对IdleTest库动的大手术以及对Xml相关操作进行测试的方式

    [1]我的IdleTest源码地址:http://idletest.codeplex.com/ [2]IdleTest改动说明:2013年10月份在保持原有功能的情况下对其动了较大的手术,首先将基本的 ...

  6. VS2012 Unit Test——Microsoft Fakes入门

    如题,本文主要作为在VS2012使用Fakes的入门示例,开发工具必须是VS2012或更高版本. 关于Fakes的MSDN地址:http://msdn.microsoft.com/en-us/libr ...

  7. MTU(Maximum transmission unit) 最大传输单元

    最大传输单元(Maximum transmission unit),以太网MTU为1500. 不同网络MTU如下: 如果最大报文数据大小(MSS)超过MTU,则会引起分片操作.   路径MTU: 网路 ...

  8. Simulink Memory vs Unit Delay

    Memoryブロック.Unit Delayブロック共に前回の入力値を出力しますが.動作するタイミングが異なります. ●Memoryブロック シミュレーションの各時刻(ステップ)で動作し.「1ステップ」 ...

  9. GRU(Gated Recurrent Unit) 更新过程推导及简单代码实现

    GRU(Gated Recurrent Unit) 更新过程推导及简单代码实现 RNN GRU matlab codes RNN网络考虑到了具有时间数列的样本数据,但是RNN仍存在着一些问题,比如随着 ...

  10. Unit Testing with NSubstitute

    These are the contents of my training session about unit testing, and also have some introductions a ...

随机推荐

  1. 题目集7-9总结性Blog

    一.前言 通过对PTA的第七.八.九题目集的学习与总结,我感觉本三次题目集的题量不大,在完成范围之内.难度的话也一般,有难度,但是在解决范围之内,大多数较难的知识点可以通过自学(图书馆看书.看网课)的 ...

  2. gopher必读文章

    Getting Started with Go Programminghttps://www.programiz.com/golang/getting-startedHow to Write Go C ...

  3. Django操作mongo数据库二(MongoClient方式)

    一.基本环境 1.开发环境: Python环境:Python 3.8.16 Django环境:4.1 2.需要安装的包 pip install pymongo pip install mongoeng ...

  4. jmeter安装配置

    #前提需要有java的环境变量JAVA_HOME=/usr/local/java#jmeter变量CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/t ...

  5. TS补充笔记

    TS掘金笔记:https://juejin.cn/post/6872111128135073806    *为疑惑点 类型总结: 2.6.1Enum类型数字枚举设置初始值: 2.6.1.1给第一个枚举 ...

  6. layui多图片上传

    <div> <button type="button" class="layui-btn" id="mulUpload"& ...

  7. git bash 笔记

    下载和安装 官网下载地址:https://git-scm.com/ 国内镜像下载地址:https://registry.npmmirror.com/binary.html?path=git-for-w ...

  8. 力扣1143. 最长公共子序列(dp)

    给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度.如果不存在 公共子序列 ,返回 0 . 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符 ...

  9. 在CIMES中调用存储过程

    页面 调用步骤 DataTable dtResult = null; CustomDataAgent TODB_con = DBCenter.Create(AppSetting.Manufacturi ...

  10. linux中大括号、小括号、中括号的区别和用法

    大括号 {  } 1.用于取多个变量 可以进行取变量和字符串拼接,假设:var='1234'       echo  ${var}abcd    输出为:1234abcd 2.正则表达式,用于大括号内 ...