bp为基址寄存器,一般在函数中用来保存进入函数时的sp的栈顶基址
sp是栈顶指针,它每次指向栈顶。
每次子函数调用时,系统在开始时都会保存这个两个指针并在函数结束时恢复sp和bp的值。像下面这样:
在函数进入时:
push bp  //保存bp指针
mov bp,sp //将sp指针传给bp,此时bp指向sp的基地址。这个时候,如果该函数有参数,则[bp+4]则是该子函数的第一个参数,[bp+6]则是该子函数的第二个参数,以此类推,有多少个参数则[bp+4+2^n]。
.....
.....
函数结束时:
mov sp,bp //将原sp指针传回给sp
pop bp  //恢复原bp的值。
ret  //退出子函数

汇编函数调用中bp和sp是指什么?的更多相关文章

  1. 在汇编代码中调用C函数

    对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure Call Standard),ATPCS主要是定义了函数呼叫时参数 ...

  2. linux 汇编 - 函数调用

    Linux 汇编-函数调用 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !i ...

  3. 详细MATLAB 中BP神经网络算法的实现

    MATLAB 中BP神经网络算法的实现 BP神经网络算法提供了一种普遍并且实用的方法从样例中学习值为实数.离散值或者向量的函数,这里就简单介绍一下如何用MATLAB编程实现该算法. 具体步骤   这里 ...

  4. TypedValue.applyDimension 中dp和sp之间转化的真相

    转载自http://www.cnblogs.com/xilinch/p/4444833.html 最近在看了许多关于dp-px,px-dp,sp-px,px-sp之间转化的博文,过去我比较常用的方式是 ...

  5. Android中的pix,sp,dp相关概念

    px( pixel) 像素,可以简单的理解为一个点或方块,用以颜色的显示(单位),一般指印刷品或屏幕设置设备的颜色显示定义. dip(device independent pixels)设备独立像素. ...

  6. ARM学习笔记9——ARM汇编汇编语言中的伪指令

    ARN汇编器支持ARM伪指令,这些伪指令在汇编阶段被翻译成ARM或Thumb指令.ARM伪指令包含ADR.ADRL.MOV32和LDR.一.ADR伪指令 1.作用 ADR是小范围地址读取伪指令,基于P ...

  7. [转]Android中dp,px,sp概念梳理以及如何做到屏幕适配

    http://blog.csdn.net/jiangwei0910410003/article/details/40509571 今天又开始我的App开发,因为之前一直做的是SDK,所以涉及到界面UI ...

  8. 在安卓代码中dp 和 sp 换算px

    /** * 单位转换工具 * * @author carrey * */ public class DisplayUtil { /** * 将px值转换为dip或dp值,保证尺寸大小不变 * * @p ...

  9. Windows x64汇编函数调用约定

    最近在写一些字符串函数的优化,用到x64汇编,我也是第一次接触,故跟大家分享一下. x86:又名 x32 ,表示 Intel x86 架构,即 Intel 的32位 80386 汇编指令集. x64: ...

随机推荐

  1. JS 乱记

    JS 中不存在块级作用域,也就是说在全局作用域下 if ,for 语句中用 var 声明的变量是全局变量. JS 中浮点数运算的值为近似值,比如:0.1 + 0.2 不等于 0.3 ,所以避免使用浮点 ...

  2. hasLayout与Block formatting contexts的学习(上)

    hasLayout与Block formatting contexts的学习 @(css BFC)[IE hasLayout|妙瞳] hasLayout是什么? haslayout 是Windows ...

  3. PHP之curl

    当我第一次接触curl的时候,看文档,以及网上search各种资料,官方(http://cn2.php.net/manual/en/intro.curl.php)的解释是,这是某大牛写的一个libcu ...

  4. SignalR 跨域设置

    参考文章:http://www.cnblogs.com/nywd/p/3691813.html 上一节,已经实现了,当前域内的通信,这一节中,介绍一下跨域的即时通信,既然要做,我们肯定要把这个推送及聊 ...

  5. 【原创】java 流星划过天空

    import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import javax.s ...

  6. android基本知识(一)

    今天开始更新一下android的基本知识,下面是敲代码遇到的问题. 1)我们来谈谈android.intent.category.DEFAULT的用途.     在谈这个tag的用途之前,读者要明白什 ...

  7. Java多线程编程总结(学习博客)

    Java多线程编程总结:网址:http://lavasoft.blog.51cto.com/62575/27069/

  8. java中IO流的操作

    读取转换流--读取键盘录入中键盘录入一行数据并打印其大写,发现就是读一行数据的原理.也就是readLine方法.能不能直接使用readLine方法来完成键盘录入一行数据的读取呢?readLine方法是 ...

  9. 【html】【17】高级篇--loading加载

    参考: http://aspx.sc.chinaz.com/query.aspx?keyword=%E5%8A%A0%E8%BD%BD&classID=835 下载:   http://sc. ...

  10. SQL SERVER删除列,报错."由于一个或多个对象访问此列,ALTER TABLE DROP COLUMN ... 失败"

    队友给我修改数据的语句.总是执行失败.很纳闷. 如下图: 仔细看了下这个列,并没有什么特殊.如下图: 但其确实有个约束: 'DF__HIS_DRUG___ALL_I__04E4BC85' . 为什么有 ...