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这个地址
    
    

    
    
    
    
    
  • 相关阅读:
    python--随机生成汉字、数字
    PyCharm详细教程
    Struts2 笔记
    Servlet读取配置文件的三种方式
    Java笔记(十)
    Java笔记(九)
    Java笔记(八)
    Java笔记(七)
    Java笔记(六)
    Java笔记(五)
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3172153.html
Copyright © 2011-2022 走看看