Exercice en microprocesseur

[Résolu/Fermé]
Signaler
Messages postés
20
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
26 décembre 2008
-
 Tàha -
Bonjour,
exercice est :
On Désire Effectuer le transfert de données de la zone mémoire 1 vers la zone mémoire2.
On donne les adresses Début et fin des deux zones mémoires :
Zone mémoire1 : Adr_deb1=10000H , Adr_fin1=10100H.
Zone mémoire2 : Adr_deb2=20000H , Adr_fin2=20100H
proposer une solutioin
A voir également:

6 réponses


debut equ 1000h
fin equ 1010h
ld ab,debut
ld hl,fin
ld bc,fin-debut+1
ldir

faut que t'arrives à adapter ça sur un proc moderne... parce que cuilà il est limité à 64k
5
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Voila la solution


LDX #$ 10000 DÉBUT
LDY #$ 20000
LDA 0,X+
STA 0,Y+
CMPX #$ 10100
BLS (-7)
SWI FIN


Rq : il faut mettre les adresses en hexadécimal
bonsoir
je bosoine des ecercices avec solution sur le mecroprocesseur 8086 svp
je bosoin des exercices sur le mecroprocesseur 8086 aide moi svp
vous pouvez utilisez:
-les modes d'adressage indirect ou registre indirect ou direct indexé,
ou -les instructions de traitement de chaines de caractères ( REP MOVSB)
Messages postés
2493
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
327
REP MOVSB demande ds:si->source, es:di->destination et cx=taille en octets
Un segment fait 16 octets, donc on divise l'adresse du début de la zone en 16 pour avoir un nombre de segments (0x1000 et 0x2000). Adresse fin - adresse début fait 0x100. Y'a plus qu'à affecter segments, pointeurs et compteur puis faire la copie (avec l'instruction REP MOVSB) . Si on optimise, ça fait 18 octets de programme.

Google is your best friend
VB.NET is good ... VB6 is better !
Messages postés
3288
Date d'inscription
lundi 10 novembre 2008
Statut
Membre
Dernière intervention
2 mars 2016
306
t'y a deja reflechi ou pas du tout??
parce que la je pense que juste en faisant un bout de code en assembleur ou en C ca suffit ;)
il ya un fonction de xcgh
qui permet de faire echange d 2 reg