zoukankan      html  css  js  c++  java
  • 【编程范式】汇编解释swap方法

    先要熟悉一些汇编的基本知识:


    1.SP是什么?


    SP是堆栈寄存器,在调用子程序时,都会用到,保存原来程序的环境使用,如各个寄存器的内容,最重要的是,调用返回时程序的运行指令地址,这是由调用时将返回地址压入堆栈,返回时取出并传给PC寄存器来实现的。给SP的初始化值的大小,显示了堆栈的存放位置和堆栈的大小,如果堆栈太小,会出现堆栈溢出的问题。(其内容为栈顶的偏移地址。)
    2.PC是什么寄存器?
    PC是16位程序计数器(Program Counter),它不属于特殊功能寄存器范畴,程序员不以像访问特殊功能寄存器那样来访问PC。PC是专门用于在CPU取指令期间寻址程序存储器。PC总是保存着下一条要执行的指令的16位地址。通常程序是顺序执行的,在一般情况下,当取出一个指令(更确切地说为一个指令字节)字节后,PC自动加1。如果在执行转移指令、子程序调用/返回指令或中断时,要把转向的地址赋给PC。
    
    
    
    
    
    
    
    引用的汇编代码跟上面一模一样:
    
    
    int  x = 17;
    int y= x;
    int z = &y;
    
    
    下面图阴影部分,就是
    int *z = &y;
    X  
    Y  
    Z////////////////////////////////////////////// 指向Y这个地址
    
    

    
    
    
    
    
  • 相关阅读:
    [USACO5.1]二维凸包模板
    HTML 5 Web 存储
    计算两个坐标点的距离(高德or百度)
    Cache的一些总结
    PowerDesigner最基础的使用方法
    MongoDB安装
    MangoDB CSharp Driver
    Linq语法详细
    where用法
    .Net下二进制形式的文件存储与读取
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3172153.html
Copyright © 2011-2022 走看看