kod v asm - kde je chyba?

Stanislav VARGA stanislav.varga
Středa Březen 17 12:06:51 CET 2004


no skus to s inym kusom procesora, mne sa stalo ze mi odisiel kazdy druhy
byte pamate doprdele, takze teraz mam 64bytov na procesore.

----- Original Message -----
From: Martin Sveda <sejda@kn.vutbr.cz>
To: <hw-news@list.gin.cz>
Sent: Tuesday, November 27, 2001 12:33 PM
Subject: kod v asm - kde je chyba?


    Zdarvim,
snazim se naprogramovat vysilani ser. dat nasledujicim
kodem do atmela 2051, ale chova se mi to nejak divne.

Pokud pouziju nasledujici kod, je vse OK.

....
.....
    mov A, R2
    mov R3, A
vysilani:
    jb CTS, $
    mov SBUF, @R1
    jnb TI, $
    clr TI
    inc R1
    djnz R3, vysilani
.....
.....

Pokud ale pouziju tento kod, tak to najednou prestane
chodit - i kdyz ty kody jsou v podstate naprosto shodne.

....
.....
;;;;;;;;;    mov A, R2     ;zakomentovano
;;;;;;;;;;   mov R3, A     ; zakomentovano
vysilani:
    jb CTS, $
    mov SBUF, @R1
    jnb TI, $
    clr TI
    inc R1
    djnz R2, vysilani      ; !!! zmena !!!
.....
.....

Jak vidite, tak jediny rozdil je v tom, ze u prvniho zpusobu
provedu R3:=R2, a pak vysilam dokud R3 neni rovno 0.
U druheho zpusobu pracuji rovnou s R2.


Proc se ty kody chovaji pokazde jinak?

Hodnota registru R2 se nemeni nikde jinde
nez v teto casti kodu.


Dik za vsechny odpovedi


--

----
                                         Martin Sveda

      email:        sejda@kn.vutbr.cz
             martin.sveda@kn.vutbr.cz
      www:    www.kn.vutbr.cz/~sveda3






Další informace o konferenci Hw-list