您的位置:首页 > 其它

Assembly之example

2015-06-22 22:54 176 查看
  Here is a simple example by assembly language. It is based on openMSP430. Very important is to understand "interrupt vectors".

.global main

.set   P1OUT, 0x0021
.set   WDTCTL, 0x0120

main:

/* ------------ Disable Watchdog ---------------- */
MOV #0x5A80, &WDTCTL

/* ------------ Toggle P1 ------------------------*/
loop:
MOV.B #0x00, &P1OUT
MOV.B #0xff, &P1OUT

jmp loop

/* ----------------------------   INTERRUPT VECTORS  --------------- */
.section .vectors, "a"
.word loop        ; Interrupt  0 (lowest priority)    <unused>
.word loop        ; Interrupt  1                      <unused>
.word loop        ; Interrupt  2                      <unused>
.word loop        ; Interrupt  3                      <unused>
.word loop        ; Interrupt  4                      <unused>
.word loop        ; Interrupt  5                      <unused>
.word loop        ; Interrupt  6                      <unused>
.word loop        ; Interrupt  7                      <unused>
.word loop        ; Interrupt  8                      <unused>
.word loop        ; Interrupt  9                      <unused>
.word main        ; Interrupt 10                      Watchdog timer
.word loop        ; Interrupt 11                      <unused>
.word loop        ; Interrupt 12                      <unused>
.word loop        ; Interrupt 13                      <unused>
.word loop        ; Interrupt 14                      NMI
.word main          ; Interrupt 15 (highest priority)   RESET
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: