对暂存器的认识

STM32开发笔记01---暂存器简介 架构图 前言 在进行底层开发时,尤其是C语言,我们时常与暂存器打交道,不过到底暂存器的确切定义是甚麽?有时很难确切定义 有些书将暂存器想像成一排书柜中的特定一格,对这些特殊抽屉,可以将抽屉打开拿取裡面的纸条,也可以把新的纸条放进去。我个人蛮喜欢这个比喻法,但也让我思考,到底能不能用更精准的方式去定义暂存器呢 思考重点 暂存器与记忆体映射之间的关联 暂存器存在的意义 如何查找数据手册 编写一个点灯案例 暂存器概念 为了釐清暂存器的概念,我特地找了一块32bits的STM32F4型开发版,核心使用STM4 阅读详情
三、对暂存器的认识

    暂存器 (Register) 相当于调色皿,资料相当于色料。把色料放进调色皿里,为的是要得到预定的效果,暂存器对于资料亦然。
    调色皿有大有小,深度有深有浅,其目的是针对不同的情况,以作有效的处理。暂存器也是一样,应用得好,程式会很精简,容易修改、阅读。否则,想到哪一个就用哪一个,没有原则,没有章法,这种程式委实不敢恭维。
    暂存器的重要性,在于处理方便灵活、速度快,占用空间小。不幸8088 CPU的暂存器很少,用起来总是捉襟见肘,辛苦异常。正因为此,暂存器的善用与否,成为程式效能高低的关键技术。
     有些程式师不愿意精打细算,经常设定一些「缓冲器」,利用缓冲器可以任意定名、便于记忆的优点,竟把珍贵的暂存器,当作各缓冲器间、搬运资料的交通工具,只见资料不停的搬进搬出。虽然程式师省了点事,但运行速度白白浪费了,空间也被糟蹋了。写这样的组合程式,远不如去用高阶语言。
    当然,缓冲器是有必要的,但也只限于「必要」的情况,而且,在程式规划时,就要考虑各种应用的条件,把缓冲器内的值取出后,一次处理完毕。如果不能一次解决或是经常要用到的资料,则设法放在暂存器中。
    实际上,任何程式不可能在一个过程中,同时需要很多特殊的资料。好的程式师能把复杂的工作处理得有条不紊,功力不够的,往往把简单的事情弄得令人难以理解。8088的暂存器的确是不够用,但是却不至于少到要以缓冲器取代的地步。
    工作的好坏、成败,与人的组织能力有绝对的关系,限于篇幅,我们不能多谈。可是,利用暂存器的特性,来处理繁杂的资料,倒也是训练组织力的方法之一。
    首先,我们应该把暂存器视为工具,瞭解工具的功能、性质,然后要能铭记于心,纯熟地加以运用。
    根据个人的理解,暂存器概分六类:
    1,分段用
      程式段 CODE SEGMENT                :CS
      资料段 DATA SEGMENT                :DS
      堆栈段 STACK SEGMENT               :SS
      特设段 EXTRA SEGMENT               :ES
    2,堆栈用:
      堆栈值 STACK POINTER               :SP
      栈用器 BASE POINTER                :BP
    3,记忆转换用:
      源存器 SOURCE INDEX                :SI
      终存器 DESTINATION INDEX           :DI
    4,一般用:
      累积器 ACCUMULATOR                 :AX
      兼用器 BASE                        :BX
      计数器 COUNTER                     :CX
      资料器 DATA                        :DX
    5,标志用:旗号值 STATUS              :FLAG
    6,指示用:执行值 INSTRUCTION POINTER :IP
    为了便于记忆,我们给暂存器定中文名,其定义为:
    凡分段用者率称「段」,做为各段起始位置指示用,其计值方式为:系统中的绝对地址=(本值×16)+各段定址值
    如:资料段为 1600H,乘16即为16000H。
    如源存器为 1234H,则此源存器在系统中由0算起的地址为:17234H。
    应注意者,各种以「器」定名的暂存器,皆有限用的段,切勿混用。
    凡定名为「值」者,皆为不能用来供程式写作的暂存器。如堆栈值(SP)系指示堆栈所在位置;旗号值(FLAG)表示旗号标志的情况;执行值(IP)则代表程式当前所执行的地址。这些暂存器值并非不能改变,但对技巧尚不够纯熟者,最好保持原值,不要妄动。
    经常使用的「器」有两种,一以16位元为单位,如栈用器、源存器及终存器; 另一种则具有两个分别称「高位」及「低位」、各有8位元,可单独使用,也可合并为16位元的暂存器AX,BX,CX,DX。
     暂存器通常作为容器用,但有些多用为记忆区之定址,以便将其中贮存的资料取出应用。前者称为容器功能,可以作计算、逻辑处理等。后者称为定址功能,系供处理各「器」所定位址的资料用。由于8088 CPU的定址方式,受限于当初不成熟的设计理念,偏偏 IBM独具慧眼,选中了它,所谓城门失火,殃及池鱼,读者不得不多花点功夫,小心应付。
    栈用器(BP)属于堆栈段的记忆位置,系提供给高阶语言结构使用,对组合语言来说,功能不大,但若善于运用,也不无价值。
    源存器(SI)固定指向资料段,将源存器中的资料取出,所指的是取出资料段中的资料。设若
    DS=2000H   SI=1234H,则
SI中的1234H 系指系统中 2000H×16加上位址值 1234H。
    不过,使用者不必去计算,只要知道是由资料段起,位址为1234H 即可。
     终存器(DI)较为复杂,通常它是指向资料段,可是有几个指令涉及大量资料转移,需要由源存器搬到终存器。由于受限于分段的设计,为了便于段间应用,所以特别规定:在这种情况下终存器系指向特设段(ES)。也就是说,只能由资料段移向特设段。程式师可以先设定各段的段暂存器,再作转移。若要在同一段中作资料转移,则应使资料段=特设段。
    一般用的暂存器,都可以分成两个8位元、各命名为高、低位暂存器,如:
    累积器:AX  高位 AH ,低位 AL
    兼用器:BX  高位 BH ,低位 BL
    计数器:CX  高位 CH ,低位 CL
    资料器:DX  高位 DH ,低位 DL
    其中累积器的功能最强,可以做乘、除计算,AH尚有贮存旗号的特殊指令。尤其是从记忆区中取值或将值放进记忆区内时,效率最高,如 LODS , STOSW等。
    由于其功能高,运用灵活,所以宜于打杂,千万不要赋与固定的使命。
    兼用器则有一种重要的特性,它是一般用暂存器中,唯一能自记忆区中读取资料者(XLAT指令除外),所以作为「资料及定址转换」 (后文将专门介绍此一功能) 方便异常。
    计数器常用作「回路」或次数的记录,也有专用的指令,除非不得已,或者计数用得不多,最好保留备用。
    资料器功能最少,最好固定其用途,选择经常需要应用的资料,置放其中,以便发挥时间空间的最高效率。 
计算机组成原理总复习——知识点总结 计算机的两个基本概念: 冯·诺依曼体制的主要思想 1. 采用二进制代码表示数据和指令。 任何复杂的运算和操作都可转换成一系列用二进制代码表示的简单指令,各种数据则可用二进制代码来表示; 2. 采用存储程序工作方式(核心)。 将组成程序的指令和数据存储起来(称为存储程序),让计算机自动地执行有关指令,就可以完成各种复杂的运算操作(称为程序控制) 3. 计算机硬件系统由五大部件构成。 (运算器、存储器、控制器、输入设备和输出设备) ... 阅读详情

相关推荐

Modbus RTU简介(上)

1 前言 1.1 什麽是Modbus Modbus是一种用于工业控制的标准通信协议,它定义了装置之间在应用层的消息封装模式、沟通方法、沟通顺序。 Modbus的优势 : Modbus协议是开源免费的 Modbus支援多种常见工控接口(RS232, RS485, TCP/IP etc.),且可以各种物理层装置上传输(双绞线、光纤、无线等) Modbus格式简单易于开发 Modbus能够将众多设备连接到DCS, PLC系统上,再利用服务器(云、中央计算机)进行监控与下达指令,以便于集中式控制。

札克Zach的博客 1万+

中央处理器

目录CPU的功能和基本结构组成功能运算器的基本结构专用数据通路方式CPU内部单总线方式控制器的基本结构CPU结构图指令执行过程指令周期三种周期之间的关系指令周期流程图取指周期间指周期中断周期指令执行方案数据通路的功能和基本结构两种总线单总线方式专用数据通路方式控制器的功能和工作原理控制单元的输入输出输入输出CPU的控制方式安排微操作时序的原则微指令程序和微程序主存储器与控制存储器微指令格式微指令的编码方式微指令的地址形成方式微程序控制单元设计硬布线和微程序的比较 CPU的功能和基本结构 组成 1.控制器:对

qq_52396030的博客 2367

DS18B20驱动(单总线协议)

CT107D单片机中DS18B20的模块实现

2301_81418838的博客 2243

计算机组成大题分析(一)

总线,元件题的基础解析。

流逝 7457

Blender地形建模实战:5步搞定Gazebo仿真地形(附避坑指南)

本文提供了一份详细的Blender地形建模实战指南,旨在帮助开发者快速创建Gazebo仿真地形。文章通过五个核心步骤,从环境准备、地形雕刻、模型优化导出,到创建Gazebo模型包及问题排错,系统讲解了如何将Blender中的地形模型成功导入Gazebo进行机器人仿真,并重点分享了关键的避坑经验。

weixin_28475533的博客 345

四旋翼无人机Matlab建模

本文主要分享一下四旋翼无人机的建模过程,然后在Matlab的simulink模块搭建起四旋翼无人机的模型,下一章将结合这个模型设计双环PID控制器并调节参数。 一、无人机建模过程

qq_36903625的博客 3万+

各寄存器的作用

各寄存器的作用 ============   通用寄存器 EAX 累加(Accumulator)寄存器 AX(AH、AL) 常用于乘、除法和函数返回值 EBX 基址(Base)寄存器 BX(BH、BL) 常做内存数据的指针, 或者说常以它为基址来访问内存. ECX 计数器(Counter)寄存器 CX(CH、CL) 常做字符串和循环操作中的计数器 EDX 数据(Data)寄存器 DX(...

weixin_34013044的博客 6977

累加器是寄存器吗?寄存器、累加器、暂存器有什么区别?

什么是寄存器寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。内部寄存器不能被外部电路或软...

5651

告别CANoe?手把手教你用Python+PCAN搭建汽车诊断脚本(附完整代码)

本文详细介绍了如何利用Python和PCAN硬件搭建高性价比的汽车诊断自动化方案,替代昂贵的CANoe工具。通过开源库python-can和udsoncan实现UDS诊断协议,涵盖硬件选择、环境配置、核心功能实现及性能优化,附完整代码示例,助力开发者快速构建诊断脚本。

weixin_42551227的博客 374

海康VM加密狗无法识别常见问题排查

海康VM加密狗无法识别常见问题排查

视觉人机器视觉的博客 2731

循环移位寄存器_寄存器、累加器、暂存器都是什么?它们有什么区别?

一、什么是寄存器寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。内部寄存器不能被外部电路或软件访问,只是为内部电路的实现存储功能或满足电路的时序要求。而接口寄存器可以同时被内部电路和外部电路或软件访问,CPU中的寄存器就是其中一种,作为软硬件的接口,为广泛的通用编程用户所熟知。寄存器的用途可将寄存器内的...

weixin_29202213的博客 1162

关于STM32编译报错:Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_md.o).

今天新建工程发现出现一个错误 —— …\Output\CG.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_md.o). 但我觉得我的操作没有任何问题,而且配置和上一个文件比较是一模一样的。 于是我开始百度查询,然后发现了下面几个博客—— @weixin_44133391——STM32 编译错误 @dorlolok——iel5 编译报错 error: L6235E: More than one

纯粹,学术,热爱。 9406

寄存器和存储器的区别_寄存器、累加器、暂存器都是什么?它们有什么区别?...

一、什么是寄存器寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。内部寄存器不能被外部电路或软件访问,只是为内部电路的实现存储功能或满足电路的时序要求。而接口寄存器可以同时被内部电路和外部电路或软件访问,CPU中的寄存器就是其中一种,作为软硬件的接口,为广泛的通用编程用户所熟知。寄存器的用途可将寄存器内的...

weixin_39737757的博客 2666

避坑指南:新手爬百度图片3个致命错,改完批量保存本地(亲测有效)

新手爬百度图片的核心是“绕开静态HTML,抓准API接口+处理反爬+提取原图”,改完本文提到的3个核心错,就能稳定批量保存高清图片。这套思路可复用在其他图片网站(如必应图片、360图片),只需修改API接口和参数即可。如果想进一步优化,可添加代理IP池、多线程下载(新手不建议,容易触发反爬)、图片去重等功能!

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1587

2、稳定性问题全景图——死机、重启、ANR、Crash、黑屏五大类

当 Crash 发生在 system_server、surfaceflinger、mediaserver 等关键系统进程中时,其后果等同于系统级故障,可能触发 Zygote 重启甚至 kernel panic。这类问题在稳定性治理中的优先级应等同于 P0。

woailuojp的博客 50

寄存器和存储器的区别_寄存器、累加器、暂存器,傻傻分不清?

什么是寄存器寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。内部寄存器不能被外部电路或软件访问,只是为内部电路的实现存储功能或满足电路的时序要求。而接口寄存器可以同时被内部电路和外部电路或软件访问,CPU 中的寄存器就是其中一种,作为软硬件的接口,为广泛的通用编程用户所熟知。寄存器的用途可将寄存器内的数...

weixin_39560604的博客 713

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

(筆記) 如何設計8位元暫存器? (SOC) (Verilog)

Abstract暫存器,聽起來好像很高深的東西,其實只要多個D-FF,就可以組成暫存器了。 IntroductionMethod 1:使用always block reg8.v / Verilog 1 /* 2 (C) OOMusou 2008 http://oomusou.cnblogs.com3 4 Filename    : reg8.v5 Compiler    : Quartus II ...

weixin_33755847的博客 133

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

循环移位寄存器_寄存器、累加器、暂存器,傻傻分不清?

什么是寄存器寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成。在集成电路设计中,寄存器可分为电路内部使用的寄存器和充当内外部接口的寄存器这两类。内部寄存器不能被外部电路或软件访问,只是为内部电路的实现存储功能或满足电路的时序要求。而接口寄存器可以同时被内部电路和外部电路或软件访问,CPU 中的寄存器就是其中一种,作为软硬件的接口,为广泛的通用编程用户所熟知。寄存器的用途可将寄存器内的数...

weixin_29596789的博客 771

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

流量暂存器,手机可以从电脑上充流量

突然有一天,突发奇想,如果有一个上网流量暂存器该多好啊,就是当我用电脑上网的时候,把手机连接电脑,这时候,电脑流量会给手机充流量,暂时保存,当我离开电脑的时候,就可以用保存的流量来上网,就像我们给手机充电一样给手机充流量! 哈哈,这只是一个想法,我觉得至少现在是没有这个流量暂存宝,也不可能实现,当然未来呢?也许会有可能,就像怀疑很多年以前,我们不敢相信人类能登上太空,飞到月球一样怀疑这个流量

程序人生 4624

微型计算机CLD用法,微机原理与介面技术中4个通用暂存器加中括号和不加中括号有什么区别?如:[DX]和DX...

微机原理与介面技术中4个通用暂存器加中括号和不加中括号有什么区别?如:[DX]和DX以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!微机原理与介面技术中4个通用暂存器加中括号和不加中括号有什么区别?如:[DX]和DX在8088组合语言中,中括号内部是地址号码。MOV AX, 2000H ;把2000H送到AXMOV AX...

weixin_31907307的博客 1728

利用firefox6暂存器来运行页面的javascript脚本来自动注册帐号

[code="js"] 利用firefox6暂存器来运行页面的javascript脚本来自动注册帐号 1.下载firefox6 2.打开页面,这里举例是百度帐号注册 打开下面页面 https://passport.baidu.com/?reg&tpl=mn 2.运行之后,依此进入工具->web开发者->暂存器 3.copy以下脚本,并运行他,就能帮你注册帐号了 ...

张玉龙 161

暫存器傳遞語言(英語:,縮寫為 RTL),又譯為暫存器轉換語言、寄存器轉換語言,一種中間語言,使用於編譯器中。

是的簡寫,是臭名昭著的製造商Claria股份有限公司的三家子公司之一。總部設於美國加州紅木城,於1998年Denis Coleman成立。它的特色是經常利用「訴諸恐懼」的技巧,利用虛假的廣告假扮系統的警告,使新手或使用電腦程度較淺的用者墮入陷阱,在電腦系統中安裝了他們公司的間諜軟件。另一方面,他們的間諜軟件亦是出名很難清除。間諜軟件示例:這個軟件以系統維護為名,但背後卻不斷統計用戶的工作實況,並轉送回公司GAIN的母公司原名,這與他們的旗艦“產品”Gator而得名。

weixin_40191861的博客 234

8086/8087寄存器(转载自小木偶)

8086 暫存器暫存器是在 CPU 中一個暫時儲存資料的地方。它有點兒像記憶體(DRAM),但是不像記憶體這麼多,暫存器只有一個、兩個或四個位元組的大小而已。 CPU 可以對暫存器作加、減、乘、除、且、或等等運算。8086/8088 共有 14 個 16 位元的暫存器,其名稱都以兩個英文字表示,大致可分為以下四類。 1.通用暫存器共有四個,其名稱分別是 AX、BX、CX、DX,在組

jackyvan的专栏 2530

计算机组成原理实验移位器,计算机组成原理实验-移位暂存器.doc

计算机组成原理实验-移位暂存器寄存器组的设计与实现实验目的学习掌握Quartusⅱ软件的基本操作;理解寄存器组的工作原理和过程;设计出寄存器组并对设计的正确性进行验证。实验内容能移位的暂存器实验。具体要求:用图形方式设计能移位的暂存器电路原理图,分别实现左移、逻辑右移和算术右移;测试波形时要用时序仿真实现,测试数据不要全为0或者全为1,算术右移的测试数据要求为负数(即符号位为1);将设计文件封装成...

weixin_35863455的博客 1514

指令暫存器(英語:,)在電腦科學中是中央處理器中控制單元用來儲存執行中指令的暫存器。

(英語:,)在中是中控制單元用來儲存執行中指令的。在簡易的處理器中,每個將被執行的指令都會被存入指令暫存器中。從解碼、準備到執行完成的過程中都會被持續的保存。有些較為複雜的處理器使用,其中管線上每個階段只負責解碼、準備或執行的其中一個,然後再傳遞至下一個階段。現代的處理器甚至可以不用按照順序做某些動作,也就是。在指令暫存器中將運算代碼解碼的步驟包含確定指令、確定運算對象所在的記憶體位址、從記憶體中提取運算對象、分配處理器的資源來執行指令。

weixin_40191861的博客 154
上一篇: 插槽(slot)机制之 ------ 一 、max_bits的疑惑
下一篇: big_value之region选表原则
xiaomantoubaba
博客等级 码龄23年 75粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值