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

時間 2021-08-13 16:50:32

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微控制器組合語言學習軟體,51微控制器用組合語言需要什麼軟體?

我想告訴你,keil可以編輯彙編的檔案.你建好一個project後,在source group 1上點右鍵,選add files to group source group 1 這時,就可以選中你的asm檔案 要選asm檔案得先把對話方塊中的檔案類弄選為 雙擊就可以新增到source group 1...

51微控制器求用組合語言編寫延時1小時的子程式要

延時一小時,這麼長,應該要用定時器,不能用迴圈的方式。org 00h ajmp main org 0bh ajmp t0int0 org 30h main mov sp,60h mov r4,20 mov tmod,01h mov th0,3ch 12m晶振時定時初值取 3cb0h,還可細調如 tl...

ARM微控制器可以用組合語言程式設計嗎

arm微控制器程式可以用組合語言進行編寫。除去協處理器 高階的arm微控制器才具有 的指令,常用的指令大致為msr mrs ldr str ldm stm,orr bic,test,add,sub,mul等指令。如果說想寫一寫彙編 玩一下的話還行。原則上能用c語言則一定不會使用匯編。例如uboot的...