zakaj TI = 1 pred printf ()?

H

hiclickme

Guest
Živjo,
Včasih sem napisati program v ASM lanuage.Kot je skupine večji, dobim zamenjati.Zdaj sem v koraku s C.

Zakaj?
...
TI = 1
printf ( "zakaj TI = 1 pred printf ()? \ n");
...

Razmišljate v ASM.Vedno sem "CLR TI", da bi SBUF poslati.Mislim, da je treba
...
TI = 0
printf ( "ni važno, kaj si tipa I natisni nič bratranec TI = 0, haha ... \ n")
...
Ampak doens't delo.Zakaj?"TI = 1" pomeni, da se pošiljanje opravljeno, in to ne bo spodbuda, kot mislim.Zakaj?

Thanks a lot!

 
Rad bi ti pomagal, vendar ne razumem anythnig z vaše vprašanje.Ali lahko razložite v globino?

 
Zdravo, Free_Will.Žal mi je za moje slabo izražanje!I am učenje C iz zbirnih jeziku.

Če želim poslati "A" z TXD, bi napisali takole v ASM

MOV A, # 'A'
CLR TI
MOV SBUF, A
JNB TI, $

TI bo setted 1 bajt ko pošiljanje opravljeno, in to pošiljanje ustaviti.Torej, če želim, da pošljete,
rabim TI = 0, v ASM jezik.Ampak za printf () v C lanuage,

TI = 1
printf ( "A");

je treba TI = 1 za pošiljanje.Zakaj?

na besedo, zakaj ne?

TI = 0
printf ( "A");

 
Živjo,

Upoštevajte ASM prevajalnik C kode, ki nastanejo in jih primerjajte z vašim.

 
Hvala Free_Will

Zdaj vem, zakaj
C: 0x040C 3099FD JNB TI (0x98.1), C: 040C
C: 0x040F C299 CLR TI (0x98.1)
C: 0x0411 F599 MOV SBUF (0x99), A

Pot do odgovora je vedno bolj pomemben kot odgovor

 
hiclickme wrote:Včasih sem napisati program v ASM lanuage.
Kot je skupine večji, dobim zamenjati.
Zdaj sem v koraku s C.Zakaj?

...

TI = 1

printf ( "zakaj TI = 1 pred printf ()? \ n");
 
tom324 je pravica.
printf funkcija klic putchar in putchar pregledov TI prvi.Prepričajte se, da ni znakov pošilja.To pomeni, TI mora biti 1, preden pošljete.

 

Welcome to EDABoard.com

Sponsor

Back
Top