微控制器組合語言指令中條件轉移指令jbc與jc的區別

2021-04-22 10:03:09 字數 6875 閱讀 5346

1樓:墨汁諾

一、作用不同:

jbc指令判斷該位為1則轉移,同時將該位置0。

jc指令判斷有借位則轉移,也就是說兩數相減為負轉移。

二、含義不同:

jbc指令相當與jb和clr (位) 二條指命的組合,它可在轉移的同時清除被判位;

jc指令只能對cy進位位進行判斷為高後轉移,並不能清除它,二條指令都當被測位為高進時進行相對轉移。

三、位置不同:

jc是判斷c進位標誌是否為1,為1則跳轉到指定位置。

jbc是判斷可位定址區域內指定位是否為1,為1則跳轉到指定位置,並同時清除該位(置0)。

2樓:匿名使用者

jbc指令判斷該位為1則轉移,同時將該位置0

jc指令判斷有借位則轉移,也就是說兩數相減為負轉移。

3樓:亂七胡說八糟亂想

jbc指令相當與 jb 和 clr (位) 二條指命的組合,它可在轉移的同時清除被判位,jc 指令只能對cy進位位進行判斷為高後轉移,並不能清除它. 二條指令都當被測位為高進時進行相對轉移.

4樓:匿名使用者

jc是判斷c進位標誌是否為1,為1則跳轉到指定位置。

jbc是判斷可位定址區域內指定位是否為1,為1則跳轉到指定位置,並同時清除該位(置0)。

5樓:還收藏的小屁孩

jbc除了對標誌位c進行判定是否為1外,還要做一個動作,就是將c清零!

也就是說,在c為1時,jbc判定完要清零

6樓:

jbc 是對位進行判斷

jc只判斷進位標誌位(cy)

7樓:

jbc 是對位判斷

jc判斷進位位標誌

微控制器組合語言中共有多少種註記符 20

8樓:生活如歌

指令中大約43種助記符,不包含偽指令。

movmovc

movx

push

popxch

xchd

addaddc

subb

incdec

muldiv

daanl

orlxrl

cplclr

setb

rlrr

rlcrrc

swap

ajmp

ljmp

sjmp

jmpjz

jnzjc

jncjb

jnbjbc

cjne

djnz

acall

lcall

retretinop

9樓:匿名使用者

51微控制器彙編指令速查表

指令格式 功能簡述 位元組數 週期

一、資料傳送類指令

mov a, rn 暫存器送累加器 1 1

mov rn,a 累加器送暫存器 1 1

mov a ,@ri 內部ram單元送累加器 1 1

mov @ri ,a 累加器送內部ram單元 1 1

mov a ,#data 立即數送累加器 2 1

mov a ,direct 直接定址單元送累加器 2 1

mov direct ,a 累加器送直接定址單元 2 1

mov rn,#data 立即數送暫存器 2 1

mov direct ,#data 立即數送直接定址單元 3 2

mov @ri ,#data 立即數送內部ram單元 2 1

mov direct ,rn 暫存器送直接定址單元 2 2

mov rn ,direct 直接定址單元送暫存器 2 2

mov direct ,@ri 內部ram單元送直接定址單元 2 2

mov @ri ,direct 直接定址單元送內部ram單元 2 2

mov direct2,direct1 直接定址單元送直接定址單元 3 2

mov dptr ,#data16 16位立即數送資料指標 3 2

movx a ,@ri 外部ram單元送累加器(8位地址) 1 2

movx @ri ,a 累加器送外部ram單元(8位地址) 1 2

movx a ,@dptr 外部ram單元送累加器(16位地址) 1 2

movx @dptr ,a 累加器送外部ram單元(16位地址) 1 2

movc a ,@a+dptr 查表資料送累加器(dptr為基址) 1 2

movc a ,@a+pc 查表資料送累加器(pc為基址) 1 2

xch a ,rn 累加器與暫存器交換 1 1

xch a ,@ri 累加器與內部ram單元交換 1 1

xchd a ,direct 累加器與直接定址單元交換 2 1

xchd a ,@ri 累加器與內部ram單元低4位交換 1 1

swap a 累加器高4位與低4位交換 1 1

pop direct 棧頂彈出指令直接定址單元 2 2

push direct 直接定址單元壓入棧頂 2 2

二、算術運算類指令

add a, rn 累加器加暫存器 1 1

add a, @ri 累加器加內部ram單元 1 1

add a, direct 累加器加直接定址單元 2 1

add a, #data 累加器加立即數 2 1

addc a, rn 累加器加暫存器和進位標誌 1 1

addc a, @ri 累加器加內部ram單元和進位標誌 1 1

addc a, #data 累加器加立即數和進位標誌 2 1

addc a, direct 累加器加直接定址單元和進位標誌 2 1

inc a 累加器加1 1 1

inc rn 暫存器加1 1 1

inc direct 直接定址單元加1 2 1

inc @ri 內部ram單元加1 1 1

inc dptr 資料指標加1 1 2

da a 十進位制調整 1 1

subb a, rn 累加器減暫存器和進位標誌 1 1

subb a, @ri 累加器減內部ram單元和進位標誌 1 1

subb a, #data 累加器減立即數和進位標誌 2 1

subb a, direct 累加器減直接定址單元和進位標誌 2 1

dec a 累加器減1 1 1

dec rn 暫存器減1 1 1

dec @ri 內部ram單元減1 1 1

dec direct 直接定址單元減1 2 1

mul ab 累加器乘暫存器b 1 4

div ab 累加器除以暫存器b 1 4

三、邏輯運算類指令

anl a, rn 累加器與暫存器 1 1

anl a, @ri 累加器與內部ram單元 1 1

anl a, #data 累加器與立即數 2 1

anl a, direct 累加器與直接定址單元 2 1

anl direct, a 直接定址單元與累加器 2 1

anl direct, #data 直接定址單元與立即數 3 1

orl a, rn 累加器或暫存器 1 1

orl a,@ri 累加器或內部ram單元 1 1

orl a,#data 累加器或立即數 2 1

orl a,direct 累加器或直接定址單元 2 1

orl direct, a 直接定址單元或累加器 2 1

orl direct, #data 直接定址單元或立即數 3 1

xrl a, rn 累加器異或暫存器 1 1

xrl a,@ri 累加器異或內部ram單元 1 1

xrl a,#data 累加器異或立即數 2 1

xrl a,direct 累加器異或直接定址單元 2 1

xrl direct, a 直接定址單元異或累加器 2 1

xrl direct, #data 直接定址單元異或立即數 3 2

rl a 累加器左迴圈移位 1 1

rlc a 累加器連進位標誌左迴圈移位 1 1

rr a 累加器右迴圈移位 1 1

rrc a 累加器連進位標誌右迴圈移位 1 1

cpl a 累加器取反 1 1

clr a 累加器清零 1 1

四、控制轉移類指令類

accall addr11 2kb範圍內絕對呼叫 2 2

ajmp addr11 2kb範圍內絕對轉移 2 2

lcall addr16 2kb範圍內長呼叫 3 2

ljmp addr16 2kb範圍內長轉移 3 2

sjmp rel 相對短轉移 2 2

jmp @a+dptr 相對長轉移 1 2

ret 子程式返回 1 2

ret1 中斷返回 1 2

jz rel 累加器為零轉移 2 2

jnz rel 累加器非零轉移 2 2

cjne a ,#data ,rel 累加器與立即數不等轉移 3 2

cjne a ,direct ,rel 累加器與直接定址單元不等轉移 3 2

cjne rn,#data ,rel 暫存器與立即數不等轉移 3 2

cjne @ri ,#data,rel ram單元與立即數不等轉移 3 2

djnz rn ,rel 暫存器減1不為零轉移 2 2

djnz direct ,rel 直接定址單元減1不為零轉移 3 2

nop 空操作 1 1

五、布林操作類指令

mov c, bit 直接定址位送c 2 1

mov bit, c c送直接定址位 2 1

clr c c清零 1 1

clr bit 直接定址位清零 2 1

cpl c c取反 1 1

cpl bit 直接定址位取反 2 1

setb c c置位 1 1

setb bit 直接定址位置位 2 1

anl c, bit c邏輯與直接定址位 2 2

anl c, /bit c邏輯與直接定址位的反 2 2

orl c, bit c邏輯或直接定址位 2 2

orl c, /bit c邏輯或直接定址位的反 2 2

jc rel c為1轉移 2 2

jnc rel c為零轉移 2 2

jb bit,rel 直接定址位為1轉移 3 2

jnb bit,rel 直接定址為0轉移

以51為核心的微控制器有哪幾種?它們與mcs-51微控制器有什麼區別?

10樓:匿名使用者

at,stc,笙泉,飛利浦等,核心一樣,指令一樣,不一樣的只是內部硬體。像stc,有看門狗,有內部時鐘,可以時鐘加倍。有些型號還帶ad。

中斷源也要多些。最好上官網下資料看。

11樓:匿名使用者

atmel89系列微控制器

lpc900系列

c8051f系列

12樓:匿名使用者

有很多,區別不大,基本指令都是一樣的

微控制器指令

13樓:漢曼冬樑覓

push

dpl;

push

dph;

pop08h;

incdptr

(1)push

dpl(sp)=41h

(41h)=34h

(2)push

dph(sp)=42h

(42h)=34h

(3)pop

08h(08h)=34h

(sp)=41h

(4)inc

dptr

dptr=3413h

4.執行下列指令後,各有關儲存單元(即a、b)的內容如何?

mova,

#30h

a=#30h

movb,

#0afh

b=#0afh

xcha,

ba=#0afh

b=#30h

swap

aa=#0fah

5.執行如下三條指令後,30h單元的內容是多少?

movr1,#30h

r1=#30h

mov40h,#0eh

(40h)=#0eh

mov@r1,40h

(30h)=(40h)=#0eh

6.已知fosc=6mhz,求下面延時子程式的延時時間。

delay:

movr6,#10

;mov

r7,#250h

;d2:

djnz

r7,d2

;250*2機周*1us=0.5ms

d1:djnz

r6,d1

;0.5*10=5ms

ret;

實際延時週期為【(500+2+1)*10+2+1】機周*1us/機周=5033us

四、程式設計題

1.使累加器a的內容最四位置1,低四位清零,其餘位保持不變。

這個題沒看明白,不好意思

2.分別用指令實現下列各小題的要求:

____

1)into、t0開中斷(允許中斷),其餘禁止中斷movie,#03h

2)t1、序列口開中斷(允許中斷),其餘禁止中斷movie,#98h

3)全部開中斷

movie,#0ffh

或setb

ie4)

全部禁止中斷

movie,#00h

或clr

ie前面那幾道題yl已經說了,我就不回了,呵呵

微控制器組合語言指令中中斷返回指令ret和reti有什麼

reti 是中斷返回指令 ret 是子程式返回指令 reti比ret多一步清除中斷優先順序狀態位,讓同級別的中斷有機會得到響應。中斷指令 reti 做為中斷跳出指令除了將堆疊中儲存著的地址取出,送回pc 使程式從主程式的中斷處繼續往下執行的作用外,還有將 優先順序生效 觸發器清零的功能。ret 是子...

微控制器組合語言問題

建議你用定時中斷方式,下面的供參考 org 0000h ajmp start org 001bh ljmp time1 定時中斷1入口 org 0030h start mov 30h,0 mov 31h,0 mov 32h,0 mov 33h,0 mov p2,0ffh mov dptr,table...

如何用組合語言實現微控制器比較轉移

pan clr cy mov 30h,a subb a,10 jb cy,prog1 mov a,30h clr cy subb a,20 jb cy,prog2 mov a,30h clr cy subb a,30 jb cy,prog3 prog1 nop prog2 nop prog3 nop...