J'ai rencontré des problèmes avec le code assembleur. Je suis un débutant à l'assembleur, donc il me semble difficile de le résoudre moi-même.Tâche de l'assembleur - valeurs min et max du tableau
La tâche est: "Pour trouver les éléments minimal et maximal du tableau."
Tout ce que j'ai déjà fait est la recherche d'un élément maximal. Je ne peux pas savoir, comment faire vérifier l'élément minimal et où je devrais mettre une telle vérification. Ou, probablement, je devrais passer à travers les éléments une deuxième fois après avoir trouvé l'élément maximal?
code:
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
void main() {
int N = 10, i;
clrscr();
int a[] = { 1, 4, -6, 12, -25, 10, 3, -4, 15, 7}, MAX, MIN, RESULT;
__asm{
mov cx, N
lea si, a
lodsw
mov bx, ax
mov dx, ax
dec cx }
m:
__asm{
lodsw
cmp dx, ax
jge m1
mov dx, ax
}
m1:
__asm{
loop m
mov MAX, dx
}
cout << "Max = " << MAX;
//cout << "Min = " << MIN;
getch();
}
Il est préférable de calculer le min dans la même boucle que vous calculez le maximum, c'est-à-dire, pour chaque élément, au moment où vous l'avez dans un registre, testez-le pendant min. Au label 'm1' semble le bon endroit. –
Merci de votre aide. J'ai compris l'algorithme, comment implémenter une telle vérification, mais malheureusement je ne suis pas capable d'écrire du code pour rendre ce code utilisable. – Alex