Yahoo Hỏi & Đáp sẽ ngừng hoạt động vào ngày 4 tháng 5 năm 2021 (Giờ Miền Đông nước Mỹ) và từ nay, trang web Yahoo Hỏi & Đáp sẽ chỉ ở chế độ đọc. Các thuộc tính hoặc dịch vụ khác của Yahoo hay tài khoản Yahoo của bạn sẽ không có gì thay đổi. Bạn có thể tìm thêm thông tin về việc Yahoo Hỏi & Đáp ngừng hoạt động cũng như cách tải về dữ liệu của bạn trên trang trợ giúp này.
Première condition dans l'histoire de l'ordinateur?
Bonjour à tous,
J'aimerais m'informer sur la création de la première condition dans le fonctionnement des ordinateurs.
On sait bien que toutes informations dans l'ordinateur sont codées en binaire. Mais alors comment faire comprendre à l'ordinateur qu'on veut faire une condition (IF)?
Comment l'instruction "IF" a été créée pour le premier langage de programmation? (si avant elle, il n'y avait pas de IF)
J'espère que vous comprendrez ma question...
Je vous remercie!
3 Câu trả lời
- 1 thập kỷ trướcCâu trả lời yêu thích
Fondamentalement, la première notion de IF sont les interrupteurs électroniques : deux entrées, une sortie, qui disent des choses comme "si l'entrée A est à un, alors envoyer l'entrée B sur la sortie, sinon envoyer zéro." Et d'autres variations. En bricolant des centaines de trucs comme ça, on aboutit à un ordinateur rudimentaire. (À noter que de nos jours, ces "interrupteurs électroniques" sont les transistors.)
Bon, pour remonter un peu plus haut niveau, et commencer à parler de code informatique plutôt que de matériel, intéressons-nous à l'assembleur :
En assembleur l'équivalent d'un IF est en fait la collection de JUMP conditionnels : JE, JNE, JA, JB, JBE, etc.
JE est l'instruction "jump if equals." C'est un jump (comme un goto en assembleur) qui saute à l'adresse indiquée, mais seulement si "le précédent calcul a déterminé que les opérandes étaient égales."
En réalité, la condition est "si le registre de flags contient le bit equals à true." Le registre de flags stocke un certain nombre de bits qui retiennent donc un état, et certains de ces bits stockent le résultat du dernier calcul : si c'est une comparaison entre deux nombres, il stocke si les nopmbres étaient égaux, ou si le premier était inférieur, en cas d'addition il retient s'il y a eu number overflow signé ou non-signé, etc.
Bref, cette condition IF en assembleur dépend d'un calcul effectué avant, dont une partie des résultats est stockée dans le registre de flags, et est simplement un JUMP conditionné par ce registre de flags.
Une fois qu'on a ça, faire un if() dans un langage de plus haut niveau comme le C, est évident.
- poivronvertbleuLv 61 thập kỷ trước
juste un précision.
Le comparateur fait une simple soustraction entre deux nombres. Le résultat n'est pas utilisé (ne sort pas de l'ALU) mais l'instruction jump lit les information fournies par le registre d'état du processeur.
Le registre d'état est une information produite sur un sortie dédié sur l'alu. les information données par ce registre sont :
1 si le nombre est nul ou 0 sinon
overflow (dépassement) 1, 0 sinon
reste de la division 0,1
ni le nombre est négatif
Donc pour: if ( A>B )
il suffit de faire Comp A B et de vérifier si le registre d'état retourne 0 pour l'indicateur négatif.
- CorbyLv 71 thập kỷ trước
La condition IF a dû être créée rapidement car l'ordinateur n'aurait pas pu s'appeler ordinateur... c'est une étape obligatoire, la programmation...
Il y avait aussi IF... THEN... ELSE... ou IF... THEN GOTO...
Tout comme les boucles...
FOR I = x TO y
NEXT