如何打死网站,天津滨海新区落户政策,洋河门户平台,宣传平台一、寄存器 一个典型的cpu是由运算器#xff0c;控制器#xff0c;寄存器等器件组成的。 内部总线实现CPU内部各个器件之间的联系 外部总线实现cpu和主板上其他器件的联系 AX,BX,CX,DX通用寄存器 SI,DI,BP,SP基址和变址寄存器 CS,SS,DS,ES段寄存器 IP,FLAGS指令指针和标志寄存…一、寄存器 一个典型的cpu是由运算器控制器寄存器等器件组成的。 内部总线实现CPU内部各个器件之间的联系 外部总线实现cpu和主板上其他器件的联系 AX,BX,CX,DX通用寄存器 SI,DI,BP,SP基址和变址寄存器 CS,SS,DS,ES段寄存器 IP,FLAGS指令指针和标志寄存器 通用寄存器 8086cpu中寄存器AX,BX,CX,DX通常用于存放一般性数据称为通用寄存器每个寄存器都是16位 为了和早期CPU兼容每一个寄存器都拆成了两个寄存器单独使用 AX分为AH和AL 字在寄存器中的存放 一个字由两个字节组成可以存在一个16位寄存器 字的高八位存放于通用寄存器的高八位寄存器 字的低八位存放于通用寄存器的低八位寄存器 MOV AX,20000 ; (AX)4E20H (AH)4EH (AL)20H 汇编指令 mov ax,18 将18送入寄存器AX AX18 add ax,8 将寄存器AX中的数值加上8 AXAX8 mov ax,bx 将寄存器bx中的数据送入寄存器ax AXBX add ax,bx 将AX和BX中的数值相加结果存放在AX中 AXAXBX mov ax,bl 是错误的指令原因是指令的两个操作对象位数不一样 物理地址 cpu访问内存单元时要给出内存单元的地址 所有的内存单元构成的存储空间是一个一维的线性空间。每一个内存单元在这个空间中都有唯一的地址这个唯一的的地址称为物理地址。 8086的内部用两个16位地址通过计算合成得到一个20位的物理地址。 如1230H*1600C8H123C8H 段地址*16偏移地址物理地址 123CH*160008H123C8H 理解成段的起始物理地址是123C0H 段地址偏移地址 123000C8或123C0008 可以根据需要将地址连续、起始物理地址为16倍数的一组内存单元当做一个段使用 CS和IP CS代码段寄存器用于存放代码段的[段地址] IP指令指针寄存器用于存放cpu将要读取的指令在代码段中的偏移地址 CSIP对应的物理地址存放的cpu将要读取的指令 CS*16IP是指令的物理地址 计算机工作的步骤 cpu基于CS:IP计算出物理地址然后得到相应的内存单元读取指令送到指令缓冲区 cpu自动修改IP的值IPIP所读取指令的长度从而为下一条指令读取做准备 执行指令 转到第一步 IP和CS值的修改不能通过mov指令实现需要借助转移指令jmpcall 同时修改CS IP的内容jmp 段地址偏移地址 比如jmp 2AE3:3 ;CS-2AE3H IP-3H 只修改IP内容jmp 某一合法寄存器 比如jmp AX IP-AX 转载于:https://www.cnblogs.com/yxy98/p/9935102.html