zoukankan      html  css  js  c++  java
  • 汇编学习入门

    一、CPU的寄存器

    –AX--累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;
    –BX--基址寄存器,常用做存放存储器地址;
    –CX--计数器,作为循环和串操作等指令中的隐含计数器;
    –DX--数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。
    (SI,DI,SP,BP,只能按16位进行存取操作)
    –变址寄存器常用于存储器寻址时提供地址
      –SI(Source Index)是源变址寄存器
      –DI (Destination Index)是目的变址寄存器
    指针寄存器用于寻址内存堆栈内的数据
      –SP为堆栈指针寄存器,指示栈顶的偏移地址,SP不能再用于其他目的,具有专用目的
      –BP为基址指针寄存器,表示数据在段中的基地址
    –CS(代码段)指明代码段的起始地址,用来存放程序的指令序列,代码段寄存器CS存放代码段的段地址,指令指针寄存器IP指示下条指令的偏移地址
      处理器利用CS:IP取得下一条要执行的指令
    –SS(堆栈段)指明堆栈段的起始地址,堆栈段确定堆栈所在的主存区域,堆栈段寄存器SS存放堆栈段的段地址,堆栈指针寄存器SP指示堆栈栈顶的偏移地址
      处理器利用SS:SP操作堆栈栈顶的数据
    –DS(数据段)指明数据段的起始地址,数据段存放运行程序所用的数据,数据段寄存器DS存放数据段的段地址,各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址
      处理器利用DS:EA存取数据段中的数据
    –ES(附加段)指明附加段的起始地址,附加段是附加的数据段,也用于数据的保存:附加段寄存器ES存放附加段的段地址,各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址
      处理器利用ES:EA存取附加段中的数据,串操作指令将附加段作为其目的操作数的存放区域
    –FR(标志寄存器),标志(Flag)用于反映指令执行结果或控制指令执行形式,8086处理器的各种标志形成了一个16位的标志寄存器FR(标志寄存器的内容称为程序状态字PSW)
    –状态标志--用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它。
      –CF  ZF  SF  PF  OF  AF
    –控制标志--可由程序根据需要用指令设置,用于控制处理器执行指令的方式
      –DF  IF  TF 
    PF标志仅反映最低8位中“1”的个数是偶或奇,即使是进行16位字操作

    二、CPU的寻址方式

    1.立即寻址
    操作数在指令中,紧跟在操作码之后,这样的操作数成为立即数,可以是8位或者16位。
    例如:
      MOV AX,1234H
    2.寄存器寻址
    3.直接寻址
    4.寄存器间接寻址
    5.基址寻址
    6.变址寻址
    7.基址变址寻址
     未完待续~
  • 相关阅读:
    集成学习
    逻辑斯谛回归
    【腾讯】【实习】【笔试】【数据分析师】2018.04.05
    C语言中scanf和printf的用法详解
    寻找一个数组中未出现的最小正整数(数组元素可重复)
    吃鸡问题中的的动态规划
    Coursera 深度学习 吴恩达 deep learning.ai 第三课 结构化机器学习项目 第二周 测试题目 Autonomous driving (case study)
    【转】P问题与NP问题详细解答加举例
    LeetCode 149. Max Points on a Line
    LeetCode 150. Evaluate Reverse Polish Notation
  • 原文地址:https://www.cnblogs.com/M-fengye/p/9789729.html
Copyright © 2011-2022 走看看