zoukankan      html  css  js  c++  java
  • 【笔记】【汇编语言】第2章 寄存器

    CPU的构造:运算器,寄存器,控制器,总线
    程序员通过改变各种寄存器中的内容来实现对CPU的控制。
    8086CPU有14个寄存器:AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW

    2.1 通用寄存器
      AX,BX,CX,DX这四个寄存器通常用来存放一般性的数据,称为通用寄存器。
      8086的所有寄存器都是16位的,为了保证兼容,使原来基于上代8位CPU编写的程序稍加修改就可以在8086上运行,8086CPU的4个通用寄存器都可以分为两个独立使用的8位寄存器。

    2.2 字在寄存器中的储存

    2.3 几条汇编指令
      注:汇编命令操作的对象位数须一致

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

    2.5 16位结构的CPU
      特征:
      1)运算器一次最多可以处理16位数据
      2) 寄存器的最大宽度为16位
      3)寄存器和运算器之间的通路为16位

    2.6 8086CPU给出物理地址的方法
      物理地址=段地址*16+偏移地址
     
    2.7 “物理地址=段地址*16+偏移地址”的本质含义
      8086CPU的这种“物理地址=段地址*16+偏移地址”寻址功能其实是“物理地址=基础地址+偏移地址”地址模式的一种具体实现方案
     
    2.8 段的概念
      其实内存并没有分段,段的划分来自于CPU,由于8086CPU使用“物理地址=段地址*16+偏移地址”的方式来给出内存单元的具体地址,使得我们可以使用分段的方式来管理内存。
      16位地址的寻址能力为64KB,所以一个段最大的长度为64KB。
     
    2.9 段寄存器
      8086CPU有4个段寄存器:CS,DS,SS,ES
     
    2.10 CS和IP
      8086机中,任意时刻,CPU将CS:IP中的内容当作指令执行
     
    2.11 修改CS和IP的指令
      注:CPU中,程序员可以通过指令读写的只有寄存器,程序员通过改变寄存器中的内容来实现对CPU的控制。
      注:mov指令并不能用于修改CS和IP的值,因为8086CPU并没有提供这样的功能。能够修改CS,IP的指令称为转移指令。
      如JMP指令:
      JMP 段地址:偏移地址
      JMP REG ; 类似于 MOV IP,REG
     
    2.12 代码段
      指一段存放代码的内存
     
    实验1 查看CPU和内存,用机器指令和汇编指令编程

    Debug命令和功能:
    1.R:查看CPU寄存器内容
      <> R
        查看寄存器内容
      <> R reg
        修改寄存器内容
    2.D:查看内存中的内容
      <> D
        查看默认的内存中128个字节的内容
      <> D 段地址:偏移地址
        查看由段地址:偏移地址指定起始的128个字节的内容
      <> D 段地址:偏移起始地址 偏移结束地址
        查看由用户指定的一段内存
    3.E:改写内存中的内容
      <> E 段地址:偏移地址 数据 数据 数据 数据……
        直接修改内存内容
      <> E 段地址:偏移地址
        提问式修改内存内容(按空格表示该单元处理完成,回车表示命令完成)
    4.U:将内存中的机器指令翻译成汇编指令
      使用方式参照D命令
    5.T:执行下一条机器指令
    6.A:用汇编指令的格式向内存中写入一条机器指令
      <> A 段地址:偏移地址
        提问式修改,当不输入直接按回车时表示命令结束

  • 相关阅读:
    Cardiogram
    Increasing Speed Limits HDU
    Beaver Game CodeForces
    C++LeetCode:: Container With Most Water
    C++ leetcode::Reverse Integer
    C++ leetcode::ZigZag Conversion
    C++ leetcode Longest Palindromic Substring
    C++ leetcode Longest Substring Without Repeating Characters
    Faster RCNN
    C++ Leetcode Median of Two Sorted Arrays
  • 原文地址:https://www.cnblogs.com/AzikPhil/p/note_asm2_2.html
Copyright © 2011-2022 走看看