關於微控制器的問題,如果程式中要要到三組工作暫存器Rn,如何切換 SP的初值是否要修改?若要,如何修改

時間 2021-09-04 02:40:25

1樓:匿名使用者

以下是個示範,依次切換到工作區0到3

org 0000h

sjmp main

org 0030h

main:

mov sp,#5fh ;將sp設定到60h以後的ram區mov a,#0

lcall setrn

lcall delay

mov a,#1

lcall setrn

lcall delay

mov a,#2

lcall setrn

lcall delay

mov a,#3

lcall setrn

lcall delay

sjmp $

setrn:

jnz setrn1 ;a=0工作區0clr rs0

clr rs1

retsetrn1:

jnz setrn2 ;a=1工作區1setb rs0

clr rs1

retsetrn2:

jnz setrn3 ;a=2工作區2clr rs0

setb rs1

retsetrn3:

jnz setrn1 ;a=3工作區3setb rs0

setb rs1

retdelay:

mov r0,#10

delay1:

mov r1,#100

djnz r1,$

djnz r0,delay1ret

2樓:藏在水中的人

利用 psw :程式狀態字暫存器的 rs1位與rs0位 選擇暫存器區 或者直接定址

sp的初值要跳過 暫存器使用的地址

位4-3: rs1-rs0:暫存器區選擇。

rs1 rs0 暫存器區 地址

0 0 0 0x00-0x07

0 1 1 0x08-0x0f

1 0 2 0x10-0x17

1 1 3 0x18-0x1f

3樓:做而論道

如果程式中要要到三組工作暫存器rn,如何切換?sp的初值是否要修改?

是要修改。

若要,如何修改?

mov sp, #nn ;nn的範圍:18h~7fh (51系列微控制器),注意留出堆疊空間。

關於微控制器TMOD問題,問個微控制器問題 TMOD 0x21 設定定時器1為工作方式2 求教這句話什麼意思

生活如歌 1 t1方式0 tmod 0x00.t1方式1 tmod 0x10因為t1t0都在tmod裡設定,高四位t1低四位t0 2 p3.4是t0計數器輸入引腳,此時只要設定tmod中的d2位即可 c t位 即tmod 0x04,啟動計數後就可以計數了,此時一般計數初值為0 3 查詢方式時要不停地...

關於微控制器的考試問題,關於微控制器的考試題目

30 序列 31 cy 進借位位 32 序列資料傳送 33 迴圈34 pop direct 35 reti 36 立即數定址 37 暫存器間接定址 38 t0 th0 tl0 39 here jnb tf0 tf1 here 40 6 41 沒有16位的定時器,不過有乙個可以當做16位的定時器用 4...

關於微控制器儲存器的問題,idata,data,badata,xdata,pdata

關於51微控制器記憶體問題,一直是個疑惑大家的問題,因為51微控制器是個很另類的微控制器。下面我給樓主講解一下 51微控制器之所以另類,是因為,他定址記憶體的空間,不是靠匯流排,是用指令的方式。51微控制器有以下幾個記憶體模組組成 1 rom或者flash,叫程式儲存區,你寫的程式是存在這裡面的,上...