基础
地址线,数据线,控制线
地址线->寻址能力,2nbit
单位 byte ;28bit=1byte
BCD
二进制和十/十六进制的快速转换
数据的表示:
1.字符 编码,e.g.ascii
2.图像 RGB
3.视频 类似图像
4.音频 频谱图->数据->有损压缩
80x86
intel的一系列处理器
8086 80186 80286 16bit(8088变种)
80386 80486 32bit
奔腾不再沿用该模式,但沿用该名称
现在的处理器向下兼容到8086,称80x86
寄存器
AX,AL 通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、 除、输入/输出等操作,它们的使用频率很高;
BX 称为基地址寄存器(Base Register)。主要用于存储内存中数据存放的基础位置.之后只需要知道偏移地址就可以知道内存实际地址.
CX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL来指明移位的位数;
DX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。
在16位CPU中,AX、BX、CX和DX不能作为基址和变址寄存器来存放存储单元的地址,
在32位CPU中,其32位寄存器EAX、EBX、ECX和EDX不仅可传送数据、暂存数据保存算术逻辑运算结果,而且也可作为指针寄存器
EAX 是"累加器"(accumulator), 它是很多加法乘法指令的缺省寄存器。
EBX是"基地址"(base)寄存器, 在内存寻址时存放基地址。
ECX 是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器。
EDX则总是被用来放整数除法产生的余数。
ESI/EDI分别叫做"源/目标索引寄存器"(source/destination index)它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便
BP为基指针(Base Pointer)寄存器,用它可直接存取堆栈中的数据;(和sp连用,作为sp校准)
SP为堆栈指针(Stack Pointer)寄存器,用它只可访问栈顶
CS——代码段寄存器(Code Segment Register),其值为代码段的段值;
DS——数据段寄存器(Data Segment Register),其值为数据段的段值;
ES——附加段寄存器(Extra Segment Register),其值为附加数据段的段值;
SS——堆栈段寄存器(Stack Segment Register),其值为堆栈段的段值;
FS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值;
GS——附加段寄存器(Extra Segment Register),其值为附加数据段的段值。
寻址
PA=DS* 24+EA
EA=base+index*scale factor+displacement
1.PA 地址线->地址码->寻址范围
2.逻辑地址
内存划分为多个逻辑段,逻辑段地址指示存储单元
方便了开发和对存储器的动态管理
cs:ip(偏移地址,该存储单元到段基址的的距离) pa=cs * 24+ip,指示当前的下一条指令读取的位置
eg.jmp ax;相当于ip=ax