pourquoi TI = 1 avant de printf ()?

H

hiclickme

Guest
Salut,
J'avais l'habitude d'écrire des programmes en ASM lanuage.Comme il des groupes plus importants,
j'ai confondu.Maintenant, je prends la mesure de C.

Pourquoi?
...
TI = 1
printf ( "pourquoi les TI = 1 avant de printf ()? \ n");
...

Penser à l'ASM.J'ai toujours "CLR TI" pour faire SBUF envoyer.Je pense
qu'il devrait être
...
TI = 0
printf ( "peu importe ce que vous tapez imprimer rien cuz TI = 0, haha ... \ n")
...
Mais il doens't travail.Pourquoi?"TI = 1" signifie
qu'il fait parvenir, et il
n'envoie pas comme je le pense.Pourquoi?

Merci beaucoup!

 
Je veux vous aider à comprendre mais pas anythnig avec votre question.Pourriez-vous
s'il vous plaît expliquer en profondeur?

 
Salut, Free_Will.Désolé pour mon pauvre expression!Je suis d'apprentissage de langage d'assemblage C.

Si je veux envoyer des' A 'par TXD, je écrire de cette manière à l'ASM

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

TI sera paramétré 1
lorsqu'il fait envoyer un octet, et arrêter d'envoyer.Donc, si je le veux envoyer,
j'ai besoin de TI = 0, ASM langue.Mais pour printf () en C lanuage,

TI = 1
printf ( "A");

il suffit de TI = 1 à envoyer.Pourquoi?

en un mot, pourquoi pas?

TI = 0
printf ( "A");

 
Salam,

Quel est le compilateur que vous utilisez?

Au revoir

 
Salut,

Observez le code assembleur généré que compilateur C et le comparer avec les vôtres.

 
Merci Free_Will

Maintenant je sais pourquoi
C: 0x040c 3099FD JNB TI (0x98.1), C: 040C
C: C299 CLR 0x040F TI (0x98.1)
C: 0x0411 F599 MOV SBUF (0x99), A

La voie de la réponse est toujours beaucoup plus importante que la réponse

 
hiclickme a écrit:J'avais l'habitude d'écrire des programmes en ASM lanuage.
Comme il des groupes plus importants, j'ai confondu.
Maintenant, je prends la mesure de C.Pourquoi?

...

TI = 1

printf ( "pourquoi les TI = 1 avant de printf ()? \ n");
 
tom324 est à droite.
l'appel de la fonction printf putchar putchar et contrôles TI premier.Assurez-vous que pas de caractère est l'envoi.Cela signifie que TI doit être de 1 avant d'envoyer.

 
J'ai rencontré le même problème avant.

Tom324 a donné la bonne réponse.

 

Welcome to EDABoard.com

Sponsor

Back
Top