mov、movc、movx
movx a,@ri
movx @ri,a
movx a,@dptr
movx @dptr, a
movc a,@a+dptr
push、pop
進出棧,棧是filo(first in last out),先進後出
也就是把暫存器裡的資料臨時儲存一下,相當與乙個倉庫。
需要注意,使用命令時,確認棧的位置,保證不溢位、不覆蓋變數。
xch、xchd
xch 交換雙方的全部 8 位數。
xchd 交換雙方的低 4 位數。
inc、dec、mul、div
inc a 相當於 add a,1
dec a 相當於 sub a,1
優點 速度比sub或add指令快,占用空間小
這條指令執行結果影響af、of、pf、sf、zf標誌位,但不影響cf進製標誌位。
mul 累加器acc*暫存器b,儲存在acc
div 累加器acc/暫存器b,儲存在acc
在c庫里還有16位乘除的方法
extrn code (?c?imul) ;公式r4r5*r6r7,儲存在r6r7,調庫16位元組
extrn code (?c?uidiv) ;無符號,公式r4r5/r6r7,商儲存在r6r7,餘數在r4r5
extrn code (?c?sidiv) ;有符號,公式r4r5/r6r7,商儲存在r6r7,餘數在r4r5
lcall ?c?imul ;跳轉3位元組
add、addc、subb
add a, r0 相當於a=a+r0
addc a, r0 相當於a=a+r0+cy
subb a, r0 相當於a=a-r0-cy,如果a小於r0,則cy置位
anl、orl、xrl
與、或、異或
rl、rlc、rr、rrc
rl左移,rr右移,c帶進/借位
swap
高四位和低四位交換
sjmp、ajmp、ljmp
無條件轉移
sjmp -126—+129範圍內轉移
ajmp 2k範圍內轉移
ljmp 64k範圍內轉移
ret、reti
reti 是中斷返回指令
ret 是子程式返回指令
acall、lcall
轉移到子程式,子程式執行後配合ret、reti返回
cjne、djnz、jnz、jz
cjne 比較兩值,不相等轉移
djnz 減 1,不為 0 則轉移
jnz jump if not zero 累加器為 1 則轉移
jz jump if zero 累加器為 0 則轉移
jc、jnc、jb、jnb、jbc
jc jump if cy (有進製、即cy=1,則跳轉)
jnc jump if not cy (有進製、即cy=0,則跳轉)
jbc jump if bit and clear
jb jump if bit (為1則跳轉)
jnb jump if not bit (為0於則跳轉)
HC89S003F4開發板 1環境搭建
芯聖電子做活動,乙個hc89s003f4開發板只用一塊錢,買過來玩玩。作為增強型的51微控制器,那得要安裝個keil c51先。開啟hc driver 3.0.1.0 exe,一路確定安裝 實際安裝的是stlink和ch431驅動 其實資料裡安裝流程都有 1 開啟資料報裡工程exampleproje...
HC89S003F4開發板 8c轉義成彙編工程
define allocate extern include hc89s003f4.h void delay ms unsigned int fui i void main 選中main.c,然後然後右擊選擇options for file,在跳出的選項框中將generate assembler s...
STM32F4開發板學習筆記一
stm32f4是由st 意法半導體 開發的一種高效能微控制器,之前學習過51微控制器的相關知識,現在看stm32f4的晶元,不得不說它強大的外設功能,還有就是韌體庫。對於stm32這樣龐大的晶元,內部暫存器實在太多,如果操作的外設比較多,那麼就需要花很多時間查詢底層暫存器內容,而且即使程式寫好,如果...