arm彙編文法Demo,arm彙編demo

來源:互聯網
上載者:User

arm彙編文法Demo,arm彙編demo

/*************************************************************************    > File Name: inout.c    > Author: zshh0604    > Mail: zshh0604@.com     > Created Time: Wed 10 Dec 2014 02:47:50 PM ************************************************************************/#include<stdio.h>//__asm__ __volatile__(////); int main(void){/*************************************************///第一種訪問寄存器的方式.//強制將變數將寄存器綁定.//立即數前面必須加#register unsigned int a asm("r0");asm volatile("mov r0,#30\n"  //該r0賦值為30.);/************************************************///第一個冒號後面只能聲明輸出變數或者輸入輸出變數.//第二個冒號後面只能聲明輸入變數.//第三個冒號後面只能聲明需要保護的寄存器.//使用"=&r"聲明一個輸出變數.//使用"r" 聲明一個輸入變數.//使用"r+"聲明一個輸入輸入變數.//在彙編中使用%0, %1,這樣變數,他會自動綁定沒有使用的寄存器.//%0和%1,會按照變數聲明的順序一次綁定.這裡的%0會綁定到out, %1會自動綁定到out1.int out; int in_out; int in=10;asm volatile("mov r0,#30\n"              //該r0賦值為30."mov %0,r0\n"              "mov %1,r0\n"              "mov r0,%2\n"              :"=r"(out), "r+"(in_out)    //聲明一個輸出,和輸入輸出變數.:"r"(in)              //聲明輸入變數.:"r0"                 //保護寄存器. );/************************************************///[a] [b] [in] 給聲明的變數分別加上標記.//在彙編代碼中可以使用這些標記.%0, %1,中的0,和1asm volatile("mov r0,#30\n"                //該r0賦值為30."mov %[a],r0\n"                 "mov %[b],r0\n"              "mov r0,%[in]\n"             :[a]"=r"(out), [b]"r+"(in_out)    //聲明一個輸出,和輸入輸出變數.:[in]"r"(in)              //聲明輸入變數.:"r0"                 //保護寄存器. );/***************************************************///r 為使用寄存器操作變數聲明.//r 不加如何表示,表示的是輸入變數,只能讀,不能寫.//r+ 表示輸入輸出變數.//=r 表示的是輸出變數//& 表示輸出變數.不會和輸入變數公用一個寄存器.return 0 ;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.