c++ - 汇编程序任务 - 数组的最小值和最大值

标签 c++ algorithm assembly x86-16

我遇到过汇编代码问题。我是汇编程序的新手,所以我自己解决它似乎很难。

任务是:“找到数组的最小和最大元素。”

我所做的只是搜索最大元素。我找不到如何检查最小元素以及我应该在哪里进行此类验证。或者,也许我应该在找到最大元素后第二次遍历元素?

代码:

#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();
}

最佳答案

如果将“jge”替换为“jle”会怎样?试试看。

关于c++ - 汇编程序任务 - 数组的最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2101103/

相关文章:

c++ - 在现实生活中管理 char *

c++ - 是否可以为 void* 创建 shared_ptr?

c++ - 如何转义字符串以在 Boost Regex 中使用

assembly - "Hello, World"在 FreeBSD 11.2 上使用 nasm

assembly - 处理来自辅助 PIC : EOI order important? 的 x86 IRQ

c++ - 与函数指针转换相关的 lambda 对象的生命周期

javascript - 我在将 indexOf 转换为 for 循环时遇到问题,因此我得到了错误的答案

algorithm - 用于降尺度的双三次插值

python - 请指出我在此数据结构实现中的错误

assembly - 两个 16 位数字的 GCD(最大公约数)