标签:计算机 count 单位 round 作用 方法 inf 工作过程 后缀
(以下内容以8086CPU、intel系列为根据处理)
8086CPU、intel系列:
16位微处理器;20位地址总线;14个16位寄存器:
通用寄存器:AX(Accumulator Register)、BX(Base Register)、CX(Count Register)、DX(Data Register)
基址和变址寄存器:SI、DI、BP、SP
段寄存器:CS、SS、DS、ES
指令指针和标志寄存器:IP、FLAGS
引入概念:字长(CPU在单位时间内一次处理的二进制位数,反映CPU内部运算速度)
引入概念:位宽(CPU通过外部数据总线与内存之间一次能传输的数据位)
ISA(指令集体系结构):指令、指令的字节集编码——软件和硬件之间接口
不同类型CPU差异:
处理的字长、速度不同;工作模式不同;指令集的丰富程度不同
*十六进制数据加后缀H,二进制数据加后缀B
*一条汇编指令或寄存器名称不区分大小写
一个CPU有多个寄存器,用来存放16位一般性数据。
以AX为例:
(为了与早期兼容,AX可拆分成两个独立的寄存器AH、AL来使用)
AX中存放无符号数据范围:0 —— 216-1
AH、AL中存放无符号数据范围:0 —— 28-1
mov:传送指令 mov a,b:将b放入a中
常用:
mov 寄存器,数据
mov 寄存器,寄存器
add:求和指令 add a,b:a与b相加
常用:
add 寄存器,数据
add 寄存器,寄存器
sub:减法指令 sub a,b:a减去b
常用:
sub 寄存器,数据
sub 寄存器,寄存器
jmp:转移指令 修改CS、IP寄存器(不可以用mov实现)
常用:
jmp 段寄存器:偏移地址 (修改CS:IP)
jmp 寄存器 (用寄存器内容修改IP)
注意:1.mov、add操作中,两个操作对象位数应一致
2.对应的位数进行操作,超出的位数需舍弃(特别注意AH、AL寄存器)
问题起源:16位的CPU寄存器无法表示20位的地址总线所包括的所有内存单元
解决:用两个16位地址合成一个20位的物理地址
引入概念:段(根据需要,将地址连续、起始位置为16倍数的一组内存单元--不超过216B,即64KB)
e.g 20404H = 2000H * 16 + 0404H
物理地址 = 段地址 * 16 + 偏移地址
问题:计算机如何识别哪些信息是指令,哪些信息是数据?
解决:用特殊寄存器进行标志,存放在特殊寄存器内的就是指令,其他为数据
引入概念:
8086最关键的寄存器:
CS(代码段寄存器:存放段地址)、
IP(指令指针寄存器:存放偏移地址)
作用:CPU将CS:IP对应的物理地址中的信息当作指令执行
1.从CS:IP指向的内存单元读取指令,并将指令放入指令缓冲器
2.IP = IP + 所取指令的长度,从而指向下一条指令
3.执行指令,跳回1,重复此过程
最初的CS、IP:
CPU刚开始工作时,CS=FFFFH,IP=0000H
即CPU刚启动时,从物理地址为FFFF0H的单元读取开机后执行的第一条指令
提问:计算机遇到什么指令停止循环,结束取指令呢?
标签:计算机 count 单位 round 作用 方法 inf 工作过程 后缀
原文地址:https://www.cnblogs.com/cjh-1023/p/9769343.html