2016-03-25 26 views
0

Belleği 8051 mimarisinde arttırmanın bir yolu var mı? örneğinVeri bellekten kayıtlara

:

Bellek Yuvası: döngü bir döngü için de

mov 0x71, A do something; mov 0x72, A do something;

demek te

mov 0x71, #0x01 mov 0x72, #0x02 mov 0x73, #0x03

bir yolu var mı?

java'da sadece for(int i = 0; i < variable; i++) modelini kullanıyorsunuz ama 8051 mimarisinde bunu nasıl yapacağımı bilmiyorum.

cevap

2

Elbette, bunu yapmanın çeşitli yolları vardır. Çevreleyen koda bağlı olarak muhtemelen DJNZ veya CJNE komutunu kullanırdım.

;Load your control variable into B. From a table, GPIO, etc. 
    MOV B,#3H 

    ;Build your loop. This is basically a Do While loop. 

    ;int i=0, (really a byte since 8 is 8-bit) 
    CLR A 

    ;Start of the loop, notice this is AFTER the CLR op 
FN_LOOP: 

    ;Do something... 

    ;i++ 
    INC A 

    ;i < variable. Stops when A == B 
    CJNE A,B,FN_LOOP 

    ;Rest of your code 

Montaj modundaki adresleme modlarını da okumayı öneririm. Bu bilgi montaj talimatı set dökümantasyonunun okunması için gereklidir.

İlgili konular