アセンブラ コードで問題が発生しました。私はアセンブラーの初心者なので、自分で解決するのは難しいようです。
タスクは、「配列の最小要素と最大要素を見つけること」です。
私がすでに行ったことは、最大要素を検索することだけです。最小限の要素をチェックする方法と、そのような検証をどこに置くべきかを見つけることができません。または、おそらく、最大要素を見つけた後、要素を2回ループする必要がありますか?
コード:
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
void main() {
int N = 10, i;
clrscr();
// on this platform, int is 16-bit
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();
}