Qui sait programmer en Assembleur ?
Modérateurs : Papy.G, fneck, Carl
Re: Qui sait programmer en Assembleur ?
Inutile de faire les gros yeux
Car si tu lisais bien mon message, je parle d'un "286SX" que tu cites et qui, à ma connaissance, n'existe pas, et non du fort connu et commun 80286 ou (i286) que je cite d'ailleurs.
Pour dire autrement ce que j'ai écrit plus haut: le 286 n'existant pas en version avec FPU intégré, comme peuvent l'être les 386DX ou 486DX, un "286SX" n'a pas de sens.
Je reconnais bien sur la photographie, les boitiers PC Commodore que je vendais mais surtout peux tu me montrer une pix d un 286sx ? je serais curieux d en voir un...
Car si tu lisais bien mon message, je parle d'un "286SX" que tu cites et qui, à ma connaissance, n'existe pas, et non du fort connu et commun 80286 ou (i286) que je cite d'ailleurs.
Pour dire autrement ce que j'ai écrit plus haut: le 286 n'existant pas en version avec FPU intégré, comme peuvent l'être les 386DX ou 486DX, un "286SX" n'a pas de sens.
Je reconnais bien sur la photographie, les boitiers PC Commodore que je vendais mais surtout peux tu me montrer une pix d un 286sx ? je serais curieux d en voir un...
-
- Messages : 128
- Inscription : 31 juil. 2008 14:02
- Localisation : la cadiere d'azur - var (83)
Re: Qui sait programmer en Assembleur ?
Au temps pour moi, je pensais que SX signifiait 16 bits pour le bus de données et pas de co-processeur intégré , c'est pourquoi je disait "286 sx 16".
Il sagissait alors d'un 80286 16 mhz avec 16 bits de bus de données sans FPU et non un "80286 sx 16". Rectification faite , merci pour l'info.
Il sagissait alors d'un 80286 16 mhz avec 16 bits de bus de données sans FPU et non un "80286 sx 16". Rectification faite , merci pour l'info.
Re: Qui sait programmer en Assembleur ?
Pas tout à fait Fabrice, 386SX signifie bus de 32 buts en interne et 16 bits en externe (pour les données), 386DX est la version commune ou i386 avec un bus interne et externe pour les données de 32bits. Ensuite le DX du i486 indiquait la présence d'une FPU intégré... c'était un peu le bordel dans les notations. Reste que la série 386 n'a jamais eu de FPU intégré.
Mais bon, le i286sx ne semble pas avoir existé et n'aurait pas beaucoup de sens puisque Full 16bits.
Peut être avais-tu un i386sx dans ton PC prévue à la base pour un 286, l'objectif du i386sxétait de pouvoir se placer directement à la place d'un 286 ?
Mais bon, le i286sx ne semble pas avoir existé et n'aurait pas beaucoup de sens puisque Full 16bits.
Peut être avais-tu un i386sx dans ton PC prévue à la base pour un 286, l'objectif du i386sxétait de pouvoir se placer directement à la place d'un 286 ?
Re: Qui sait programmer en Assembleur ?
En effet, Fabrice! j'ai fait une erreur concernant le 386! le FPU a été intégré à partir du 486. En me relisant après coup , je me suis aperçu de l'énormité que j'avais écrit concernant le 386 !
Par "SX", je pense qu'Intel voulais surtout dire... "low cost". Oui, un des avantages du 386SX était son bus externe 16 bits permettant également son installation sur des carte mères à base de 286. Mais la chose n'était si simple: la carte mère du 286 devait disposer d'un socket compatible (+gestion adaptée), sinon il fallait passer par l'acquisition d'une mini carte sur laquelle était monté le 386SX et qu'il fallait insérer sur le support du 286.
GatesBilou, nous avons tous les deux écrit une boulette! Arf.. l'âge commence à nous jouer des tours ^_^
Par "SX", je pense qu'Intel voulais surtout dire... "low cost". Oui, un des avantages du 386SX était son bus externe 16 bits permettant également son installation sur des carte mères à base de 286. Mais la chose n'était si simple: la carte mère du 286 devait disposer d'un socket compatible (+gestion adaptée), sinon il fallait passer par l'acquisition d'une mini carte sur laquelle était monté le 386SX et qu'il fallait insérer sur le support du 286.
GatesBilou, nous avons tous les deux écrit une boulette! Arf.. l'âge commence à nous jouer des tours ^_^
Re: Qui sait programmer en Assembleur ?
Initialement, c'est à dire pour le 386, SX signifie bien 16bits, mais S pour Single par rapport à D double.
Par contre cela ne s'applique plus au 486 SX, le SX devenant ici une référence au côté low cost qu'avait le 386sx alors qu'en réalité, un 486SX est un 486DX raté (qui ne monte pas en fréquence et avec FPU désactivé ou fautif).
Par contre cela ne s'applique plus au 486 SX, le SX devenant ici une référence au côté low cost qu'avait le 386sx alors qu'en réalité, un 486SX est un 486DX raté (qui ne monte pas en fréquence et avec FPU désactivé ou fautif).
Re: Qui sait programmer en Assembleur ?
Intel aimait bien jouer avec les désignations, encore un exemple: le FPU 487SX était ni plus ni moins qu'un 486DX... Même coût de production évidement, mais pas vendus au même prix... l'arnaque...
Re: Qui sait programmer en Assembleur ?
en vérifiant la dénomination SX / DX j'ai trouvé un quasi 386 intel avec FPU intégré, en fait un 486 dans un package de 386 : le rapidcad.
Visiblement c'est quand même un jeu de 2 chips mais le second (le faux 387) est un simple bouchon actif.
http://www.cpushack.com/RAPIDCAD.html
Je ne connaissais pas ce CPU avant aujourd'hui...
Visiblement c'est quand même un jeu de 2 chips mais le second (le faux 387) est un simple bouchon actif.
http://www.cpushack.com/RAPIDCAD.html
Je ne connaissais pas ce CPU avant aujourd'hui...
- clearscreen
- Messages : 234
- Inscription : 05 juin 2011 02:39
- Localisation : PARIS
Re: Qui sait programmer en Assembleur ?
Bonjour,
pour ma part c'était de l'assembleur Z80 sur amstrad, et dans le cadre de mes études du 68000 (super proc.)
je n'ai pas trop touché à l'assembleur x86 ( plutôt en turbo pascal, c , c++ de ce côté là)
Cls.
pour ma part c'était de l'assembleur Z80 sur amstrad, et dans le cadre de mes études du 68000 (super proc.)
je n'ai pas trop touché à l'assembleur x86 ( plutôt en turbo pascal, c , c++ de ce côté là)
Cls.
Re: Qui sait programmer en Assembleur ?
Voici donc la version en assembleur : (6803 ici)jester a écrit :Maintenant, et pour faire plaisir à plusieurs personnes, j'aimerais que tu nous donnes une version en assembleur, de la conversion d'un nombre octal en décimal. C'est d'ailleurs plus sportif de réaliser des divisions en langage machine sur des vieux proc 8bits
On considérera un nombre 16 bits.
Prenons encore l'exemple du nombre octal : 3326
Il suffit donc d'en extraire 3, 3, 2 et 6 par une succession de divisions en langage machine en base 10,
de multiplier chacun à la puissance de 8 correspondante par un simple décalage de bits à gauche,
et d'additionner les sommes obtenues sur 2 octets. Une simple boucle LOOP parcourant le nombre jusqu'à ce que le reste = zéro.
Le programme Basic se contente de demander à l'utilisateur un nombre en Octal sur 16 bits et le POKE,
puis éxécute le programme en langage machine qui fait tous les calculs.
Et lit avec un PEEK le résultat Décimal calculé et stocké en mémoire par le programme en langage machine.
Vous pouvez tester le programme avec l'émulateur de Daniel : DCAlice.
Si vous avez des questions, demandes d'explications sur le code source,
ou si vous souhaitez faire une version pour un autre processeur, ou faire une version plus courte, n'hésitez pas.
Code : Tout sélectionner
ORG $4A00
EXC START
START LDD #$0
STD $5B0A
LOOP LDX $5B00
CPX #$2710
BCC DMIL
CPX #$3E8
BCC MIL
CPX #$64
BHS CENT
CPX #$A
BHS DIZ
LDD $5B00
ADDD $5B0A
STD $5B0A
RTS
DMIL LDAA #$C
STAA $5B07
LDD #$2710
BRA DIVIZ
MIL LDAA #$9
STAA $5B07
LDD #$3E8
BRA DIVIZ
CENT LDAA #$6
STAA $5B07
LDD #$64
BRA DIVIZ
DIZ LDAA #$3
STAA $5B07
LDD #$A
DIVIZ STD $5B02
LDD $5B00
LDX #$0
BOUCL SUBD $5B02
INX
PSHX
PSHB
PSHA
PULX
CPX $5B02
BCS SUITE
PULX
BRA BOUCL
SUITE PULX
STX $5B04
CNVR LDX #$0
LDD $5B04
BCL2 LSLD
INX
CPX $5B06
BLO BCL2
STD $5B08
ADDD $5B0A
STD $5B0A
MULTI LDX $5B04
LDD $5B00
BCL3 SUBD $5B02
DEX
BNE BCL3
STD $5B00
LDX $5B00
CPX #$0
BEQ FIN
JMP LOOP
FIN RTS
Code : Tout sélectionner
10 INPUT "NOMBRE OCTAL: ";N
20 N1=INT(N/256):POKE 23296,N1
30 N2=N-N1*256:POKE 23297,N2
40 EXEC 18944
50 PRINT "DECIMAL: ";256*PEEK(23306)+PEEK(23307)
60 PRINT:GOTO 10
- clearscreen
- Messages : 234
- Inscription : 05 juin 2011 02:39
- Localisation : PARIS
Re: Qui sait programmer en Assembleur ?
Bonjour,
je rebondis sur le message qui parle de la directive pour introduire du code assembleur dans du turbo pascal 6.
Je n'ai pas trop connu la directive asm en turbo pascal, car avant de faire tu C/C++ j'ai principalement fait du TP 3 et 5.5 -mais de manière "classique"
En revanche, sur turbo 3 , j'ai beaucoup utilisé inline (à ne pas confondre avec l'inline du C++ qui est le successeur des macro #define du C pour définir des macros) qui permettait de mettre directement du code machine dans une procédure pascal.
Sur Epson, ça m'a bien servi pour accéder au bdos et appeler des fonctions pour les fdd et sur CPC pour faire des petites librairies graphiques...
Bien à vous.
je rebondis sur le message qui parle de la directive pour introduire du code assembleur dans du turbo pascal 6.
Je n'ai pas trop connu la directive asm en turbo pascal, car avant de faire tu C/C++ j'ai principalement fait du TP 3 et 5.5 -mais de manière "classique"
En revanche, sur turbo 3 , j'ai beaucoup utilisé inline (à ne pas confondre avec l'inline du C++ qui est le successeur des macro #define du C pour définir des macros) qui permettait de mettre directement du code machine dans une procédure pascal.
Sur Epson, ça m'a bien servi pour accéder au bdos et appeler des fonctions pour les fdd et sur CPC pour faire des petites librairies graphiques...
Bien à vous.