一個簡單的循環(huán)燈實例
下圖中的8個發(fā)光二極管代表 8 個彩燈,讓我們看看是如何實現(xiàn)的
stat: mov a , #01h ; 高電平對應的發(fā)光二極管亮
loop: mov p1, a ; 從 p1 口輸出到發(fā)光二極管
mov r1, #10
del1: mov r2 , #200
del2: mov r3, #126
del3: djnz r3, del3
djnz r2, del2
djnz r1, del1
rl a
ljmp loop ; 左移一位 , 下一個發(fā)光二極管亮
end
匯編語言指令格式
[ 標號 ] : 操作碼 [ 目的操作數(shù) ] [ 源操作數(shù) ] ; [ 注釋 ]
↓ ↓ ↓ ↓ ↓
loop : movx a , @dptr ; 將外部 ram 單元內容送到 a
標號: 又稱為指令地址符號。對標號有如下規(guī)定:
一般由 1 ~ 8 個 ascii 字符組成,以字母開頭,其余字符可以是字母、數(shù)字和其他特定字符。
不能使用助記符、偽指令或者寄存器的符號名稱做標號。
與操作碼之間用冒號分開,帶方括號表示為可選項。
一個標號只能在程序中出現(xiàn)一次,不能重復出現(xiàn)。
操作碼 是由助記符表示的字符串,它規(guī)定了指令要完成的具體操作。
操作數(shù) 指令操作的對象 . 操作數(shù)分為目的操作數(shù)(上例累加器 a) 和源操作數(shù)(上例中的 @dptr). 目的操作數(shù)和源操作數(shù)的書寫順序不能顛倒 .
注 釋 對指令功能的說明,以便于閱讀,符號“;”后面的內容為注釋。
匯編指令及其注釋中常用的符號
rn ------選中當前的工作寄存器區(qū)中的寄存器r0~r7之一
@ ri------選中當前的工作寄存器組中的寄存器r0或r1,間接尋址前綴符號direct------直接地址,一個內部ram單元地址或sfr地址.
#data ------------8位或16位常數(shù),也稱立即數(shù). #為立即數(shù)前綴標志符號
addr11------------11位目的地址
addr16------------16位目的地址
rel ---------------8位地址偏移量,值在-128~+127范圍內
bit---------------位地址.sfr的位地址(可用符號或名稱表示)
/-----------------位操作前綴,表示該位內容求反
(×)------------表示以×為地址單元中內容
((×))--------表示以×為地址單元中內容為地址的單元中的