CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

aide pour un petit prog en assembleur

brolyyoun
brolyyoun
Niveau 8
01 décembre 2003 à 00:27:05

CAD?? que dois-je faire?

oxalys
oxalys
Niveau 2
01 décembre 2003 à 10:59:00

MOV AX, @data
MOV DS, AX < -- Et non pas EAX ! !!!!

brolyyoun
brolyyoun
Niveau 8
01 décembre 2003 à 12:47:03

Mais moi je veux uiliser les registres étendu EAX etc... c´est pour ca que je fais ca.
Mais je ne vois pas comment les utliser est ce qu´ils s´utilisent comme les simples registres AX etc.. ? ?

oxalys
oxalys
Niveau 2
01 décembre 2003 à 13:57:07

Bon il va falloir que tu revises un peu tes cours . .. DS ( Data Segment) est un registre 16bits comment veux-tu lui assigner une valeur d´un registre 32bits ? ??? c´est comme essayer de remplir une bouteille de 1L avec le contenu d´une de 2L sinon pour ton autre question oui on utilise les registres 32bits comme les 16bits

brolyyoun
brolyyoun
Niveau 8
01 décembre 2003 à 13:59:08

Tu sais je suis d"butant et on n´a pas encoreappris a utliser les registres 32bits d´ou mon erreur . .. sinon je dois utiliser quel DS pour les 32 bits stp

oxalys
oxalys
Niveau 2
01 décembre 2003 à 15:26:36

Bon si t´es débutant on va reprendre au début déjà où est ton data dans ton source ( il te manque peut-être un ´data segment use16´ je suppose que tu travailles en mode réél) lorsque tu fais un ´MOV AX, @data´ tu charges dans AX l´adresse du segment data que tu replaces ensuite dans DS par un ´MOV DS, AX´.
Dans ton programme si tu décides d´utiliser des registres 32Bits tu n´es pas obligé de les utiliser à chaques fois tu peux faire un ´MOV EAX, 16´ suivi d´un ´MOV BH, 3´ suivi d´un ´MOV DX, 65000´.
En fait le principe que tu sembles ne pas avoir assimilé c´est l´adressage mémoire.
Si je n´ai pas été trés clair ( vu que je suis nul en explication) tu peux me joindre sur msn à augur_niko@hotmail.com

brolyyoun
brolyyoun
Niveau 8
01 décembre 2003 à 16:22:24

J´ai pas très bien saisis ton explication , j´ai modifié comme tu l´as dit pourtant tjs la même chose? je t´ai ajouté à mes contacts.

brolyyoun
brolyyoun
Niveau 8
03 décembre 2003 à 22:24:36

Voila j´ai fait le code de la formule posté en debut de poste. mais mtn j´aimerais utiliser les boucles , comment je pourrais faire?

; groupe: 13211

. model small
. stack 100h

;-------------------------------------------------
--------
; Deuxieme programme -
; Calcul de la tangente avec la formule -
; de Taylor

;1+2*(x-pi/4)+4*(x-pi/4)+16*(x-pi/4)+256*(x-pi/4)

;-------------------------------------------------
--------
. data

;-------------------------------------------------
--------
; Donnees -

;-------------------------------------------------
--------
cent5 DW 105 ; constante de ( x-pi/4): deja calcul‚
deux DW 2 ; constante utile à la multiplication
trois DW 3 ; idem
quatre DW 4 ; idem
seize DW 16 ; idem
deuxm DW 2000 ; constante *1000 utile à la division
troism DW 3000 ; idem
quatrem DW 4000 ; idem
temp DW ? ; reponse temporaire
mille DW 1000 ; correspond a 1 que je calcule a la fin
total DW ? ; Reponse finale

. code

;-------------------------------------------------
--------
; - procedure principale -

;-------------------------------------------------
--------

main proc
MOV AX,@data ; Charge les donn‚es
MOV DS, AX ; On utilise des registre 16 bits

; Calcul de ( 2* cent5)

MOV AX,cent5 ; cent5 correspond a ( x-pi/4)
MUL deux ;
ADD temp,AX ; 2*cent5 enregistr‚ dans temp

; calcul de ( 4* cent5) exp 2/2000

MOV AX,cent5 ; x-pi/4 deplac‚ vers AX
MUL cent5 ; multiplie AX par lui meme pour le carre
MUL deux ; multiplie par 2 car 2exp 2 = 4
DIV deuxm ; division par 2000 pour eviter l´overflow
ADD temp,AX ;

; calcul de ( 16 * cent5) exp3/3000

MOV AX,cent5
MUL cent5 ; mise au cube
SUB DX,DX ; vider le registre DX pour eviter l´overflow
DIV troism ;
MUL quatre ; multiplie par 4 pour car 2exp 4=16
ADD temp,AX ;

; calcul de : ( 256 * cent5) exp 4 /4000

MOV AX,cent5 ;
MUL cent5 ;
SUB DX,DX ; Vider le registre DX
DIV quatrem ;
MUL seize ; multiplie par 16 car 2exp 16= 256
ADD temp,AX ;

; Ajout de 1000 ( initialement 1) dans temp puis dans total

MOV AX,mille ;
ADD temp,AX ;
MOV AX,temp ;
MOV total,AX ; le resultat final se trouve dans total

;-------------------------------------------------
--------------
; - Fin du programme -

;-------------------------------------------------
--------------
MOV AX,4C00h
INT 21h

main endp
end main

brolyyoun
brolyyoun
Niveau 8
04 décembre 2003 à 16:05:56

La resolution du calcul du début de ce topics mais c´est bon j´ai trouve comment faire

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment