亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > ASM > 正文

ARM:偽指令、偽操作、C和匯編混合操作、匯編控制LED

2019-11-08 02:12:56
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
1、偽指令    指令本身不被ARM core所識(shí)別    但是匯編器可以把偽指令翻譯成一條或多條ARM core認(rèn)識(shí)的指令1.1 【ldr】---> 重點(diǎn)掌握    作用1:'將立即數(shù)存儲(chǔ)到特定寄存器中,(匯編代碼中使用=的)                mov r0, #0x1ff                可以使用                ldr r0, =0x1ff                _start:                    ldr r0, =0x1ff                    ldr r1, =lable  // 將lable對(duì)應(yīng)的地址加載到r1                    b .                    .end                arm-co...-as pesdo.s -o pesdo.o                arm-co...-objdump -S pwsdo.o > 1.asm    作用2:'將lable標(biāo)簽對(duì)應(yīng)內(nèi)存中的數(shù)據(jù)加載到寄存器(匯編代碼中同時(shí)沒(méi)有使用=和[ ]的)                ldr r2, lable1.2 【adr】    作用:'小范圍地址加載指令   ADR{cond} register, exPR    adr 可以找到標(biāo)號(hào)對(duì)應(yīng)代碼在內(nèi)存中的位置    adr r3, delay  @// sub r3, pc, #4    delay:            mov r5, r6    1.3 【nop】    作用:'空操作,用于延時(shí)    一般會(huì)被編譯器翻譯為 mov r0, r02、偽操作    '以 . 開(kāi)頭的都是偽操作    .arm  /  .code 32   / .thumb  / .code 16   // arm或thumb匯編指令    .equ// 常量定義偽操作            .equ NUM, #0x20            mov r0, NUM    .global  / .globl  // 將一個(gè)標(biāo)號(hào)聲明為聲明全局的常量偽操作    .extern  // 聲明外部常量偽操作    .hWord / .short // 半字定義偽操作    .word / .int / .long // 字定義偽操作    .byte // 字節(jié)定義偽操作    .string "abcde" / .ascii "abcde" / .asciz "abcde" // 字符串定義偽操作    .space 1024  / .skip 1024 // 固定填充字節(jié)內(nèi)存單元定義偽操作3、使用匯編控制LED    電路原理圖:        控制LED1就是控制GPIOC12    控制GPIOC12: 3 個(gè)特殊功能寄存器        GPIOC_OUT          0xc001c000        GPIOC_OUTENB    0xc001c004        GPIOC_ALTFN0      0xc001c020    使用匯編代碼編寫:led.s
/** 代碼演示  - les.s **/.text.global _start.code 32@ 定義三個(gè)控制led燈的GPIO寄存器.equ GPIOC_OUT,         0xc001c000.equ GPIOC_OUTENB,      0xc001c004.equ GPIOC_ALTFN0,      0xc001c020_start:        @ 功能選擇 FUNCTION1        ldr r0, =GPIOC_ALTFN0    @ r0=0xc001c020        ldr r1, [r0]             @ r0放到r1作為緩存        mov r2, #0x03        bic r1, r1, r2, lsl #24  @ clear r1 [25:24]        mov r2, #1        orr r1, r1, r2, lsl #24  @ set r1 [24]        str r1, [r0]             @ 寫回r0寄存器GPIOC_ALFN0                @ 配置為輸出功能        ldr r0, =GPIOC_OUTENB    @ r0=0xc001c004        ldr r1, [r0]        mov r2, #1        orr r1, r1, r2, lsl #12  @ set r1 [12]        str r1, [r0]             @ 寫回r0寄存器GPIOC_OUTENB                mov r2, #1loop:        @ 亮燈        ldr r0, =GPIOC_OUT       @ r0=0xc001c000        ldr r1, [r0]        bic r1, r1, r2, lsl #12  @ clear r1 [12]        str r1, [r0]        bl delay                 @ 調(diào)用函數(shù)delay        @ 滅燈        ldr r0, =GPIOC_OUT       @ r0=0xc001c000        ldr r1, [r0]        orr r1, r1, r2, lsl #12  @ set r1 [12]        str r1, [r0]        bl delay        b loop                   @ b跳轉(zhuǎn)loop循環(huán) - led間歇閃爍delay:        mov r0, #0x8000000       @ 設(shè)置延時(shí),值較C語(yǔ)言大,因速度快delay_loop:        sub r0, r0, #1                   @ r0=r0-1        cmp r0, #0                               @ 比較 r0 與 0        bne delay_loop                   @ 不相等,b跳轉(zhuǎn)自身循環(huán)繼續(xù)--        mov pc, lr                               @ bx lr 壓棧.end/** ------------------------------------------------------- **/4、C和匯編的混合調(diào)用    ATPCS  // ARM體系結(jié)構(gòu)與編程.pdf  --->P241.        1)使用的滿減棧 FD        2)函數(shù)參數(shù)的傳遞,前4個(gè)參數(shù)使用 r0 r1 r2 r3剩余參數(shù)使用棧傳遞         3)函數(shù)返回時(shí),返回值使用r04.1 匯編中如何調(diào)用C函數(shù)    xxx.s - 匯編        .extern func   @// 使用extern聲明func標(biāo)號(hào)為外部函數(shù)        mov r0, #5     @// r0 里面最終會(huì)保存函數(shù)的返回值        mov r1, #10        bl func           @// bl 調(diào)用func函數(shù),傳遞參數(shù)5和10    yyy.c - C程序        int func (int a, int b) {            return a + b;        }4.2 C程序中如何調(diào)用匯編函數(shù)    yyy.c - C程序        extern int func (int, int);         func (10, 20);    xxx.s - 匯編        .global func       @// 必要條件        func:            add r0, r0, r1            mov pc, lr4.3 C程序中嵌套匯編語(yǔ)法練習(xí):    shell框架程序。    使用匯編實(shí)現(xiàn)led.c里面的函數(shù) - led.s。' vi Makefile  新增arm的as編譯匯編文件變量        AS=arm-cortex_a9-linux-gnueabi-as        %.o:%.s                $(AS) $< -o $@
/** 代碼演示 **/.text.global led_init.global led_on.global led_off.code 32.extern uart_puts     @// 打印字符換來(lái)做調(diào)試使用.equ GPIOC_OUT,     0xc001c000.equ GPIOC_OUTENB,  0xc001c004.equ GPIOC_ALTFN0,  0xc001c020led_init:    stmfd sp!, {lr}        @// 把lr壓棧,保證lr是原來(lái)的值    ldr r0, =str1          @// 將str1的首地址放到r0里面    bl uart_puts          @// 調(diào)用uart_puts函數(shù)來(lái)打印顯示    @ 功能選擇 FUNCITON1    ldr r0, =GPIOC_ALTFN0       @ r0=0xc001c020    ldr r1, [r0]    mov r2, #0x03    bic r1, r1, r2, lsl #24     @ clear r1 [25:24]    mov r2, #1    orr r1, r1, r2, lsl #24     @ set r1 [24]    str r1, [r0]    @ 配置為輸出功能    ldr r0, =GPIOC_OUTENB       @ r0=0xc001c004    ldr r1, [r0]    mov r2, #1    orr r1, r1, r2, lsl #12     @ set r1 [12]    str r1, [r0]    mov pc, lr                   @ 壓棧,相當(dāng)于函數(shù)返回return                  @// ldmfd sp!, {lr} 打印調(diào)試信息,使用此句彈棧led_on:    mov r2, #1                  @ 把1放在r2寄存器緩沖區(qū)    ldr r0, =GPIOC_OUT          @ r0=0xc001c000    ldr r1, [r0]    bic r1, r1, r2, lsl #12     @ clear r1 [12] - 低電平 - 亮    str r1, [r0]    mov pc, lrled_off:    mov r2, #1    ldr r0, =GPIOC_OUT    ldr r1, [r0]    orr r1, r1, r2, lsl #12     @ set r1 [12] - 高電平 - 亮    str r1, [r0]    mov pc, lrstr1:    .string "/nled_init/0".end/** ------------------------------------------------------- **/練習(xí)二:    使用匯編指令將strcmp.c替換為strcmp.s的匯編文件。
/** 代碼演示 - strcmp.s **/.text.code 32.global my_strcmpmy_strcmp:cmp_loop:    ldrb r2, [r0], #1        @ // 每次取1個(gè)字符出來(lái)放到r2寄存器    ldrb r3, [r1], #1        @ // 每次取1個(gè)字符出來(lái)放到r3寄存器    cmp r2, #0              @ // 判斷r2是否到末尾    beq cmp_end          @ // 如果r2==0到末尾,就跳轉(zhuǎn)到cmp_end    cmp r2, r3                @ //     beq cmp_loopcmp_end:    sub r0, r2, r3    mov pc, lr                      @ // <==> bx lr.end/** ------------------------------------------------------- **/<tips>$:' cd 01/$:'ctags -R *$:' vi main.c   // 打開(kāi)最開(kāi)始的一個(gè)文件' 光標(biāo)移動(dòng)到函數(shù)或者變量名字上'Ctrl + ]         跳轉(zhuǎn)到定義/實(shí)現(xiàn)位置'Ctrl + t         返回上次跳轉(zhuǎn)之前的位置
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

色综合色综合色综合色综合| 国产亚洲精品自在久久| 亚洲成人久久网| 亚洲二区视频在线| 91精品国产免费| 九一免费在线观看| 美女激情福利视频在线观看| 欧美人伦禁忌dvd放荡欲情| 尤物yw193can在线观看| 亚洲黄色小说网站| 国精产品999国精产品官网| 亚洲欧洲美洲av| 欧美日韩亚洲91| 欧洲精品久久一区二区| xxxxxwwww免费视频| 精品嫩草影院| 乐播av一区二区三区| 国产三级在线免费| 国产精品久久久久久亚洲毛片| 波多野结衣视频播放| 日日狠狠久久| 狼人精品一区二区三区在线| 欧美在线观看一二区| 快射av在线播放一区| 成视频在线免费观看| 99综合精品久久| 露出调教综合另类| 欧美视频日韩视频| 国产精品美女在线观看直播| 制服丝袜av在线| 日本精品免费在线观看| 狠狠做六月爱婷婷综合aⅴ| 一区二区三区产品免费精品久久75| 国产欧美熟妇另类久久久| 美女把尿口扒开给男人桶视频| 怡红院怡春院首页| 国产视频一区二区在线观看| 亚洲社区在线| 成人一级黄色大片| 日韩精品中文字幕一区二区| 国产午夜三级一区二区三| 国产老妇伦国产熟女老妇视频| 亚洲一区二区三区小说| 福利在线小视频| 色中色在线视频| 成人线上视频| a在线欧美一区| 中文字幕国产传媒| 亚洲一区自拍| 欧美黑人巨大精品一区二区| 中文字幕乱码无码人妻系列蜜桃| 日本50路肥熟bbw| 亚洲免费在线电影| 亚洲第一色网| 国产不卡在线视频| 日韩手机在线观看视频| 欧美性色xo影院| 亚洲日本va午夜在线影院| 白丝校花扒腿让我c| 乡村艳史在线观看| 久久久国产午夜精品| 正在播放91九色| 欧美成年人视频在线观看| 99re国产在线播放| 一本色道精品久久一区二区三区| 日本不卡免费在线视频| 久久中文字幕一区二区三区| 青青草原综合久久大伊人精品| 一区二区国产精品视频| 亚洲新中文字幕| 好吊日在线视频| 最近最好的中文字幕2019免费| 久久精品视频在线看| 欧美日韩中文字幕在线视频| 久久精品视频一区二区| 日韩妆和欧美的一区二区| 96视频在线观看欧美| 欧美与欧洲交xxxx免费观看| 黄网站免费观看| 国产精品久久久久久福利一牛影视| 国产美女视频一区二区二三区| 久久精品一区中文字幕| 亚洲精品国产第一综合99久久| 国产精品无码无卡无需播放器| 亚洲成人先锋电影| 美腿丝袜在线亚洲一区| 国产人久久人人人人爽| 亚洲高清久久网| 国产精品污www在线观看| 欧美久久久久久久久久久| 国外成人在线直播| 成人有码在线视频| 国产一区二区三区四区五区传媒| 91丨porny丨户外露出| 国产精品麻豆视频| 天天操天天色综合| 五月天婷婷丁香| 九色网com| jizz国产精品| √天堂8资源中文在线| 快灬快灬一下爽蜜桃在线观看| 国产一区二区福利| 日韩欧美中文字幕制服| 欧美人体做爰大胆视频| 日韩高清一区在线| 成年大片免费视频播放二级| 樱花视频在线免费观看| 中文字幕欧美日韩va免费视频| 成人羞羞网站| 91精品天堂福利在线观看| 日韩手机在线导航| 国产激情一区二区三区桃花岛亚洲| 亚洲黄色www| 亚洲不卡系列| 在线不卡视频| 大伊香蕉精品在线品播放| 国产成人精品一区二区三区网站观看| 亚洲精品久久久狠狠狠爱| 日本精品裸体写真集在线观看| 欧洲精品码一区二区三区免费看| 免费高清一区二区三区| 不卡的在线视频| 国产999在线| 欧美精品v日韩精品v国产精品| 国产精品区一区二区三含羞草| 美女mm1313爽爽久久久蜜臀| 亚洲国产欧美一区二区三区久久| 欧美精品aaa| 亚洲AV第二区国产精品| 欧美国产精品v| 色窝窝无码一区二区三区| 欧美亚洲精品在线观看| japanese在线| 激情综合网站| 高清国产一区二区| 精品一区二区视频| 蜜臀久久精品| 秋霞一区二区三区| 国产精品电影在线观看| 色婷婷av一区| 日本黄区免费视频观看| 亚洲精品一区二区三区蜜桃下载| 高潮精品一区videoshd| 欧美极品少妇全裸体| 精品久久久久久久久久久久久久久久久久| 久久精品国产精品亚洲精品色| 欧美在线不卡区| 老熟妇一区二区三区啪啪| а√天堂8资源在线官网| 日韩一级淫片| 日韩一级免费在线观看| 精品久久久久久中文字幕一区奶水| 亚洲区免费影片| 中文字幕手机在线观看| 午夜av一区| 亚洲精品国产品国语在线app| 欧美wwwsss9999| 色网站在线视频| 国内视频一区| 国产欧美日韩免费| 亚洲高清资源综合久久精品| 欧美精品一区二区视频| 亚洲自拍偷拍av| 日韩日韩日韩日韩日韩| 免费观看黄色网| 国产白浆在线观看| 91久久精品在线| 日本在线视频中文字幕| 久久国产精品99国产精| 亚洲欧美www| 4444kk亚洲人成电影在线| 亚洲最快最全在线视频| 久久久久久伊人| 国产一区激情| 国产精品99精品一区二区三区∴| 精品国产视频一区二区三区| 91九色视频导航| 国产婷婷成人久久av免费高清| 国产传媒欧美日韩成人精品大片| 美女毛片免费看| 给我免费播放片在线观看| 国内激情视频在线观看| 精品视频一二区| 激情欧美一区二区三区在线观看| 色综合久久88色综合天天提莫| 综合一区在线| 国产黄色片免费| 黄色美女一级片| 91在线高清观看| 国产精品久久久久久麻豆一区软件| 最近2019中文字幕在线高清| 在线免费观看中文字幕| 日韩欧美成人一区| 天堂久久一区二区三区| 久久伦理网站| 亚州成人在线电影| 在线精品亚洲欧美日韩国产| 日韩伦理精品| 国产午夜三级一区二区三| 九色porny丨精品自拍视频| 中国毛片直接看| 国产成人精品999在线观看| 免费在线观看av的网站| 色综合久久网女同蕾丝边| 亚洲成熟女性毛茸茸| 精品中文字幕视频| 国产高潮呻吟久久久| 久久爱www| 91精品国产91久久久久久密臀| 国产视频在线观看网站| 美女91在线看| 香蕉成人久久| 欧洲日韩成人av| 久久成人麻豆午夜电影| 日本在线不卡一区二区| 中文字幕在线一| 91一区二区三区在线播放| 欧美日韩国产中文字幕在线| 久久撸在线视频| 尤物视频在线视频| 丁香六月色婷婷| 亚洲国产欧美不卡在线观看| 国产精品视频入口| 精品在线视频一区| 91香蕉国产在线观看软件| 成人国产亚洲精品a区天堂华泰| av色综合久久天堂av综合| 翔田千里一区二在线观看| 国内成人精品一区| 日本韩国一区| 亚洲自拍都市欧美小说| 香蕉久久国产| 亚洲国产aⅴ成人精品无吗| 色老板在线视频一区二区| 欧美xxxxxxxxx| 欧洲亚洲免费视频| 91精品国产乱码久久久张津瑜| 蜜桃狠狠色伊人亚洲综合网站| 向日葵污视频在线观看| 美女国产精品久久久| 97久久超碰国产精品电影| 国产丝袜高跟一区| 国产香蕉97碰碰久久人人| 99在线无码精品入口| 欧美一区二区综合| 亚洲美女精品视频| 国产精品第四页| 亚洲欧美自偷自拍另类| h视频在线观看网站| 欧美三区不卡| 日韩精品中文字幕有码专区| 国产一区二区三区在线观看| 欧美激情一区二区三区在线视频观看| 亚洲午夜久久久影院伊人| 国产精品免费av| 中文字幕资源站| 午夜一区二区三区免费| 久久全球大尺度高清视频| 亚洲日本伊人| av网站大全在线观看| 极品国产人妖chinesets亚洲人妖| 国内外成人免费视频| 影音先锋2020资源| 欧美成人网在线| 国产精品素人视频| 欧美黑人性受xxxx精品| 亚洲自拍偷拍网站| 欧美精品七区| 蜜臀99久久精品久久久久久软件| av地址在线观看| 亚洲风情亚aⅴ在线发布| www.久久热.com| 热re91久久精品国99热蜜臀| 91精品国产综合久久精品图片| 国产三区四区在线观看| 欧美黄色一区| 黄色的视频在线观看免费| 欧美日韩一区二区三区电影| 午夜精品蜜臀一区二区三区免费| 影音av资源网| 2019天天操夜夜操| va视频在线观看| 综合色中文字幕| 全亚洲最色的网站在线观看| 国产视频www| 欧美特大特白屁股xxxx| 国产精品无码久久久久一区二区| 最新亚洲伊人网| 亚洲色图美腿丝袜| 国产精品自拍合集| 欧美www视频在线观看| 国产经典一区| 日本成人一级片| 99国产精品99久久久久久| 青青草成人在线| 在线电影中文日韩| 天堂网www在线中文天堂| 精品视频1区2区3区| 嫩草影视亚洲| 四虎成人精品免费影院| 成人免费视频入口| 欧美一区二区三区免费观看| 久久在线观看视频| 精品午夜久久福利影院| 成人免费网站黄| 国产又粗又硬又长又爽| av线上观看| 蜜芽tv福利在线视频| 麻豆国产尤物av尤物在线观看| 五月天久久综合网| 欧美日韩性视频一区二区三区| 色老汉av一区二区三区| 欧洲精品乱码久久久久蜜桃| 欧美午夜性色大片在线观看| 黄色片免费在线观看视频| 欧美诱惑福利视频| 久久久精品人体av艺术| 日韩免费观看av| gogo大尺度成人免费视频| qvod激情图片| 国产乱国产乱老熟300部视频| 欧美成人网在线| 成人黄色理论片| 2021国产精品久久精品| 日韩欧美中文字幕在线播放| 欧美一区二区少妇| 欧美成人三级视频| 成人久久18免费网站漫画|