首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言內嵌組語兩種寫法速查:asm 關鍵字與區塊語法

     編輯:關於C語言

方法一:逐行 asm 前綴

void reset_data(void) {
    asm mov r0, #0DFh
    asm do_resetdata:
    asm mov @r0, #00h
    asm djnz r0, do_resetdata
    return;
}
  • 每行指令前加 asm。
  • 標號需獨立一行並以冒號結尾。
  • 適用於極少量指令插入。

方法二:asm { ... } 區塊

void reset_data(void) {
    asm {
        mov r0, #0DFh
        do_resetdata:
        mov @r0, #00h
        djnz r0, do_resetdata
    }
    return;
}
  • asm 後接大括號包裹多行組語。
  • 標號、指令正常寫入,可讀性較佳。
  • 主流編譯器(MSVC, Keil, IAR)均支援。

注意事項

  • 暫存器命名、指令集依目標架構(x86, ARM, 8051...)而異,範例為 8051 風格。
  • 內嵌組語破壞可移植性,必要時才使用(極致優化、硬體存取、啟動代碼)。
  • C 變數存取需遵循編譯器特定語法(如 MSVC __asm mov eax, [var])。
  • 優化器可能重排/刪除內嵌組語,關鍵段落加 volatile 或關閉區域優化。

掌握兩種語法,按程式碼量級與可讀性需求選擇即可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved