zoukankan      html  css  js  c++  java
  • 汇编小记16/3/23

    最后一次更新:2016-03-23 19:51:12 


    寄存器(内存访问)

    字单元:字型数据在地址连续的两个内存单元中存储,比如2 3内存单元,2为该字型起始单元,则称该字单元为2地址地址单元


    用mov指令访问内存单元,可以在mov指令中只给出单元的偏移地址,此时段地址默认在DS寄存器中

    [address]表示偏移地址为address的内存单元

    内存和寄存器中传送字型数据是,高地址单元和高8位寄存器,低地址单元和低8为寄存器


    任意时刻,SS:SP指向栈顶元素

    和mov不同的是,pop和push不需要给出内存的偏移地址,ss:sp就能确定当前栈顶

    cpu的栈机制:先改变sp后写内存的push指令,读内存后改变sp的pop指令

    cpu只知道当前执行的指令和当前的栈顶元素,没有overflow的机制

    需要自己判断栈有没有出界,需要自己管理栈空间的大小,比如我们人为设定10000H~1FFFFH为栈段

    pop和push只是指令,需要我们先定义SS,SP指向栈段(初始化栈顶)

    pop和push实质上是一种内存访问指令

    比如 1000H~1FFFFH这段空间设定为栈段,初始状态栈是空的,此时SS=1000H?(感觉是2000H),SP=0000H

    分析:栈为有唯一一个元素时,sp的内容是fffe,则这个元素出栈,sp=sp+2

    分析:ss当前栈段地址,是不会改变的,push、pop只改变sp,所以栈顶的变化范围是0~FFFFFH,从栈空的时候的sp=0,一直压栈,直到栈满是sp=0,如果再次压栈,栈顶将环绕,覆盖掉原来的内容,所以一个栈段的最大容量为64KB


     

    在一个谎言的国度,沉默就是英雄
  • 相关阅读:
    ARC和MRC兼容和转换
    ARC下的内存管理
    嵌入式硬件系列一:处理器介绍
    嵌入式Linux GCC常用命令
    一. Linux 下的常用命令
    ARM学习中的必知基本常识
    二叉搜索树详解
    从入门到高手,嵌入式必会技能及学习步骤总结
    史上最全Linux目录结构说明
    排序系列之六:快速排序法进阶
  • 原文地址:https://www.cnblogs.com/EdsonLin/p/5313175.html
Copyright © 2011-2022 走看看