文章目錄
前言資料傳送指令
movmovc
movx
xchxchd
push
pop運算子指令
addaddc
subb
muldiv
dainc
dec邏輯運算指令
anlorl
xrlclr
cplrl
rrrlc
rrcswap
控制轉移類指令
acall
lcall
retreti
sjmp
ljmp
ajmp
cjne
djnz
jzjnz
jcjnc
jbjnb
jbcnop
前言89c51/s51系統指令可分為5大類:
28條 資料傳送指令
24條 算術運算指令
25條 邏輯運算及位移指令
17條 控制轉移指令
17條 位操作指令或布林操作
此文章總結各種指令是方便學習微控制器的同學查詢指令
此文章分別討論5大類系統指令的助記符、含義、用法等屬性。
資料傳送指令
mov助記符:mov
英文全稱:move
含義:對內部資料暫存器(內部ram)和特殊功能暫存器(sfr)進行資料傳送
movc
助記符:movc
英文全稱:move code
含義:讀取程式暫存器(rom,包含內部rom和外部rom)的資料**的資料進行傳送
movx
助記符:movx
英文全稱:move extenal ram
含義:對外部資料暫存器(外部ram)的資料傳送
xch助記符:xch
英文全稱:exchange
含義:位元組交換
xchd
助記符:xchd
英文全稱:exchange low-order digit
含義:低半位元組交換
push
助記符:push
英文全稱:push onto stack
含義:入棧
pop助記符:pop
英文全稱:pop from stack
含義:出棧
運算子指令
add助記符:add
英文全稱:addition
含義:加法
addc
助記符:addc
英文全稱:add with carry
含義:帶進製加法
subb
助記符:subb
英文全稱:sub tract with borrow
含義:帶借位的減法
mul助記符:mul
英文全稱:multiplication
含義:乘法
div助記符:div
英文全稱:division
含義:除法
da助記符:da
英文全稱:decimal adjust
含義:十進位制調整
inc助記符inc
英文全稱:increment
含義:加一
dec助記符
英文全稱:decrement
含義:減一
邏輯運算指令
anl助記符:anl
英文全稱:and logic
含義:邏輯與
作用:可以使某些位置0(清零)
orl助記符:orl
英文全稱:or logic
含義:邏輯或
作用:可以使某些位置1
xrl助記符:xrl
英文全稱:exclusive - or logic
含義:邏輯異或
作用:可以使某些位置取反
clr助記符:clr
英文全稱:clear
含義:清零
cpl助記符:cpl
英文全稱:complement
含義:取反
rl助記符:rl
英文全稱:rotate left
含義:迴圈左移
rr助記符:rr
英文全稱:rotate right
含義:迴圈右移
rlc助記符:rlc
英文全稱:rotate left through the carry flag
含義:帶進製的迴圈左移
rrc助記符:rrc
英文全稱:rotate right through the carry flag
含義:帶進製的迴圈右移
swap
助記符:swap
英文全稱:swap
含義:乙個位元組內低四位與高四位交換
控制轉移類指令
acall
助記符:acall
英文全稱:absolute subroutine call
含義:子程式絕對呼叫
lcall
助記符:lcall
英文全稱:long subroutine call
含義:子程式長呼叫
ret助記符:ret
英文全稱:return from subroutine
含義:子程式返回
reti
助記符:reti
英文全稱:return from interruption
含義:中斷返回
sjmp
助記符:sjmp
英文全稱:short jump
含義:短轉移
ljmp
助記符:ljmp
英文全稱:long jump
含義:長轉移
ajmp
助記符:ajmp
英文全稱:absolute jump
含義:絕對轉移
cjne
助記符:cjne
英文全稱:compare jump of not equal
含義:比較不相等則轉移
djnz
助記符:djnz
英文全稱:decrement jump if not zero
含義:減一後不為0則轉移
jz助記符:jz
英文全稱:jump if zero
含義:結果為0,則轉移
jnz助記符:jnz
英文全稱:jump if not zero
含義:結果不為0,則轉移
jc助記符:jc
英文全稱:jump if the carry flag is set
含義:有進製,則轉移
jnc助記符:jnc
英文全稱:jump if not carry
含義:無進製,則轉移
jb助記符:jb
英文全稱:jump if the bit is set
含義:位為一,則轉移
jnb助記符:jnb
英文全稱:jump if the bit is not set
含義:位為零,則轉移
jbc助記符:jbc
英文全稱:jump if the bit is set and clear the bit
含義:位為一,則轉移,並清楚該位
nop助記符:nop
英文全稱:no operation
含義:空操作
51微控制器之邏輯運算指令anl、orl、xrl等
51微控制器之資料轉移指令mov、movx、movc等
51微控制器之位操作指令setb、cpl等
51微控制器之控制轉移指令sjmp、ljmp等
51微控制器之算術運算指令addc、subb等
由本人水平有限,文章難免有錯誤,望告知
jnz和djnz 第3章微控制器指令系統 練習
第3章指令系統 一 簡答題 1.at89c51共有幾種定址方式?舉例說明每種定址方式的特點。例如 mov a,56h 單位元組立即數56h送入a mov dptr,data16 雙位元組數data16送入dptr 例如 mov a,40h 設 40h 3ah,則執行該條指令即將40h單元中的資料3a...
51微控制器之EEPROM IIC
由於 51 微控制器沒有硬體 iic 介面,即使有硬體接 們通常還是採用軟體模擬 i2c。主要原因是硬體 iic 設計的比較複雜,而且穩定性不怎麼好,程式移植比較麻煩,用軟體模擬 iic,最大的好處就是移植方便,同乙個 相容所有微控制器,任何乙個微控制器只要有 io 口 不需要特定 io 都可以很快...
51微控制器auxr暫存器 51微控制器之printf
typedef char va list 我先在知道想要在51微控制器使用printf有兩種辦法,一種是用庫自己的printf,一種是寫自己的printf,不過都很簡單,我先介紹一下庫的printf吧。1 首先新增標頭檔案 include 2 配置一下串列埠,但是在串列埠初始化的時候ti必須為1,否...