寄存访问
A. 谁能解释一下这些寄存器存的到底是什么通俗点,谢谢。高分送上…
AX,一般用来暂存处理器计算过程的中间结果
BX,一般用来存储地址的基址(参考基址寻址)
CX,一般在写汇编程序的时候用来计算循环次数。
DX,一般就是用来存储数据,也存储数据地址的段地址
SS,SP,用来指示栈的物理地址,SS表示段地址,SP表示段内地址
CS,SI,指示程序执行代码的地址,CS表示段地址,SI表示段内地址。
DI,BP好久没看我忘了。另外你参看一下各种寻址方式。
B. 寄存机访问权限 中dy是什么意思
风管机属于中央空调里边的!我是美的家用和商用的.不过代表的含义是一样的!T2代表风管机的一种底静压的.C代表设计序号.C系列的.
C. 黑客通过什么途径访问数据库是否除了硬盘,数据库(或者数据源)还有别的寄存方式
硬盘是一般个人计算机唯一的信息储存载体
具备断电后信息存储的功能
内存断电后所有信息全部消失的
我估计他可能对你计算机里的某些信息感兴趣吧
然后不断入侵你的计算机
不论你换过多少硬盘,即使你换一个电脑,他还是能准确地找到你
因为你的IP没有发生变化。
IP地址全世界是唯一的,所以,他还是能找到你。
建议:
安装杀毒软件,并及时更新
要想监控你的计算机,那么他必须事先植入木马到你的计算机
所以,只要清除木马,那么就能断绝被他控制
针对补充回答:
哦,我知道了,估计你是中了蠕虫病毒了
这种病毒和以前的熊猫烧香原理是一样的
不断感染文件,就象杀毒软件也被感染一样
这种病毒后商业化运做,盗窃用户的密码和数据
清楚比较麻烦,因为所有执行文件全部都被感染
建议格式化硬盘
相信楼主应该知道
最彻底的方法就是格式化硬盘
不论什么病毒,格式化之后都会清除的
如果还是中毒,建议楼主对系统盘怀疑~
还有,格式化是对磁盘扇道进行重新写入
也就是说,以前所有数据全部失效
所以,格式化后不可能还存在病毒
任何程序运行都会有进程或者护盾进程显示
可以对进程进行分析
楼主过分担心了
D. 寄存器间接寻址和直接寻址哪个快
立即寻址就是指令当中自带数据,直接读取,最快;
直接寻址就是指令中存放的是地址,直接解析这个地址;
间接寻址就只指令中存放的是地址的地址,或者是存放地址的寄存器,最慢。
E. stm32中GPIOx_BSRR和 GPIO_xBRR寄存允许对任何GPIOx进行读\更改的独立访问;
一般情况下控制控制IO口高低电平就直接控制GPIOx->ODR寄存器即可。
而控制GPIOx->BSRR和GPIOx->BRR就等于间接控制GPIOx->ODR寄存器,而且手册也说了,BSRR、BRR是只写寄存器,写1有效写0无影响,这是什么意思呢;就是对BSRR和BRR寄存器写1就是对相应的IO口电平操作,写0的话IO口电平不变,这样就达到了上面所说的:允许对任何GPIOx进行读、更改的独立访问。
比如我要让GPA0变为高电平,可以有两种做法:
1、GPIOA->ODR|=GPIO_Pin_0;
2、GPIOA->BSRR=GPIO_Pin_0;
比如我要让GPA0变为低电平,可以有两种做法:
1、GPIOA->ODR&=~GPIO_Pin_0;
2、GPIOA->BSRR=GPIO_Pin_0;
可以看到都是只改变一个IO口电平的时候,明显第2中方法要更加简单一些。
F. 寄存器和存储器的区别
1、存储器在CPU外,一般指硬盘,U盘等可以在切断电源后保存资料的设备,容量一般比较大,缺点是读写速度都很慢,普通的机械硬盘读写速度一般是50MB/S左右。
内存和寄存器就是为了解决存储器读写速度慢而产生的多级存储机制,从20世纪50年代开始,磁芯存储器曾一度成为主存的主要存储介质,但从20世纪70年代开始,逐步被半导体存储器所取代,目前的计算机都是用半导体存储器。现在的DDR2内存的读写速度一般为6~8GB/S,跟机器性能也有关系。
2、寄存器(又称缓存)一般是指由基本的RS触发器结构衍生出来的D触发,就是一些与非门构成的结构,一般整合在CPU内,其读写速度跟CPU的运行速度基本匹配,但因为性能优越,所以造价昂贵,一般好的CPU也就只有几MB的2级缓存,1级缓存更小。使用寄存器可以缩短至零长度、节省存储空间,提高指令的执行速度。
3、不同的寄存器有不同的作用,如:通用寄存器(GR)用以存放操作数、操作数的地址或中间结果;指令寄存器(IR)用以存放当前正在执行的指令,以便在指令执行的过程中,控制完成一条指令的全部功能。
CPU计算时,先预先把要用的数据从硬盘读到内存,然后再把即将要用的数据读到寄存器。最理想的情况就是CPU所有的数据都能从寄存器里读到,这样读写速度就快,如果寄存器里没有要用的数据,就要从内存甚至硬盘里面读,那样读写数据占的时间就比CPU运算的时间还多的多。
所以评价一款CPU的性能除了频率,缓存也是很重要的指标。
(6)寄存访问扩展阅读:
cpu的组成:
CPU的根本任务就是执行指令,对计算机来说最终都是一串由“0”和“1”组成的序列。CPU从逻辑上可以划分成3个模块,分别是控制单元、运算单元和存储单元,这三部分由CPU内部总线连接起来。
1、控制单元
控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,对协调整个电脑有序工作极为重要。
它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。
操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。
2、运算单元
是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。
3、存储单元
包括CPU片内缓存和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。
采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。
但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据。
而通用寄存器用途广泛并可由程序员规定其用途,通用寄存器的数目因微处理器而异。这个是我们以后要介绍这个重点,这里先提一下。
G. 寄存器是什么 有什么作用
寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和地址。
寄存器是CPU的组成部分,因为在CPU内,所以CPU对其读写速度是最快的,不需要IO传输。但同时也决定了此类寄存器数量非常有限,有限到几乎每个存储都有自己的名字,而且有些还有多个名字。
寄存器的作用主要是:
可将寄存器内的数据执行算术及逻辑运算;
存于寄存器内的地址可用来指向内存的某个位置,即寻址;
可以用来读写数据到电脑的周边设备。
(7)寄存访问扩展阅读:
寄存器的功能十分重要,CPU对存储器中的数据进行处理时,往往先把数据取到内部寄存器中,而后再作处理。
外部寄存器是计算机中其它一些部件上用于暂存数据的寄存器,它与CPU之间通过“端口”交换数据,外部寄存器具有寄存器和内存储器双重特点。有些时候我们常把外部寄存器就称为“端口”,这种说法不太严格,但经常这样说。
H. CPU访问硬盘,内存,虚拟内存的顺序是什么
首先是内存,然后是硬盘。虚拟内存实际是存放在硬盘上的页面文件,实质还是属于访问硬盘。
I. 如果要访问外部RAM地址为1234H的单元,必须用上面寄存中的 进行间接寻址方式
对于51单片机来说,需要借助DPTR寄存器来间接寻址、访问片外RAM空间。
J. 寄存器在cpu工作流程中的位置
寄存器通常分为高位和低位,如AH寄存器和AL寄存器,为了直观读出数据,多数使用十六进制表示,十六进制的数后加H表示,二进制用B,而十进制什么都不用加。如:4BC6H,4343,10001100B
16位结构CPU特点:
1.运算器最多可以处理16位的数据.
2.寄存器的宽度为16.
3.寄存器与运算器之间的通路宽度为16.
内存单元对应的地址叫物理地址.
CPU给出物理地址的方法(地址总线20根的情况):
1.由CPU提供一个16位段地址和另一个16位偏移地址,通过内部总线传送到地址加法器.
2.地址加法器将两个16位的地址同过运算合成一个20位的物理地址.
物理地址=段地址*16+偏移地址
3.在通过内部总线将物理地址传送到输入输出控制器,控制器将其送到地址总线,再到相应的存储器.
通用寄存器用于寄存一般的数据,如AX,BX,CX,DX
段寄存器有四个:CS,DS,SS,ES
段寄存器两个关键的寄存器:CS代码段寄存器和IP指令指针寄存器,也就是CS用于寄存段地址,而IP侧是偏移地址,物理地址表达式为CS:IP.
CPU的工作过程:
1.从CS:IP读取内存单元的指令,进入缓冲指令器.(详细<汇编语言>P35-40)
2.IP=IP+读取指令的长度,进入下一次的读取.
2.1 通用寄存器
8086CPU的所有寄存器都是16位,可以存放两个字节。AX、BX、CX、DX四个寄存器通常用来存放一般性的数据,被称为通用寄存器。
一个16位寄存器可以存储一个16位的数据。
那么一个16位寄存器所能存储的数据的最大值为多少呢?
8086CPU的上一代CPU中的寄存器都是8位的,为了保证兼容,使原来基于上代CPU编写的程序稍加修改就可以运行在8086之上,8086CPU的AX、BX、CX、DX四个寄存器都可分为两个可独立使用的8位寄存器来使用:
AX可分为AH和AL;
BX可分为BH和BL;
CX可分为CH和CL;
DX可分为DH和DL;
2.3 汇编指令
汇编指令举例:
mov ax,18 将18送入寄存器AX AX=18
mov ah,78 将78送入积存器AH AH=78
add ax,8 将寄存器AX中的数值加上8 AX=AX+8
mov ax,bx 将寄存器BX中的数据送入寄存器AX AX=BX
add ax,bx 将AX和BX中的数值相加,结果存在AX中 AX=AX+BX
在写一条汇编指令或一个寄存器的名称时不区分大小写,如:mov ax,18和MOV AX,18的含义相同;bx和BX的含义相同。
注意:如果单独把AH和AL做为两个独立的8位寄存器来用,那么它们两个就是两个不相关的寄存器,不要错误的认为,诸如add al,93H的指令产生的进位会存储在ah中,add al,93H进行的是8位运算。
如果执行add ax,93H,低8位的进位会存储在ah中,CPU在执行这条指令时认为只有一个16位寄存器ax,进行的16位运算。指令add ax,93H执行后,ax中的值为:0158H。此时,使用的寄存器是16位寄存器ax,add ax,93H相当于将ax中的16位数据00c5H和另一个16位数据009CH相加,结果是16位的0158H。
在进行数据传送或运算时,要注意指令的两个操作对象的位数应当是一致的,例如:
mov ax,bx
mov bx,cx
mov ax,18H
mov al,18H
add ax,bx
add ax,20000
等都是正确的指令,而
mov ax,bl (在8位寄存器和16位寄存器之间传送数据)
mov bh,ax (在16位寄存器和8位寄存器之间传送数据)
mov al,20000 (8位寄存器最大可存放值为255的数据)
add al,100H (将一个高于8位的数据加到一个8位寄存器中)
等都是错误的指令,错误的原因都是指令的两个操作对象的位数不一致。
在8086CPU加电启动或复位后(即CPU刚开始工作时)CS和IP被设置为CS=F000H,IP=FFFFH,即在8086PC机刚启动时,CPU从内存FFFF0H单元中读取指令执行,FFFFOH单元中的指令是8086PC机开机后执行的第一条指令。
现在,我们更清楚了CS和IP的重要性,它们的内容提供了CPU要执行指令的地址。
mov指令不能用于设置CS、IP的值,原因很简单,因为8086CPU没有提供这样的功能。8086CPU为CS、IP提供了另外的指令来改变它们的值。能够改变CS、IP的内容的指令被统称为转移指令。
我们现在介绍一个最简单的可以修改CS、IP的指令:jmp指令。
若想同时修改CS、IP的内容,可用指令“jmp 段地址: 偏移地址”完成,如:
jmp 2AE3:3,执行后:CS=2AE3H,IP=0003H,CPU将从2AE33H处读取指令。
jmp 3:0B16,执行后:CS=0003H,IP=0B16H,CPU将从00B46H处读取指令。
若想仅修改IP的内容,可用指令“jmp 某一合法寄存器”完成,如:
jmp ax,指令执行前:ax=1000H,CS=2000H,IP=0003H
指令执行后:ax=1000H,CS=2000H,IP=1000H
指令“jmp 某一合法寄存器”的功能为:用寄存器中的值修改IP。
jmp ax,在含义上类似于mov IP,ax这样的指令。
CPU只认被CS:IP指向的内存单元中的内容为指令,所以,要让CPU执行我们放在代码段中的指令,必须要将CS:IP指向所定义的代码段中的第一条指令的首地址。
对于上面的例子,我们将一段代码存放在123BOH-123BAH内存单元中,将其定义为代码段,如果要让这段代码得到执行,可设CS=123BH,IP=0000H。
段地址在8086CPU的段寄存器中存放。当8086CPU要访问地址时,由段寄存器提供内存单元的段地址。8086CPU有4个段寄存器,其中CS用来存放指令的段地址。
CS存放指令的段地址,IP存放指令的偏移地址。
8086机中,任意时刻,CPU将CS:IP指向的内容当作指令执行。
8086CPU的工作过程:
1:从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器;
2:IP指向下一条指令;
3:执行指令。(转到步骤1,重复这个过程。)
查看CPU和内存,用机器指令和汇编指令编程
1:预备知识:Debug的使用
(1)什么是Debug?
Debug是DOS,Windows都提供的实模式(8086方式)程序的调试工具,使用它,可以查看 CPU各种寄存器中的内容、内存的情况和在机器码级别跟踪程序的运行。
(2)我们用到的Debug功能
用Debug的R命令查看、改变CPU寄存器的内容;
用Debug的D命令查看内存中的内容;
用Debug的E命令改写内存中的内容;
用Debug的U命令将内容中的机器指令翻译成汇编指令;
用Debug的T命令执行一条机器指令;
用Debug的A命令以汇编指令的格式在内存中写入一条机器指令;
(3)进入Debug
Debug是在DOS方式下使用的程序。我们进入Debug前,应先进入到DOS方式,用以下方式可 以进入DOS:
1:重新启动计算机,进入DOS方式,此时进入的是实模式的DOS;
2:在Windows中进入DOS方式,此时进入的是虚拟8086模式的DOS;
下面说明在Windos2000中进入Debug的一种方法,在Windows98中进入的方法与此类似。
开始-运行-输入command
进入DOS方式后,如果显示为窗口方式,可以按下Alt+Enter键将窗口变成全屏方式,然后 运行Debug程序。