新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)匯編指令入門學(xué)習(xí)和查看

單片機(jī)匯編指令入門學(xué)習(xí)和查看

作者: 時間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
在進(jìn)行匯編程序設(shè)計時,MSP430的指令系統(tǒng)是程序的主體,但為了方便程序編制,還定義了一些指令,這些指令不參與和影響程序的執(zhí)行,也不在計算機(jī)中運行,這類指令稱為偽指令。
一般匯編器偽指令能幫助用戶完成以下事情:
·將代碼和數(shù)據(jù)匯編到規(guī)定的段中
·在存儲器中用未初始化的變量保留空間
·控制匯編后列表文件的格式
·初始化存儲器
·匯編條件塊
·定義全局變量
·規(guī)定匯編器可以從中獲得宏的庫
·產(chǎn)生符號化的調(diào)試信息
模塊控制偽指令:
NAME,PROGRAM—程序模塊的開始
MODULE,LIBRARY—庫模塊的開始
ENDMOD—當(dāng)前匯編模塊的結(jié)束
END—匯編文件的結(jié)束
符號控制偽指令:
EXTERN(IMPORT)-引入外部符號
PUBLIC(EXPORT)-輸出符號
段控制偽指令:
ASEG—絕對段的開始
RSEG—相對段的開始
STACK—定義堆棧 段
COMMON—定義公共段
ORG—定位指針
ALIGN—校準(zhǔn)PC
EVEN—PC對準(zhǔn)偶地址
數(shù)值分配偽指令:
SET(ASSIGN,VAR)—賦臨時值
EQU(=)—賦永久值,當(dāng)前模塊內(nèi)有效
DEFINE—定義文件內(nèi)有效的值
數(shù)據(jù)定義與分配偽指令::
DB—定義字節(jié)(8bit)
DW—定義字(16bit)
DL—定義32bit整數(shù)
DF—定義32bit float
DS n—定義n個連續(xù)的字節(jié)
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位整數(shù)空間
DS16 DS 2 分配16位整數(shù)空間
DS32 DS 4 分配32位整數(shù)空間
DS64 DS 8 分配64位整數(shù)空間
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單片機(jī)初學(xué)者快速入門,迅速掌握單片機(jī)指令含意、操作碼、操作數(shù)及;對應(yīng)地址,匯編語言怎樣編寫等,現(xiàn)按指令操作碼按順序編寫,可對照本公司編寫的<>一書第145頁指令手冊查看,更詳細(xì)資料請閱 第四章 MCS-51指令系統(tǒng)" 及第124頁指令系統(tǒng)摘要。并在仿真器上裝入;JJM.HEX文件,并對有關(guān)單元置數(shù),用單步(F8)驗證其正確性及其運行結(jié)果。
ORG 0000H
NOP ;空操作指令
AJMP L0003 ;絕對轉(zhuǎn)移指令
L0003: LJMP L0006 ;長調(diào)用指令
L0006: RR A ;累加器A內(nèi)容右移 (先置A為88H)
INC A ; 累加器A 內(nèi)容加1
INC 01H ;直接地址(字節(jié)01H)內(nèi)容加1
INC @R0 ; R0的內(nèi)容 (為地址) 的內(nèi)容即間接RAM加1
;(設(shè)R0=02H,02H=03H,單步執(zhí)行后02H=04H)
INC @R1 ; R1的內(nèi)容 (為地址) 的內(nèi)容即間接RAM加1
;(設(shè)R1=02H,02H=03H,單步執(zhí)行后02H=04H)
INC R0 ; R0的內(nèi)容加1 (設(shè)R0為00H,單步執(zhí)行后查R0內(nèi)容為多少)
INC R1 ; R1的內(nèi)容加1(設(shè)R1為01H,單步執(zhí)行后查R1內(nèi)容為多少)
INC R2 ; R2的內(nèi)容加1 (設(shè)R2為02H,單步執(zhí)行后查R2內(nèi)容為多少)
INC R3 ; R3的內(nèi)容加1(設(shè)R3為03H,單步執(zhí)行后查R3內(nèi)容為多少)
INC R4 ; R4的內(nèi)容加1(設(shè)R4為04H,單步執(zhí)行后查R4內(nèi)容為多少)
INC R5 ; R5的內(nèi)容加1(設(shè)R5為05H,單步執(zhí)行后查R5內(nèi)容為多少)
INC R6 ; R6的內(nèi)容加1(設(shè)R6為06H,單步執(zhí)行后查R6內(nèi)容為多少)
INC R7 ; R7的內(nèi)容加1(設(shè)R7為07H,單步執(zhí)行后查R7內(nèi)容為多少)
JBC 20H,L0017; 如果位(如20H,即24H的0位)為1,則轉(zhuǎn)移并清0該位
L0017: ACALL S0019 ;絕對調(diào)用
S0019: LCALL S001C ;長調(diào)用
S001C: RRC A ;累加器A的內(nèi)容帶進(jìn)位位右移(設(shè)A=11H,C=0
;單步執(zhí)行后查A和C內(nèi)容為多少)
DEC A ;A的內(nèi)容減1
DEC 01H ;直接地址(01H)內(nèi)容減1
DEC @R0 ;R0間址減1,即R0的內(nèi)容為地址,該地址的內(nèi)容減1
DEC @R1 ; R1間址減1
DEC R0 ; R0內(nèi)容減1
DEC R1 ; R1內(nèi)容減1
DEC R2 ; R2內(nèi)容減1
DEC R3 ; R3內(nèi)容減1
DEC R4 ; R4內(nèi)容減1
DEC R5 ; R5內(nèi)容減1
DEC R6 ; R6內(nèi)容減1
DEC R7 ; R7內(nèi)容減1
JB 20H,L002D;如果位(20H,即24H的0位)為1則轉(zhuǎn)移
L002D: AJMP L0017 ;絕對轉(zhuǎn)移
RET ;子程序返回指令
RL A ;A左移
ADD A,#01H ;A的內(nèi)容與立即數(shù)(01H)相加
ADD A,01H ; A的內(nèi)容與直接地址 (01H內(nèi)容)相加
ADD A,@R0 ; A的內(nèi)容與寄存器R0的間址內(nèi)容相加
ADD A,@R1 ; A的內(nèi)容與寄存器R1的間址內(nèi)容相加
ADD A,R0 ; A的內(nèi)容與寄存器R0的內(nèi)容相加
ADD A,R1 ; A的內(nèi)容與寄存器R1的內(nèi)容相加
ADD A,R2 ; A的內(nèi)容與寄存器R2的內(nèi)容相加
ADD A,R3 ; A的內(nèi)容與寄存器R3的內(nèi)容相加
ADD A,R4 ; A的內(nèi)容與寄存器R4的內(nèi)容相加
ADD A,R5 ; A的內(nèi)容與寄存器R5的內(nèi)容相加
ADD A,R6 ; A的內(nèi)容與寄存器R6的內(nèi)容相加
ADD A,R7 ; A的內(nèi)容與寄存器R7的內(nèi)容相加
JNB 30H,L0041 ;直接位(30H)為0相對轉(zhuǎn)移
L0041: ACALL S0100 ;絕對調(diào)用
RETI ;中斷返回指令
RLC A ;帶進(jìn)位位左移
ADDC A,#02H ;A帶進(jìn)位位與立即數(shù)(#02H)相加
ADDC A,02H ; A帶進(jìn)位位與直接地扯(02H內(nèi)容)相加
ADDC A,@R0 ; A帶進(jìn)位位與R0間扯內(nèi)容相加
ADDC A,@R1 ; A帶進(jìn)位位與R1間扯內(nèi)容相加
ADDC A,R0 ; A帶進(jìn)位位與R0內(nèi)容相加
ADDC A,R1 ; A帶進(jìn)位位與R1內(nèi)容相加
ADDC A,R2 ; A帶進(jìn)位位與R2內(nèi)容相加
ADDC A,R3 ; A帶進(jìn)位位與R3內(nèi)容相加
ADDC A,R4 ; A帶進(jìn)位位與R4內(nèi)容相加
ADDC A,R5 ; A帶進(jìn)位位與R5內(nèi)容相加
ADDC A,R6 ; A帶進(jìn)位位與R6內(nèi)容相加
ADDC A,R7 ; A帶進(jìn)位位與R7內(nèi)容相加
JC L0095 ;進(jìn)位為1轉(zhuǎn)移
NOP
AJMP L0017 ;絕對轉(zhuǎn)移
ORL 02H,A ;直接地址內(nèi)容與A或
ORL 02H,#02H ; 直接地址內(nèi)容與立即數(shù)或
ORL A,#44H ;A與立即數(shù)或
ORL A,02H ; A與直接地址內(nèi)容或
ORL A,@R0 ; A與R0間址內(nèi)容或
ORL A,@R1 ; A與R1間址內(nèi)容或
ORL A,R0 ; A與R0內(nèi)容或
ORL A,R1 ; A與R1內(nèi)容或
ORL A,R2 ; A與R2內(nèi)容或
ORL A,R3 ; A與R3內(nèi)容或
ORL A,R4 ; A與R4內(nèi)容或
上一頁 1 2 3 4 下一頁

評論


技術(shù)專區(qū)

關(guān)閉