80c51微控制器指令大全

2021-10-12 04:48:14 字數 4456 閱讀 6389

助記符

運算元指令說明

位元組數週期數

(資料傳遞類指令)

mova,rn

暫存器傳送到累加器11

mova,direct

直接位址傳送到累加器21

mova,@ri

累加器傳送到外部ram(8 位址)11

mova,#data

立即數傳送到累加器21

movrn,a

累加器傳送到暫存器11

movrn,direct

直接位址傳送到暫存器22

movrn,#data

累加器傳送到直接位址21

movdirect,rn

暫存器傳送到直接位址21

movdirect,direct

直接位址傳送到直接位址32

movdirect,a

累加器傳送到直接位址21

movdirect,@ri

間接ram 傳送到直接位址22

movdirect,#data

立即數傳送到直接位址32

mov@ri,a

直接位址傳送到直接位址12

mov@ri,direct

直接位址傳送到間接ram21

mov@ri,#data

立即數傳送到間接ram22

movdptr,#data16

16 位常數載入到資料指標31

movc

a,@a+dptr

**位元組傳送到累加器12

movc

a,@a+pc

**位元組傳送到累加器12

movx

a,@ri

外部ram(8 位址)傳送到累加器12

movx

a,@dptr

外部ram(16 位址)傳送到累加器12

movx

@ri,a

累加器傳送到外部ram(8 位址)12

movx

@dptr,a

累加器傳送到外部ram(16 位址)12

push

direct

直接位址壓入堆疊22

popdirect

直接位址彈出堆疊22

xcha,rn

暫存器和累加器交換11

xcha, direct

直接位址和累加器交換21

xcha, @ri

間接ram 和累加器交換11

xchd

a, @ri

間接ram 和累加器交換低4 位位元組11

(算術運算類指令)

inca

累加器加111

incrn

暫存器加111

incdirect

直接位址加121

inc@ri

間接ram 加111

incdptr

資料指標加112

deca

累加器減111

decrn

暫存器減111

decdirect

直接位址減122

dec@ri

間接ram 減111

mulab

累加器和b 暫存器相乘14

divab

累加器除以b 暫存器14

daa累加器十進位制調整11

adda,rn

暫存器與累加器求和11

adda,direct

直接位址與累加器求和21

adda,@ri

間接ram 與累加器求和11

adda,#data

立即數與累加器求和21

addc

a,rn

暫存器與累加器求和(帶進製)11

addc

a,direct

直接位址與累加器求和(帶進製)21

addc

a,@ri

間接ram 與累加器求和(帶進製)11

addc

a,#data

立即數與累加器求和(帶進製)21

subb

a,rn

累加器減去暫存器(帶借位)11

subb

a,direct

累加器減去直接位址(帶借位)21

subb

a,@ri

累加器減去間接ram(帶借位)11

subb

a,#data

累加器減去立即數(帶借位)21

(邏輯運算類指令)

anla,rn

暫存器「與」到累加器11

anla,direct

直接位址「與」到累加器21

anla,@ri

間接ram「與」到累加器11

anla,#data

立即數「與」到累加器21

anldirect,a

累加器「與」到直接位址21

anldirect, #data

立即數「與」到直接位址32

orla,rn

暫存器「或」到累加器12

orla,direct

直接位址「或」到累加器21

orla,@ri

間接ram「或」到累加器11

orla,#data

立即數「或」到累加器21

orldirect,a

累加器「或」到直接位址21

orldirect, #data

立即數「或」到直接位址31

xrla,rn

暫存器「異或」到累加器12

xrla,direct

直接位址「異或」到累加器21

xrla,@ri

間接ram「異或」到累加器11

xrla,#data

立即數「異或」到累加器21

xrldirect,a

累加器「異或」到直接位址21

xrldirect, #data

立即數「異或」到直接位址31

clra

累加器清零12

cpla

累加器求反11

rla累加器迴圈左移11

rlca

帶進製累加器迴圈左移11

rra累加器迴圈右移11

rrca

帶進製累加器迴圈右移11

swap

a累加器高、低4 位交換11

(控制轉移類指令)

jmp@a+dptr

相對dptr 的無條件間接轉移12

jzrel

累加器為0 則轉移22

jnzrel

累加器為1 則轉移22

cjne

a,direct,rel

比較直接位址和累加器,不相等轉移32

cjne

a,#data,rel

比較立即數和累加器,不相等轉移32

cjne

rn,#data,rel

比較暫存器和立即數,不相等轉移22

cjne

@ri,#data,rel

比較立即數和間接ram,不相等轉移32

djnz

rn,rel

暫存器減1,不為0 則轉移32

djnz

direct,rel

直接位址減1,不為0 則轉移32

nop空操作,用於短暫延時11

acall

add11

絕對呼叫子程式22

lcall

add16

長呼叫子程式32

ret從子程式返回12

reti

從中斷服務子程式返回12

ajmp

add11

無條件絕對轉移22

ljmp

add16

無條件長轉移32

sjmp

rel無條件相對轉移22

(布林指令)

clrc

清進製位11

clrbit

清直接定址位21

setb

c置位進製位11

setb

bit置位直接定址位21

cplc

取反進製位11

cplbit

取反直接定址位21

anlc,bit

直接定址位「與」到進製位22

anlc,/bit

直接定址位的反碼「與」到進製位22

orlc,bit

直接定址位「或」到進製位22

orlc,/bit

直接定址位的反碼「或」到進製位22

movc,bit

直接定址位傳送到進製位21

movbit, c

進製位位傳送到直接定址22

jcrel

如果進製位為1 則轉移22

jncrel

如果進製位為0 則轉移22

jbbit,rel

如果直接定址位為1 則轉移32

jnbbit,rel

如果直接定址位為0 則轉移32

jbcbit,rel

直接定址位為1 則轉移並清除該位22

80C51微控制器介紹

80c51微控制器屬於mcs 51系列微控制器,由intel公司開發,其結構是8048的延伸,改進了8048的缺點。增加了如乘 mul 除 div 減 subb 比較 cmp 16位資料指標 布林代數運算等指令,以及序列通訊能力和5個中斷源。採用40引腳雙列直插式dip dual in line p...

MCS 51系列和80C51系列微控制器是否相同

mcs是intel公司微控制器的系列符號。intel推出有mcs 48 mcs 51 mcs 96系列微控制器。mcs 51系列單既包括三個基本型80c31 8051 8751,以及對應的低功耗型號80c31 8051 87c51,因而mcs 51特指intel的這幾種型號。在計算機領域,系列機是指...

80C51微控制器模仿例項100 1 LED閃爍

為了儲存住假期裡學習過的微控制器,盡量做到乙個星期模仿乙個例項,也是進一步學習proteus。今天編寫的是led間隔閃光,時間為1s,軟體proteus。created 週六 11月 25 2017 processor 80c52 compiler keil for 8051 author chen...