寄存器
1. CPU的典型构成
2. 寄存器
对程序员来说,CPU中最主要部件是寄存器,可以通过改变寄存器的内容来实现对CPU的控制
不同的CPU,寄存器的个数、结构是不相同的(8086是16位结构的CPU)
8086有14个寄存器
都是16位的寄存器
可以存放2个字节
3. 通用寄存器
AX、BX、CX、DX这4个寄存器通常用来存放一般性的数据,称为通用寄存器(有时也有特定用途)
通常,CPU会先将内存中的数据存储到通用寄存器中,然后再对通用寄存器中的数据进行运算
假设内存中有块红色内存空间的值是3,现在想把它的值加1,并将结果存储到蓝色内存空间
CPU首先会将红色内存空间的值放到AX寄存器中:mov ax,红色内存空间
然后让AX寄存器与1相加:add ax,1
最后将值赋值给内存空间:mov 蓝色内存空间,ax
4. 通用寄存器分类
AX、BX、CX、DX这4个通用寄存器都是16位的,如下图所示
上一代8086的寄存器都是8位的,为了保证兼容, AX、BX、CX、DX都可分为2个独立的8位寄存器来使用
H代表高位寄存器
L代表低位寄存器
九、字节与字
在汇编的数据存储中,有2个比较常用的单位
字节:byte,1个字节由8bit组成,可以存储在8位寄存器中
字:word,1个字由2个字节组成,这2个字节分别称为字的高字节和低字节
比如数据20000(4E20H,0100111000100000B),高字节的值是78,低字节的值是32
1个字可以存在1个16位寄存器中,这个字的高字节、低字节分别存储在这个寄存器的高8位寄存器、低8位寄存器中
十、段寄存器
8086在访问内存时要由相关部件提供内存单元的段地址和偏移地址,送入地址加法器合成物理地址
是什么部件提供段地址?段地址在8086的段寄存器中存放
8086有4个段寄存器:CS、DS、SS、ES,当CPU需要访问内存时由这4个段寄存器提供内存单元的段地址
CS (Code Segment):代码段寄存器
DS (Data Segment):数据段寄存器
SS (Stack Segment):堆栈段寄存器
ES (Extra Segment):附加段寄存器
2. 指令的执行过程
正向代理:
正向代理示意图
反向代理:
反向代理示意图
由于防火墙的原因,我们并不能直接访问谷歌,那么我们可以借助VPN来实现,这就是一个简单的正向代理的例子。这里你能够发现,正向代理“代理”的是客户端,而且客户端是知道目标的,而目标是不知道客户端是通过VPN访问的。
当我们在外网访问百度的时候,其实会进行一个转发,代理到内网去,这就是所谓的反向代理,即反向代理“代理”的是服务器端,而且这一个过程对于客户端而言是透明的。
网友评论