标题: 在 STM32 上用汇编程序写流水灯程序 [打印本页]

作者: 385685698    时间: 2015-9-13 00:29
标题: 在 STM32 上用汇编程序写流水灯程序
我想要在STM3251RC 上用汇编来写 流水灯,我写了以下的代码。 但是, 不知道怎么可以让她来回在LED 灯排(10个 LED) 上跑动


这是我写的一些代码:

  1. AREA mycode, CODE, READONLY
  2. EXPORT __main


  3. PERIPH_BASE_ONE EQU 0x40000000
  4. Delay PROC
  5. push {r1}
  6. ldr r1, =0x60000 ;initial value for loop counter
  7. again NOP ;execute two no-operation instructions
  8. NOP
  9. subs r1, #1
  10. bne again
  11. pop {r1}
  12. bx lr
  13. ENDP

  14. pb4_initPROC
  15. LDRr0, =PERIPH_BASE_ONE
  16. ADD r0, #0x20000 ;AHBPERIPH_BASE
  17. ADD r0, #0x3800;RCC_BASE
  18. LDRr1, [r0,#0x1C] ;RCC->AHBENR
  19. ORR r1,#2
  20. STRr1, [r0,#0x1C]


  21. LDRr0, =0x40000000 ;PERIPH_BASE
  22. ADD r0, #0x20000 ;AHBPERIPH_BASE
  23. ADD r0, #0x0400;GPIOB_BASE
  24. ;0xF00000FF
  25. LDR r1, [r0,#0]
  26. ;AND r1, #0xFFFFFCFF ;GPIOB->MODER &= ~(0x00000300)
  27. ORRr1, #0x00000100;GPIOB->MODER |= (0x00000100)
  28. STRr1, [r0,#0]

  29. LDRH r1, [r0,#4];GPIOB->OTYPER
  30. ANDr1,#0xFFFFFFDF
  31. STRH r1, [r0,#4]

  32. LDR r1, [r0,#8];GPIOB->OSPEEDR
  33. ;ANDr1,#0xFFFFFCFF
  34. ORR r1, #0x00000100
  35. STR r1, [r0,#8]

  36. LDR r1, [r0,#0x0C];GPIOB->PUPDR
  37. ;ANDr1,#0xFFFFFCFF
  38. STR r1, [r0,#0x0C]

  39. bxlr
  40. ENDP

  41. __mainPROC
  42. BLpb4_init

  43. LDRr0, =0x40000000 ;PERIPH_BASE
  44. ADD r0, #0x20000 ;AHBPERIPH_BASE
  45. ADD r0, #0x0400;GPIOB_BASE
  46. loop
  47. LDR r1, =0x10
  48. STRH r1, [r0,#0x18]
  49. BL Delay

  50. STRH r1,[r0,#0x1A]
  51. BL Delay
  52. Bloop

  53. ENDP
  54. END
复制代码



作者: yx9849    时间: 2015-9-13 09:10
为什么不用C,用C反编译后,可以对比
作者: 385685698    时间: 2015-9-13 10:56
已经用C语言 写过了但是不知道汇编要怎么写, 那位大神能帮帮忙啊?

作者: aaaaaaaaaa    时间: 2015-9-13 11:49
给他来个调用c语言函数
作者: 385685698    时间: 2015-9-13 15:22
怎么写汇编啊?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1