国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ARM:使用匯編完成三個燈流水亮滅

這篇具有很好參考價值的文章主要介紹了ARM:使用匯編完成三個燈流水亮滅。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.匯編源代碼

.text 
.global _start
_start: 
	
	@設(shè)置GPIOF寄存器的時鐘使能
	LDR R0,=0X50000A28
	LDR R1,[R0]
	ORR R1,R1,#(0x1<<5)
	STR R1,[R0]
 
	@設(shè)置GPIOE寄存器的時鐘使能
	LDR R0,=0X50000A28
	LDR R1,[R0]  @從r0為起始地址的4字節(jié)數(shù)據(jù)取出放在R1
	ORR R1,R1,#(0x1<<4)  @第4位設(shè)置為1
	STR R1,[R0]  @寫回
 
	@設(shè)置PE10管腳為輸出模式  GPIOE_MODER[21:20]->01   0x50006000
	LDR R0,=0x50006000
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	ORR R1,R1,#(0X1<<20) @設(shè)置
	STR R1,[R0] 
 
	@設(shè)置PF10管腳為輸出模式
	LDR R0,=0x50007000
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)
	ORR R1,R1,#(0x1<<20)
	STR R1,[R0]
 
	@設(shè)置PE8管腳為輸出模式
	LDR R0,=0x50006000
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<16) @[17:16]清0
	ORR R1,R1,#(0X1<<16) @設(shè)置1
	STR R1,[R0] 
 
 
	@設(shè)置PE10管腳為推挽輸出  GPIOE_OTYPER[10]->0   0X50006004
	LDR R0,=0X50006004
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<10)
	STR R1,[R0]
	
	@設(shè)置PF10管腳為推挽輸出
	LDR R0,=0X50007004
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<10)
	STR R1,[R0]
	
	@設(shè)置PE8管腳為推挽輸出  GPIOE_OTYPER[10]->0   0X50006004
	LDR R0,=0X50006004
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<8)
	STR R1,[R0]
 
 
	@設(shè)置PE10管腳為低速輸出   GPIOE_OSPEEDR[21:20]->00  0X50006008
	LDR R0,=0x50006008
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	STR R1,[R0]
	
	@設(shè)置PF10管腳為低速輸出
	LDR R0,=0x50007008
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	STR R1,[R0]
 
	@設(shè)置PE8管腳為低速輸出   GPIOE_OSPEEDR[21:20]->00  0X50006008
	LDR R0,=0x50006008
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<16) @[17:16]清0
	STR R1,[R0]
 
	@設(shè)置PE10管腳輸出時沒有上拉下拉電阻  GPIOE_PUPDR[21:20]->00  0X5000600C
	LDR R0,=0x5000600c
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	STR R1,[R0]
	
	@設(shè)置PE8管腳輸出時沒有上拉下拉電阻  GPIOE_PUPDR[21:20]->00  0X5000600C
	LDR R0,=0x5000600c
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<16)@[17:16]清0
	STR R1,[R0] 
	
	@設(shè)置PF10管腳輸出時沒有上拉下拉電阻
	LDR R0,=0x5000700c
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	STR R1,[R0]
 
	@  6.PE10輸出高低電平      GPIOE_ODR[10]->1(高電平)  0(低電平)    0X50006014
	@LED1亮滅交替
loop:
	@led1亮
	LDR R0,=0X50006014
	LDR R1,[R0]
	ORR R1,R1,#(0x1<<10)
	STR R1,[R0]
	BL delay
	
	@led2滅
	LDR R0,=0X50006014
	LDR R1,[R0]
	BIC R1,R1,#(0x1<<10)
	STR R1,[R0]
	BL delay
 
	@led2亮
	LDR R0,=0X50007014
	LDR R1,[R0]
	ORR R1,R1,#(0x1<<10)
	STR R1,[R0]
	BL delay
	
	@led2滅
	LDR R0,=0X50007014
	LDR R1,[R0]
	BIC R1,R1,#(0x1<<10)
	STR R1,[R0]
	BL delay
	
	@led3亮
	LDR R0,=0X50006014
	LDR R1,[R0]
	ORR R1,R1,#(0x1<<8)
	STR R1,[R0]
	BL delay
	
	@led3滅
	LDR R0,=0X50006014
	LDR R1,[R0]
	BIC R1,R1,#(0x1<<8)
	STR R1,[R0]
	BL delay
 
	b loop
 
 
	@封裝延時函數(shù)
 
delay:
	LDR R4,=0X10000000
mm:
	cmp r4,#0
	subne r4,r4,#1
	bne mm
	mov pc,lr  @程序返回	
 
.end

2.實驗現(xiàn)象

ARM:使用匯編完成三個燈流水亮滅,arm開發(fā),匯編文章來源地址http://www.zghlxwxcb.cn/news/detail-729950.html

到了這里,關(guān)于ARM:使用匯編完成三個燈流水亮滅的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • ARM 匯編指令 orreq 的使用

    ARM 匯編指令 orreq 的使用

    閱讀代碼時,發(fā)現(xiàn)有個【組合指令】 orreq, orr 一般是 OR,也就是或操作,后面加個 eq 表示什么呢? 比如下面的代碼:前面一個操作, tst,好像沒做實際的操作,可能影響了一些【狀態(tài)位】 當(dāng)前通過 ARM 官方 查找的 Instruction Set Assembly Guide for Armv7 and earlier Arm architectures Ref

    2024年02月08日
    瀏覽(10)
  • ARM匯編基本變量的定義和使用

    ARM匯編基本變量的定義和使用

    數(shù)字變量: GBLA LCLA SETA 邏輯變量:GBLL LCLL SETL 字符串:GBLS LCLS SETLS 注意需要TAB鍵定義變量和行首改變值 代碼如下(示例): gnu匯編:

    2024年02月15日
    瀏覽(22)
  • ARM day9 (按鍵中斷控制led亮滅)

    ARM day9 (按鍵中斷控制led亮滅)

    ?保存現(xiàn)場 異常的處理流程,保存現(xiàn)場會做哪些事情(四大步三小步) ----CPU自動完成 1.保存CPSR寄存器中的值,到SPSR_mode寄存器中 2.修改CPSR寄存器對應(yīng)的位 ????????1修改CPSR寄存器對應(yīng)的狀態(tài)位(T位) ????????2根據(jù)需要,禁止相應(yīng)中斷位(I位 / F位) ????????3修改CPSR寄存

    2024年02月13日
    瀏覽(23)
  • arm學(xué)習(xí)之stm32設(shè)備樹學(xué)習(xí)-中斷控制led燈亮滅+字符設(shè)備指令控制led燈亮滅

    中斷控制led燈亮滅 驅(qū)動文件源碼 led-key.c 字符設(shè)備指令控制led燈亮滅 驅(qū)動文件 led-cmd.c 應(yīng)用文件 led.c

    2024年02月14日
    瀏覽(26)
  • 【ARM64 常見匯編指令學(xué)習(xí) 12 -- ARM 匯編函數(shù) 的學(xué)習(xí)】

    上篇文章:ARM64 常見匯編指令學(xué)習(xí) 11 – ARM 匯編宏 .macro 的學(xué)習(xí) 下篇文章:ARM64 常見匯編指令學(xué)習(xí) 13 – ARM 匯編 ORG 偽指令學(xué)習(xí) ARM匯編中的函數(shù)定義并不像高級語言那樣有特定的語法,但通??梢酝ㄟ^ 標簽(label) 和 子程序調(diào)用指令 (如BL,BLX) 來實現(xiàn)類似于函數(shù)的功能。 例如

    2024年02月14日
    瀏覽(63)
  • [ARM 匯編]高級部分—性能優(yōu)化與調(diào)試—3.4.3 使用模擬器進行調(diào)試與測試

    [ARM 匯編]高級部分—性能優(yōu)化與調(diào)試—3.4.3 使用模擬器進行調(diào)試與測試

    在ARM匯編程序開發(fā)過程中,使用模擬器(emulator)進行調(diào)試和測試是一種非常有效的方法。模擬器可以在不同的處理器上測試代碼,幫助我們發(fā)現(xiàn)潛在的問題,并提供豐富的調(diào)試功能。本節(jié)將介紹如何使用QEMU(一個流行的開源模擬器)進行ARM匯編程序的調(diào)試和測試。 安裝QE

    2024年02月10日
    瀏覽(26)
  • 【ARM系列】ARM常用匯編指令

    在調(diào)試芯片啟動代碼或者分析ARM core運行流程的過程中,嘗嘗需要對照軟件代碼的反匯編文件進行分析,因此有必要掌握一些常用的arm匯編指令。 指令格式:MOV{條件}{S} 目的寄存器,源操作數(shù) 指令含義:將源操作數(shù)賦值給目的寄存器。源操作數(shù)可以是寄存器,立即數(shù)或帶移位

    2024年02月04日
    瀏覽(24)
  • 【ARM64 常見匯編指令學(xué)習(xí) 13 -- ARM 匯編 ORG 偽指令學(xué)習(xí)】

    【ARM64 常見匯編指令學(xué)習(xí) 13 -- ARM 匯編 ORG 偽指令學(xué)習(xí)】

    上篇文章:ARM64 常見匯編指令學(xué)習(xí) 12 – ARM 匯編函數(shù) 的學(xué)習(xí) 下篇文章:ARM64 常見匯編指令學(xué)習(xí) 14 – ARM 匯編 .balign,.balignw,.balign 偽指令學(xué)習(xí) 在ARM匯編中,\\\" org \\\"是一個匯編器偽指令,用于設(shè)置下一條指令的裝入地址。\\\" org \\\"后面跟著的是一個表達式,這個表達式的值就是下一條

    2024年02月14日
    瀏覽(23)
  • ARM64 常見匯編指令學(xué)習(xí) 11 -- ARM 匯編宏 .macro 的學(xué)習(xí)

    下篇文章:ARM64 常見匯編指令學(xué)習(xí) 12 – ARM 匯編函數(shù) 的學(xué)習(xí) 上篇文章:ARM64 常見匯編指令學(xué)習(xí) 10 – 無符號位域提取指令 BFXIL 在 ARM 匯編中,“ .macro ” 是用來定義一個宏的指令。宏可以看作是一個可以在匯編程序中重用的代碼段。當(dāng)調(diào)用宏時,匯編器會將宏的內(nèi)容插入到調(diào)

    2024年02月14日
    瀏覽(23)
  • 嵌入式:ARM內(nèi)嵌匯編及C和ARM匯編相互調(diào)用

    在C程序中嵌入?yún)R編程序可以實現(xiàn)一些高級語言沒有的功能,并可以提高執(zhí)行效率。armcc和armcpp內(nèi)嵌匯編器支持完整的ARM指令集;tcc和tcpp用于Thumb指集。但是內(nèi)嵌匯編器并不支持諸如直接修改PC實現(xiàn)跳轉(zhuǎn)的底層功能。 內(nèi)嵌的匯編指令包括大部分的ARM指令和Thumb指令,但是不能直

    2024年02月02日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包