zoukankan      html  css  js  c++  java
  • 基础汇编指令

    start:

    mov  sp,  #4096

    bl  c  main

    halt

    b  8

    mov  ip,  sp

    stmdb   sp!,  {fp,ip,lr,pc}

    sub   fp,  ip  ,#4;  0x4

    sub   sp,  sp,  #8  0x8

    mov  r3,#1442840576  0x56000000

    add  r3,  r3,  #80;  0x50

    str  r3,  [fp,#-16

    mov  r3,  #1442840576  0x56000000

    add  r3,  r3,  #84 ;  0x54

    str  r3,  [fp, #-20]

    ldr  r2,  [fp, #-16]

    mov  r3,  #256

    str  r3,  [r2]

    ldr  r2,  [fp,#-20]

    mov  r3,  #0

    str  r3,  [r2]

    mov  r3,  #0

    mov  r0,  r3

    sub  sp,  fp,  #12

    ldmia  sp,{fp,sp,pc}

    解析:

      stmdb  sp!,{fp,ip,lr,pc}

    db含义:decrement  before  先减,后存。

      sp' = sp -4 = 4092,如果布加感叹号,sp为原值,并不会被减。

      高编号寄存器存在高地址,4092到4095存放PC的值,sp' = sp - 4 = 4088.

                  4088到4091存放lr寄存器的值

                  4084到4087存放ip的值

                  4080到4083存放fp的值。

    stmdb最常用

    ldmia  sp,  {fp,sp,pc}

      先读4080到4083的值 = 原来的fp的值  低地址对应低编号。

      

      

      

        

  • 相关阅读:
    amfphp1.9 class mapping初探
    C#程序打包.exe应用程序
    数据库备份方案
    ListView 控件使用
    在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库
    .NET
    转载:MATLAB 符号函数作图
    整理雷达相关
    Python 程序 运行过程
    struts2 文件上传显示进度条
  • 原文地址:https://www.cnblogs.com/stm32f4/p/7609844.html
Copyright © 2011-2022 走看看