3 寄存器(内存访问)

汇编语言笔记 汇编语言笔记(王爽汇编)第3章寄存器(内存访问)3.1内存中字的存储3.2DS和[address]3.3字的传送3.4mov、add、sub指令3.5数据段检测点3.1 第3章寄存器(内存访问) 第2章中,我们主要从CPU如何执行指令的角度讲解了8086CPU的逻辑结构、形成物理地址的方法、相关的寄存器以及一些指令。这一章中,我们从访问内存的角度继续学习几个寄存器。 3.1内存中字的存储 **CPU中,用16位寄存器来存储一个字。高8位存放高位字节,低8位存放低位字节。**在内存中存储时,由于内存单元是字节 阅读详情

1、内存中字的存储
CPU用16位存储器来存储一个字,高八位存放高位字节,低八位存放低位字节
内存中字的存储
我们用0和1两个内存单元存放数据20000(4E20H)
Q:0地址单元中存放的字节型数据是多少?
A:20H。
Q:0地址字单元中存放的字节型数据是多少?
A:4E20H。
Q:1地址字单元中存放的字节型数据是多少?
A:124EH。
2、DS和[address]
先给段代码:
mov bx,1000H
mov ds,bx
mov al [0]
解释(顺序不分先后):
[0] 0代表内存单元的偏移地址,既然有偏移地址,那么内存单元一定缺少段地址咯,所以段地址是直接读取ds中的数据!
ds寄存器通常用来存放要访问数据的段地址。
8086CPU不支持将数据直接送入段寄存器的操作(这属于8086CPU硬件设计的问题)。
ds[address]与C语言中的数组有些相像,都是前面存放首地址,后面偏移地址然后间接引用(就是将里面的数值取出)。
3、mov add sub的基本参数用法
以mov举例 有:
mov 寄存器,数据(mov ax,8)
mov 寄存器,寄存器(mov ax,bx)
mov 寄存器,内存单元(mov ax,[0])
mov 内存单元,寄存器(mov [0],ax)
mov 段寄存器,寄存器(mov ds,ax)
相应的可以拓展出:
mov 寄存器,段寄存器(mov ax,ds)
mov 内存单元,段寄存器(mov [0],ds)
mov 段寄存器,内存单元(mov ds,8[0])
mov add sub是具有两个操作对象的指令,jmp是具有一个操作对象的指令。

栈
4、8086CPU的入栈出栈操作都是以字为单位进行的。
5、栈顶的段地址存放在段寄存器SS中,偏移地址存放在SP中。任意时刻,SS:SP指向栈顶元素。push和pop指令执行时,CPU从SS和SP中得到栈顶的地址。
6、push pop用法:
push 寄存器 //将一个寄存器中的数据入栈
push 段寄存器//将一个段寄存器中的数据入栈
push 内存单元//将一个内存单元处的字入栈(栈操作都是以字为单位)
pop 寄存器 //出栈 用一个寄存器接受出栈的数据
pop 段寄存器 //出栈 用一个段寄存器接受出栈的数据
pop 内存单元//出栈 用一个内存字单元接受出栈的数据
push的执行步骤:
SP = SP-2;
向SS:SP指向的字单元中送入数据。
pop的执行步骤:
从SS:SP指向的字单元中读取数据;
SP = SP+2。
push pop实质上是一种内存传送指令。

3-寄存器(内存访问) 3.1 内存中字的存储 在0地址处开始存放20000(4E20H): 注意:0号单元是低地址单元,1号单元是高地址单元。 任何两个地址连续的内存单元,N号单元和 N+1号单元,可以将它们看成两个内存单元 ,也可以看成一个地址为N的字单元中的高位字节单元和低位字节单元。 3.2 DS和[address] CPU要读取一个内存单元的时候,必须先给出这个内存单元的地址; 在8086PC中,内存地址由段地址和偏移地址组成。 8086CPU中有一个 DS寄存器,通常用来存放要访问的数据的段地址 阅读详情

相关推荐

汇编语言——第3章 寄存器(内存访问)

汇编语言——第3章 寄存器(内存访问)

m0_65159351的博客 993

寄存器

1.ARM共有37个32位(=4字节=1字)寄存器。其中,31个为通用寄存器,6个为状态寄存器。 2.ARM状态下的寄存器 3.寄存器介绍 Sys和Usr共用一套寄存器 (1) 通用寄存器(31/37) 1) R0 - R7 所有工作模式下,R0 - R7都分别指向同一个物理寄存器(8/8),未被系统用作特殊的用途。在中断或异常处理进行工作模式转换时,由于不同工作模式均...

qq_45669254的博客 1172

Linux安装部署PostgreSQL详细步骤

Linux安装部署PostgreSQL详细步骤

2301_77356579的博客 9319

汇编学习教程:访问内存(2)

引言 在上篇博文中,我们学习了内存中字节数据的读写操作,我们知道8086CPU中寄存器是十六位,可以一次性操作一个字的数据,所以我们势必要学习下该如何对内存进行字数据的操作。 字的传送 回想我们上篇博文中如何传输一个字节,我们使用格式:[...]来表明内存单元,默认DS段寄存器中的数据为段地址,CPU在执行中取出DS中的数据加上 [...] 中指定的偏移地址得到目的地址,对最后的目的地址内存单元进行读写操作。 同样,如果操作为一个字的数据,在代码的书写上和操作一个字节的数据基本相同。例如,读取内存地

奋进的代码 2524

Vivado 2021.1 实战:手把手教你用IEEE1735 V2加密你的Verilog源码(附完整TCL命令)

本文详细介绍了在Vivado 2021.1中使用IEEE1735 V2标准加密Verilog源码的全流程,包括许可证申请、密钥文件配置、TCL命令执行及加密后验证。通过实战步骤和完整TCL命令,帮助开发者有效保护FPGA设计知识产权,确保核心算法安全。

weixin_42706667的博客 187

工程伦理-知识点汇总

工程伦理-知识点汇总

m0_46091747的博客 1万+

第三章 寄存器(内存访问)

3.1 内存中字的存储 CPU中,用16位寄存器来存储一个字(1个字有2个字节,即16个比特)。高8位存放高位字节,低8位存放低位字节。又因为一个内存单元只能存储一个字节,因此需要两个连续的内存单元来存储一个字。 用0、1两个内存单元存放数据20000(4E20H)。这两个内存单元可以看做一个起始地址为0的字单元。 字单元:即存放一个字型数据(16位)的内存单元,由两个地址连续的内存单元组成。 3.2 DS和[address] 以下三条指令将10000H(1000:0)中的数据读到al中 mov bx,

记录自己 2187

Altium Designer铺铜陷阱:为什么你的死铜总是清除不干净?

本文深入探讨Altium Designer中铺铜操作导致死铜无法清除的常见问题,分析死铜形成的五大诱因,并提供高级参数优化和网络连接性验证技巧。通过调整边界计算精度和泪滴算法设置,有效解决死铜残留问题,提升PCB设计质量与制造良率。

weixin_29169505的博客 359

汇编寄存器(内存访问)基础知识之三---mov指令

1 内存中字的存储   一个字型数据占2个内存单元,内存里面一个内存单元一个字节(8位),高地址单位放高8位,低地址单元放低8位。    注意:0号是地址单元,1是高地址单元(上是低地址,下面是高地址)    (1) 2地址单元中存放的 字节型 数据是 12H   (2)2地址单元的存放法 字型 数据是 0012H (字型要2个字节)   (3) 1地址单元的存放的 字型 数据是 ...

weixin_30652897的博客 2700

cadence virtuoso 激励信号源

vpulse,vpwl,vsin,vsource信号源介绍

努力学习的IC小白 3万+

AMSR-2数据下载实战:从JAXA到LPRM的算法选择与效率优化

本文详细介绍了AMSR-2数据的下载实战,重点对比了JAXA与LPRM算法的差异及适用场景,并提供了高效下载方案和网络优化策略。通过实际案例和代码示例,帮助用户快速获取和处理AMSR-2数据,提升研究效率。

rl6adventurer的博客 691

第3章 寄存器(内存访问)

初始化栈的代码mov ss,ax在 ss,sp 中存放栈顶的段地址和偏移地址:提供入栈和出栈的指令,他们根据 SS : SP 指示的地址,按照栈的方式访问内存单元push 指令的执行步骤:①sp = sp-2 ②向 ss : sp 指向的字单元中送入数据pop 指令的执行步骤:①从 ss :sp 指向的字单元中读取数据 ②sp = sp+2任意时刻,ss : sp 指向栈顶元素CPU 只记录栈顶,栈空间的大小由我们自己管理。

世事易变,匪石弗转。 1391

基于稀疏表示字典学习的图像超分辨率-杨建超论文解析

文章:《Image Super-Resolution via Sparse Representation》 作者:杨建超 信号稀疏的定义: 令字典D的原子个数M,信号维度为N,则有以下三种关系: M = N时,D为完备的; M > N时,D为冗余的; M>>N时, D为过完备的。 图解如下: 借鉴了压缩感知的思想,通过对大量低分辨率图像和高分辨...

ycc18829026593的博客 7637

第3章 寄存器(内存访问)

title: 第三章 寄存器(内存访问) date: 2021-07-23 14:48:03 tags: 汇编语言笔记 categories: 汇编语言笔记 在工作室好哥哥们的影响下,也开始喜欢用博客记录自己的学习过程了。 https://afanbird.github.io/ 个人博客的地址,由于可能不久之后会换电脑,暂且就不更新在个人博客上了(怕迁移麻烦),用优快云更新,后面转载到个人博客上面的时候,也会方便很多。笔记是自己在学习中的汇编语言第三版书上的重点知识。之所以记录下来,也是为了自己以后复习.

太阳照耀我走四方 1480

从零开始利用树莓派+扬声器,实现简单的蓝牙音箱,手机连接放歌

树莓派4B自带蓝牙和Wifi, 无需外接 USB dongle;蓝牙最常见的应用是近距离传输数据,比如蓝牙传文件,蓝牙音箱等。正好家里有个普通的usb供电的便携音箱;本文用树莓派蓝牙+普通音箱,实现简单的蓝牙音箱。怎样理解这三层:可以类比Linux网络层:ALSA 类似网络驱动框架A2DP 类似TCP/UDP层PulseAudio 类似HTTP层的服务器,类比Apache而蓝牙连接类似http连接和会话;

南七小僧的学海无涯 2221

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

第3章寄存器(内存访问)

小目录 3.1 内存中字的存储 3.2 DS和[address] 3.3 字的传送 3.4 mov,add,sub指令 3.5 数据段 3.6 栈 3.7 CPU提供的栈机制 3.8 栈顶超界的问题 3.9 push,pop 指令 3.10 栈段 3.1 内存中字的存储 cpu中,用16位寄存器来存储一个字,高8位存放高位字节,低8位存放低位字节,一个字用两个...

Net Zoom的博客 384

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Cortex-M3寄存器移位与内存访问优化指南

寄存器移位操作是嵌入式系统开发中的基础技术,通过改变数据位的位置实现快速运算。Cortex-M3架构提供ASR、LSL等五种移位方式,支持单周期完成乘除运算,相比软件实现可提升数十倍性能。内存访问指令则涵盖立即数偏移、寄存器偏移等模式,配合LDM/STM批量操作能显著优化数据结构处理。在电机控制等实时系统中,合理应用移位操作和内存屏障指令(DMB)可确保关键路径的执行效率。本文以Cortex-M3为例,详解如何通过移位操作实现电流值的快速除法,以及使用前/后索引模式优化循环缓冲区访问。

weixin_30587927的博客 385

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

3.寄存器(内存访问)

寄存器(内存访问)   看到标题才发现,第二章是寄存器直接与常量(数字)进行交互内存中字的存储假设读取字节(流)为从左向右读对字的处理为从又向左正是因为不同,所以才会发问吧DS与偏移地址:通用的获取地址的方式(CS:IP这个是给程序用的)类似于通用寄存器,但不能使用move ds,1:单纯的说指令太少了的话也对(jmp 不也就省2指令,还多出N多种),应该是跟指令流程相关(intel ...

106

第3章 寄存器(内存访问)

3.1  内存中字的存储 内存中上为低地址,下为高地址:上存储低8位,下存储高8位数据 将起始地址为N的字单元称为N地址字单元。 3.2  DS和[address]    来取内存中的数据 3.3  字的传送 3.4  mov、add、sub指令 ①mov

花花的博客 373

【汇编语言】第3章 寄存器(内存访问)

推荐文章:【汇编语言 王爽第三版】学习笔记目录+习题解析+实验 【汇编语言】第3章 寄存器(内存访问) 本文分为4个部分: 书本知识点概览 书本自带的小结 书本习题解析 个人小结 文章目录【汇编语言】第3章 寄存器(内存访问)知识点概览3.1 内存中字的存储3.2 DS 和 [address]3.3 字的传送3.4 mov,add,sub 指令3.5 数据段3.6 栈3.7 CPU提供的栈机制3.8 栈顶超界的问题3.9 push、pop指令3.10 栈段书本小结习题解析个人总结 知识点概览 3.1 内

鱼竿钓鱼干 559

《汇编语言》第3章 寄存器(内存访问)

第2章中,我们主要从CPU如何执行指令的角度讲解了8086CPU的逻辑结构、形成物理地址的方法、相关的寄存器以及一些指令。这一章中,我们从访问内存的角度继续学习几个寄存器。

chenyijun的专栏 1207
上一篇: 2 寄存器
下一篇: 4 第一个程序:1.exe
fa1lr4in
博客等级 码龄9年 64粉丝 79原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值