Inverser 1 tableau en assembleur 80x86

Fermé
masterfreez - 25 nov. 2007 à 11:09
 le père - 25 nov. 2007 à 17:27
Bonjour,jé bezoin de savoir comment inverser 1 tableau en assembleur ... svp veuillez étr préci pask je début ds le domaine ...merci d'avanc

3 réponses

Je t'ai donné un coup de pouce, mais ne compte pas sur moi pour faire tout ton boulot.
As-tu fait l'effort d'essayer ce que je t'ai dit ? Je viens de voir qu'il y a une erreur dedans.
1
le principe que je te propose est de charger dans AL le caractère de début du tableau et dans AH celui de la fin, puis de ranger AL à la fin du tableau et AH au début. On recommence sur la moitié du tableau :

MOV CX,6 ; nombre de boucles
MOV SI, TAB ; début du tableau
MOV DI,TAB+14 ; fin du tableau
BCL1:
MOV AL,[SI]
MOV AH,[DI]
MOV [DI],AL
MOV [SI],AH

INC SI
DEC DI

LOOPNZ BCL1
0
masterfreez
25 nov. 2007 à 16:46
merci pr le truc pr inverser le tableau !!!
si vs pouver me montrer comment afficher le tableau tab , comment tirer son maximum, et comment le trier ça serait génial et trooooo gentil de votr pars !!!!!!!!!!!
vrmt vs me rendez un grand service ........
je vous attend ...
0
Bonjour,

Toi aussi, soit précis dans ta demande : tu veux qu'on fasse des exercices à ta place non ?
-1
masterfreez
25 nov. 2007 à 12:20
oui c ça ,si ça vs derange po biensur ..
alors voila j'ai un vecteur d'entier déclaré ds data segment é on me demande de faire le tri croissant de ce vecteur et de l'afficher ...
jme suis cassé la tét mais jy arrive po ..en plus j'en ai bezoin pr dem1 ..
SOS !!!!!!!!!!!!!!!
0
le père > masterfreez
25 nov. 2007 à 12:35
Peux-tu montrer ce que tu as commencé à faire ?
0
masterfreez > le père
25 nov. 2007 à 12:41
data segment
msg1 db " entrer un entier entre 1 et 4 ",10,13,"$"
msg2 db " fin du programme ",10,13,"$"
TAB db 15 dup (1,11,10,0,50,42,4,1,13,1,33,13,19,0,14)
data ends

pile segment stack
db 256 dup (?)
pile ends

code segment
assume cs:code , ds:data , ss:pile

main:
mov ax,data
mov ds,ax

faire:
mov dx,offset msg1
mov ah,09
int 21h

mov ah,08
int 21h

cmp al,31h
jl faire

cmp al,34h
ja faire

cmp al,31h
je aff

cmp al,32h
je max

cmp al,33h
je tri

cmp al,34h
je sorti


sorti:
mov dx,offset msg2
mov ah,09
int 21h
mov ah,4ch
int 21h

aff:


tri :

max :



fin:mov ah,4ch
int 21h






mov ah,4ch
int 21h
code ends
end main
0