例1,用組合語言完成1—10的加法
stack_top equ 0x00002000 ; sp初始值,常數
area reset,code
dcd stack_top ; 棧頂(msp的)
dcd start ; 復位向量
entry ; 指示程式從這裡開始執行
start
; 初始化暫存器
mov r0, #10 ; 載入迴圈變數的初值
mov r1, #0 ; 初始化運算結果的值
; 計算 10+9+8+...+1
loop
add r1, r0 ; r1 += r0
subs r0, #1 ; r0自減,並且根據結果更新標誌(有」s」字尾)
bne loop ; if (r0!=0) goto loop; b+標誌位ne
; 現在,運算結果在r1中
deadloop
b deadloop ; 工作完成後,進入無窮迴圈
end
STM32彙編程式設計
1.實驗環境 1.野火stm32指南者 stm32f103vet6 2.keil5 2.環境搭建新建工程 新增原始檔 s 連線開發板,開始debug 生成的hex檔案 原始碼led0 equ 0x40010c00 rcc apb2enr equ 0x40021018 gpioa crh equ 0x...
簡單的匯程式設計序分析
section data section text globl start start movl 1,eax movl 4,ebx int 0x80 將這段程式儲存為hello.s,然後用彙編器as把匯程式設計序中的助記符翻譯成機器指令 彙編指令與機器指令是對應的 生成目標檔案hello.o。然後用...
最簡單的AT T匯程式設計序
把這個程式儲存成檔案start.s 匯程式設計序通常以.s作為檔名字尾 用彙編器 assembler as把匯程式設計序中的助記符翻譯成機器指令,生成目標檔案start.o as start.s o start.o 然後用鏈結器 linker,或link editor ld把目標檔案start.o鏈...