• 第二章 寄存器(CPU工作原理)


    1、8086CPU有14个寄存器:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。AX、BX、CX、DX通用寄存器。

    2、8086CPU所有的寄存器都是16位的,可以存放两个字节。

    3、几条汇编指令(汇编指令不区分大小写

    4、al溢出不会进到ah里面,它们是两个单独的寄存器。进制位不能在8位寄存器中保存,但是CPU不会丢弃这个值。

    检测点:老简单了。。

    5、物理地址:CPU访问内存单元时要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间,将这个唯一的地址称为物理地址。

    6、16位结构描述了一个CPU具有特征:1.运算器一次最多可以处理16位的数据;2.寄存器的最大宽度为16位;3.寄存器和运算器之间的通路是16位的

    7、8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址,通过地址加法器,方法:物理地址=段地址*16 + 偏移地址。(16进制数乘以16相当于向左移一位

    8、在编程时可以根据需要,将若干地址连续的内存单元看作一个段,用段地址*16定位段的起始地址(基础地址),用偏移地址定位段中的内存单元。

    注意两点:1.段地址*16必然是16的倍数,所以一个段的起始地址也一定是16的倍数;2.偏移地址为16位,16位地址的寻址能力为64K,所以一个段的长度最大为64K。

    内存单元地址小结:

    1.CPU可以用不同的段地址和偏移地址形成同一个物理地址;

    2.偏移地址16位,仅用偏移地址来寻址最多可寻址64K存储单元。

    3.数据在21F60H内存单元中,对于8086PC机的两种描述:a数据存在内存2000:1F60单元中;(常用)b数据存在内存的2000段中的1F60H单元中。

     

    9、段寄存器:段寄存器就是提供段地址的。8086CPU有4个段寄存器:CS(Code Segment)代码段寄存器、DS(Data Segment)数据段寄存器、SS(Stack Segment)堆栈段寄存器、ES(Extra Segment)附加段寄存器。

    10、CS和IP是8086CPU中最关键的寄存器,他们指示了CPU当前要读取指令的地址。CS为代码段寄存器,IP(Instruction pointer)为指令指针寄存器。在任何时候CPU将CS、IP的内容当做指令的段地址和偏移地址,用他们合成指令的物理地址,到内存中读取指令码,执行。程序员可以通过改变CS、IP中的内容来控制CPU执行目标指令。

    11、mov指令可以改变8086CPU大部分寄存器的值,被称为传送指令。

    12、8086CPU提供了转移指令jmp来改变CS、IP的值。1.同时修改CS、IP的内容:jmp 段地址:偏移地址,例jmp 2AE3 : 3。2.仅修改IP的内容:jmp 合法寄存器,例jmp ax(类似于mov IP ax)。

    13、CPU只认被CS:IP指向的内存单元中的内容为指令。

    14、sub ax bx 将ax-bx的值保存在ax中

    实验一:debug使用。查看CPU和内存,用机器指令和汇编指令。

    R命令 查看、改变CPU寄存器的内容;

    D命令 查看内存中的内容

    E命令 改写内存中的内容

    U命令 将内存中的机器指令翻译成汇编指令

    T 命令 执行一条机器指令

    A 命令 以汇编指令的格式在内存中写入一条机器指令。

    3、查看PC主板日期:d fff0:0 ff。

    4、出现彩色图案。

     

  • 相关阅读:
    jacman主题分页出现问题(Next<span></span>)
    后会有期(非技术)
    再谈前端性能优化
    emmet常用指令组合
    imagemagick在windows下安装(转,有改动)
    nth-child和蝉原则实现的奇妙随机效果(译)
    flex布局浅谈和实例
    css命名那些事儿
    chrome开发者工具浅析--timeline
    浏览器历史和发展趋势浅析
  • 原文地址:https://www.cnblogs.com/quantumplan/p/2389543.html
Copyright © 2020-2023  润新知