汇编语言学习笔记(二)

来源:互联网 发布:b2b2c php开源框架 编辑:程序博客网 时间:2024/04/30 09:50

1.CPU的组成:

      运算器:进行信息的处理

      寄存器:进行信息的存储

      控制器:控制各种器件进行工作

      内部总线(CPU内部的总线):连接各种器件,在他们之间进行数据的传送

2.寄存器是CPU的主要部件,寄存器是CPU中程序员可以用指令读写的部件,程序员通过改变各种寄存器中的内容来实现对CPU 的控制。

3.寄存器的分类:(8086CPU)

    AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW

    我们主要关心的寄存器是:

    通用寄存器,用来存放一般性的数据,他们是:AX、BX、CX、DX

        AX、BX、CX、DX都可以分为高8位和低8位,他们是:

        AX可分为:AH和AL;

        BX可分为:BH和BL;

        CX可分为:CH和CL;

        DX可分为:DX和DL;

    段寄存器,用来存放段地址,他们是:CS、SS、DS、ES。我们主要关注CS,他为代码段寄存器,存放的是CPU当前要读取指令的段地址。

    指令指针寄存器,用来存放偏移地址,他是IP。

4.物理地址:

    CPU访问内存单元时,要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间,每个内存单元在这个空间中都有唯一的地址,我们将这个唯一的地址成为物理地址。

5.什么叫16位结构的CPU

   运算器一次最多可以处理16位的数据;

   寄存器的最大宽度为16位;寄存器和运算器之间的通路是16位。

6.物理地址=段地址*16+偏移地址。

7.CPU从何处执行指令是由CS、IP中的内容决定的,程序可以通过改变CS、IP中的内容来控制CPU执行目标指令。

8.修改CS、IP的内容,可以用:

   同时修改CS、IP:jmp 段地址:偏移地址

   修改IP:jmp:某一合法寄存器

 

附:debug的使用方法

1.怎么进debug?

  在“运行”里面输入“command”后,确定。就进入了DOC方式。

  然后,输入debug回车,就进入了debug。

  在debug下,输入q回车是,是退出debug。

 2.命令介绍:

    -r 可以查看各个寄存器的内容

    -r 寄存器名  可以修改寄存器中的内容

    -d 可以查看内存中的内容

    -d 段地址:偏移地址 查看内存中某物理地址的内存,将列出指定内存单元开始的128个内存单元的内容

    -e 段地址:偏移地址 修改内存中某物理地址的的内容

    -u 段地址:偏移地址 查看从某物理地址开始的内存单元中的内容翻译为汇编指令

    -t   可以执行CS:IP指向的指令

    -a  段地址:偏移地址 可以从某物理地址开始以汇编指令的形式在内存中写入机器指令

原创粉丝点击