在51微控制器中用組合語言rlca為什麼左移兩位

2021-08-13 16:50:40 字數 2848 閱讀 1662

1樓:匿名使用者

51微控制器中,rlc a是帶進位的迴圈左移,所以執行的結果不是將低位清0,要想將低位清零,實現點亮兩個燈可以採取的方法:

1、直接賦值實現:

a: mov p1,#0fch

b: mov a,p1

anl a,#0fch

mov p1,a

2、用迴圈命令,但每迴圈一次,需要將c清0mov a,p1

clr c

rlc a

clr c

rlc a

mov p1,a

2樓:

a=0ffh的話,應該是用低電平點亮的吧,本來用rlc帶c暫存器位迴圈左移就是1位,因為你應該有位移入c暫存器了

3樓:匿名使用者

用rlc a左移,其中包括了進位位cy了,a左移兩位以後不一定變成11111100,因為原來cy的狀態未知,所以,不是亮兩個led,當然需要是led的負極接在i/o腳上,是0有效才能是輸出0使led亮。

要保證變成11111100,需要這麼寫:

clr c

rlc a

clr c

rlc a

如果是迴圈左移的話,就寫一對;

mov r7,#8 ;迴圈8次lop:clr c

rlc a

mov p0,a

djnz r7,lop

..................

4樓:匿名使用者

硬體,保證led是好的。2.用萬用表測一下微控制器對應的io口是否是輸出低了 3.軟體檢查下對應io口是否設為輸出狀態,如果是輸入的話,高阻,是導通不了的。

微控制器中組合語言rlc是什麼意思?

5樓:薔祀

rlc 是帶進位的迴圈左移,rlc a即將a的內容左移一位,將進位位c中的值移到累加器a的最低位,a的最高位移到c裡。

譬如說:設a=01000001,c=1;

則如果執行rl ,則a=10000010,c=1(a所有位左移一位,最低位補零,c不參加移位操作,保持原值不變),如果執行rlc後,則a=10000011,c=0(a的最高位移到c,c原值移到a最低位)。

c=1,a=55h,rlc a後則為:c=0 a=abh,即:1 01010101變為:0 10101011

擴充套件資料

組合語言rol和rcl的區別方法:

al=10100000時,rol al,1就把最高位的 1 移到最後,使al變成 0100 0001,同時移出的1送cf;rol al,cl(cl=2),相當於2次 rol al,1,所以al變成 1000 0010,最後移出的0送cf。

rcl al,1則把al的最高位1送給cf,使cf=1,al其它位相應左移,成為 0100 000x,最後空下的x位被cf原來的值補齊;同樣,rol al,cl(cl=2),相當於2次 rcl al,1,最後al變成 1000 00x1,al原第二位的0到了cf,cf原來的值補al中的x。

6樓:匿名使用者

是帶進位迴圈左移比如:

c=1,a=55h,rlc a後則為:c=0 a=abh,即:

1 01010101變為:

0 10101011

7樓:匿名使用者

帶進位左迴圈移位指令(rotate left through cf)

相當於乘以2的意思

8樓:匿名使用者

rlc是帶進位位的左移,參加左移的共有9個位 設a=01000001,c=1; 則如果執行rl ,則a=10000010,c=1(a所有位左移一位,最低位補零,c不參加移位操作,保持原值不變) 如果執行rlc後,則a=10000011,c=0(a的最高位移到c,c原值移到a最低位)

9樓:做而論道

a中內容帶進位迴圈左移一位。

10樓:匿名使用者

其實這個要看你相應微控制器的說明文件。各個廠家生產的東西往往不通 比如過賦值 有的要 movia 有的要 mov r,#xx 都是不同的。而且,你肯定是新手,新手要看你所學微控制器的暫存器功能,rom地址等。

都要在說明文件裡找。

11樓:匿名使用者

帶進位迴圈左移(rotate left with carry),也就是連上進位標誌位cf一起迴圈左移,進位標誌位放到最後一位,最高位移到標誌位上。

12樓:匿名使用者

累加器a中的資料連同進位標誌位cy左移一位,bit7→ cy ,cy→bit0

13樓:匿名使用者

rrc a

rlc a

是一對...

14樓:花醉_夢醒

rlc是帶進位的左移。

例如a=01000001(65),c=1

跟樓上說的一樣,rlc是先把a迴圈左移,也就是10000010,然後把最後那個0(原a的最高位)和c互換,就變成了a=10000011,c=0

則rlc a=10000011(131)

clr c表示將c清零

則clr c rlc a=10000010(130)所以準確來說clr c rlc a算是一個完整的乘2(65變130)

組合語言rlc和jc

15樓:匿名使用者

不是的,只有在運算指令中才會產生進位的,a的資料移動式不會產生進位的

16樓:匿名使用者

是否進位還要看a的最高位是1還是0

51微控制器外部中斷組合語言問題

主程式是 流水燈0到7依次點亮 流水燈7到0依次點亮,反覆迴圈。外部中斷程式是 燈全亮 全滅3次。但是,程式沒有開中斷的指令,中斷程式是不會執行的。start 在下面新增 setb ea 開總中斷.setb ex0 開int0中斷.clr it0 設定int0為電平觸發.mov a,00h 外部中斷...

51微控制器組合語言的理解,坐等,求高手

mov 30h,250這條指令,是3位元組 2週期指令,機器碼是 75 30 fa 先取指,再執行。在第一個機器週期取到指令的前兩個位元組 75 30,在第二個機器週期的前半週期取到指令的第三個位元組 fa 250 第二個機器週期的後半週期執行該指令的操作,即將立即數250傳送到30h單元。按上述過...

微控制器高手們誰會用組合語言實現0 99間的計數 暫停 清零程式。對初學者實在是太難了。大神幫幫忙吧

org 0000h ljmp main org 000bh ljmp t0isr org 0030h able 共陰極數碼管顯示 表db 3fh,06h,5bh,4fh,66h 12345db 6dh,7dh,07h,7fh 6789main mov sp,5fh mov tmod,01h mov ...