單片機匯編指令入門學習和查看
一般匯編器偽指令能幫助用戶完成以下事情:
·將代碼和數據匯編到規定的段中
·在存儲器中用未初始化的變量保留空間
·控制匯編后列表文件的格式
·初始化存儲器
·匯編條件塊
·定義全局變量
·規定匯編器可以從中獲得宏的庫
·產生符號化的調試信息
模塊控制偽指令:
NAME,PROGRAM—程序模塊的開始
MODULE,LIBRARY—庫模塊的開始
ENDMOD—當前匯編模塊的結束
END—匯編文件的結束
符號控制偽指令:
EXTERN(IMPORT)-引入外部符號
PUBLIC(EXPORT)-輸出符號
段控制偽指令:
ASEG—絕對段的開始
RSEG—相對段的開始
STACK—定義堆棧 段
COMMON—定義公共段
ORG—定位指針
ALIGN—校準PC
EVEN—PC對準偶地址
數值分配偽指令:
SET(ASSIGN,VAR)—賦臨時值
EQU(=)—賦永久值,當前模塊內有效
DEFINE—定義文件內有效的值
數據定義與分配偽指令::
DB—定義字節(8bit)
DW—定義字(16bit)
DL—定義32bit整數
DF—定義32bit float
DS n—定義n個連續的字節
DC8 DB 生成(8位)常量/字符串
DC16 DW 生成(16位)常量
DC32 DL 生成32位常量
DC64 生成32位常量
DF32 DF 生成32位浮點常量
DF64 生成64位浮點常量
.double 生成48位TI格式的 浮點常量
.float 生成32位TI格式的 浮點常量
DS8 DS 分配8位整數空間
DS16 DS 2 分配16位整數空間
DS32 DS 4 分配32位整數空間
DS64 DS 8 分配64位整數空間
MSP430匯編指令集
http://wenku.baidu.com/view/62e1336bb84ae45c3b358cfe.html
http://wenku.baidu.com/view/6a27141ca300a6c30c229f4a.html?from=related&hasrec=1
MCS-51指令詳解
http://www.51c51.com/web/zhilin.htm
;說明:為了使MCS-51單片機初學者快速入門,迅速掌握單片機指令含意、操作碼、操作數及;對應地址,匯編語言怎樣編寫等,現按指令操作碼按順序編寫,可對照本公司編寫的<>一書第145頁指令手冊查看,更詳細資料請閱 第四章 MCS-51指令系統" 及第124頁指令系統摘要。并在仿真器上裝入;JJM.HEX文件,并對有關單元置數,用單步(F8)驗證其正確性及其運行結果。
ORG 0000H
NOP ;空操作指令
AJMP L0003 ;絕對轉移指令
L0003: LJMP L0006 ;長調用指令
L0006: RR A ;累加器A內容右移 (先置A為88H)
INC A ; 累加器A 內容加1
INC 01H ;直接地址(字節01H)內容加1
INC @R0 ; R0的內容 (為地址) 的內容即間接RAM加1
;(設R0=02H,02H=03H,單步執行后02H=04H)
INC @R1 ; R1的內容 (為地址) 的內容即間接RAM加1
;(設R1=02H,02H=03H,單步執行后02H=04H)
INC R0 ; R0的內容加1 (設R0為00H,單步執行后查R0內容為多少)
INC R1 ; R1的內容加1(設R1為01H,單步執行后查R1內容為多少)
INC R2 ; R2的內容加1 (設R2為02H,單步執行后查R2內容為多少)
INC R3 ; R3的內容加1(設R3為03H,單步執行后查R3內容為多少)
INC R4 ; R4的內容加1(設R4為04H,單步執行后查R4內容為多少)
INC R5 ; R5的內容加1(設R5為05H,單步執行后查R5內容為多少)
INC R6 ; R6的內容加1(設R6為06H,單步執行后查R6內容為多少)
INC R7 ; R7的內容加1(設R7為07H,單步執行后查R7內容為多少)
JBC 20H,L0017; 如果位(如20H,即24H的0位)為1,則轉移并清0該位
L0017: ACALL S0019 ;絕對調用
S0019: LCALL S001C ;長調用
S001C: RRC A ;累加器A的內容帶進位位右移(設A=11H,C=0
;單步執行后查A和C內容為多少)
DEC A ;A的內容減1
DEC 01H ;直接地址(01H)內容減1
DEC @R0 ;R0間址減1,即R0的內容為地址,該地址的內容減1
DEC @R1 ; R1間址減1
DEC R0 ; R0內容減1
DEC R1 ; R1內容減1
DEC R2 ; R2內容減1
DEC R3 ; R3內容減1
DEC R4 ; R4內容減1
DEC R5 ; R5內容減1
DEC R6 ; R6內容減1
DEC R7 ; R7內容減1
JB 20H,L002D;如果位(20H,即24H的0位)為1則轉移
L002D: AJMP L0017 ;絕對轉移
RET ;子程序返回指令
RL A ;A左移
ADD A,#01H ;A的內容與立即數(01H)相加
ADD A,01H ; A的內容與直接地址 (01H內容)相加
ADD A,@R0 ; A的內容與寄存器R0的間址內容相加
ADD A,@R1 ; A的內容與寄存器R1的間址內容相加
ADD A,R0 ; A的內容與寄存器R0的內容相加
ADD A,R1 ; A的內容與寄存器R1的內容相加
ADD A,R2 ; A的內容與寄存器R2的內容相加
ADD A,R3 ; A的內容與寄存器R3的內容相加
ADD A,R4 ; A的內容與寄存器R4的內容相加
ADD A,R5 ; A的內容與寄存器R5的內容相加
ADD A,R6 ; A的內容與寄存器R6的內容相加
ADD A,R7 ; A的內容與寄存器R7的內容相加
JNB 30H,L0041 ;直接位(30H)為0相對轉移
L0041: ACALL S0100 ;絕對調用
RETI ;中斷返回指令
RLC A ;帶進位位左移
ADDC A,#02H ;A帶進位位與立即數(#02H)相加
ADDC A,02H ; A帶進位位與直接地扯(02H內容)相加
ADDC A,@R0 ; A帶進位位與R0間扯內容相加
ADDC A,@R1 ; A帶進位位與R1間扯內容相加
ADDC A,R0 ; A帶進位位與R0內容相加
ADDC A,R1 ; A帶進位位與R1內容相加
ADDC A,R2 ; A帶進位位與R2內容相加
ADDC A,R3 ; A帶進位位與R3內容相加
ADDC A,R4 ; A帶進位位與R4內容相加
ADDC A,R5 ; A帶進位位與R5內容相加
ADDC A,R6 ; A帶進位位與R6內容相加
ADDC A,R7 ; A帶進位位與R7內容相加
JC L0095 ;進位為1轉移
NOP
AJMP L0017 ;絕對轉移
ORL 02H,A ;直接地址內容與A或
ORL 02H,#02H ; 直接地址內容與立即數或
ORL A,#44H ;A與立即數或
ORL A,02H ; A與直接地址內容或
ORL A,@R0 ; A與R0間址內容或
ORL A,@R1 ; A與R1間址內容或
ORL A,R0 ; A與R0內容或
ORL A,R1 ; A與R1內容或
ORL A,R2 ; A與R2內容或
ORL A,R3 ; A與R3內容或
關鍵詞:
單片機匯編指令入門學
評論