zoukankan      html  css  js  c++  java
  • <汇编语言(第2版)>2011032401

    典型的CPU是由运算器、寄存器、控制器等组成

    不同的CPU,寄存器的个数和结构都不相同。

    8086CPU有14个寄存器,都是16位
    AX\BX\CX\DX
    SI\DI
    SP\BP\IP
    CS\SS\DS\ES
    PSW

    通用寄存器
    AX、BX、CX、DX

    为了兼容8086以前的,寄存器又可分成两个8位寄存器,如AH/AL

    汇编指令:
    Mov 目的地址,源数据
    Add 目的地址,加数

    物理地址:
    所有的内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址。

    16位结构的CPU
    有如下结构特征:
    运算器一次最多可以处理16位的数据
    寄存器的最大宽度为16位
    寄存器和运算器之间的通路是16位

    8086就是16位,之前的8080-8085是8位。

    8086CPU有20为地址总线,有1MB寻址能力,但8086是16位的cpu,只能处理64KB的地址。
    所以采用一种在内存用两个16位地址合成的方式来形成20位的物理地址
    所以:物理地址=段地址*16+偏移地址(实质:是基础地址+偏移地址=物理地址的具体实现)

    段的概念,内存并没有分段,段的划分来源CPU,在8086上,其寻址能力是64KB。

    段寄存器
    CS、DS、SS、ES

    CS和IP是8086CPU中最关键的2个寄存器,指示了CPU当前要读取指令的地址。
    CS:代码段寄存器
    IP:指令指针寄存器
    在8086中,任何时刻,CPU将CS:IP指向的内容为当前指令执行
    改变CS,IP内容的指令为转移指令
    当前学习:
    jmp 段地址:偏移地址        修改CS,IP
    jmp 某合法寄存器            修改IP

    调试工具Debug工具
    是Dos、Windows提供下的实模式(8086 方式)程序的调试工具

    R命令查看、改变CPU寄存器内容
    D命令查看内存中的内容
    E命令改写内存中的内容
    U命令将内存中机器指令转为汇编指令
    T命令执行一条机器指令
    A命令以汇编指令的格式在内存中写入一条机器指令
  • 相关阅读:
    钱多多软件制作04
    团队项目01应用场景
    HDU 4411 arrest
    HDU 4406 GPA
    HDU 3315 My Brute
    HDU 3667 Transportation
    HDU 2676 Matrix
    欧拉回路三水题 POJ 1041 POJ 2230 POJ 1386
    SPOJ 371 BOXES
    POJ 3422 Kaka's Matrix Travels
  • 原文地址:https://www.cnblogs.com/GoGoagg/p/1993591.html
Copyright © 2011-2022 走看看