世间充斥着各种喧嚣,“珍爱生命,快用python”,“php是世界上最好的语言~”... 有些人仍然坚信,“不会汇编的码农,不是一个好的程序猿!” 不闹,言回正传,上干货 ^-^ 1.每个CPU芯片都有许多管脚,这些管脚和总线相连。也就是说,这些管脚引出总线。一个cup可以引出3种总线的宽度标志了这个cup的不同方面的性能: 地址总线的宽度决定了CPU的寻址能力; 数据总线的宽度决定了CPU与其他器件进行数据传送时一次数据的传送量; 控制总线的宽度决定了CPU对系统中其他器件的控制能力。 2.CPU对外部设备都不能直接控制,如显示器、音箱、打印机等。直接控制这些设备进行工作的是插在扩展槽上的接口卡。CPU通过总线向接口卡发送命令,接口卡根据CPU的命令控制外设进行工作。 3.存储器从功能和连接上分为: 随机存储器:用于存放CPU的绝大部分程序和数据; 装有BIOS的ROM:用于存储设备的基本输入输出系统; 接口卡上的RAM:接口卡需要对大批量输入、输出数据进行暂存时使用,如显存。 CPU在操作它们的时候,把它们都当做内存来对待,把它们总的看做一个由若干存储单元组成的逻辑存储器,这个逻辑存储器就是我们所说的内存地址空间。 4.在8086机中,任意时刻,CPU将CS:IP指向的内容当做指令执行,在加电或复位后CS和IP被设置为CS=FFFFH,IP=0000H,即FFFF0H单元的指令是8086pc机开机后执行的第一条指令。 5.8086CPU中有一个DS寄存器,通常用来存放要访问数据的段地址,8086不支持将数据直接送入段寄存器,只能有一个寄存器来进行中转。 6.8086CPU提供入栈和出栈指令,入栈和出栈操作都是以字为单位进行的,栈地址为SS:SP 7.可执行文件由描述信息和程序组成,程序来自于源程序中的汇编指令和定义的数据;描述信息则主要是编译、连接程序对源程序中伪指令进行处理做得到的信息。如CPU从何处开始执行程序,只要在源程序中用“end 标号”指明就可以了。 7.寄存器: reg包含:ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,di sreg包含:ds,ss,cs,es 关于bx,si,di和bp: 只有这四个寄存器可以用于[]中进行内存单元的寻址 只要使用寄存器bp,且没有显性给出段地址,段地址默认在ss中 8.绝大多数机器指令都是进行数据处理的指令,处理大致分为:读取、写入、运算。所要处理的数据可以在三个地方:cpu 内部(寄存器)、内存、端口。汇编语言用三个概念来表达数据的位置:立即数、寄存器、段地址+偏移地址。 9.史上最全寻址方式总结: 以上是最近学习的一些要点总结,精彩持续更新中,不喜可喷哦~ |
|