【汇编语言实战】求两组给定数组最大值

简介: 【汇编语言实战】求两组给定数组最大值

C语言描述该程序流程:


#include <stdio.h>
int main()
{
  int arr1[]={11,33,23,542,12233,5443,267,456,234,453};
  int arr2[]={21,123,432,45,234,534,6517,678,879,1};
  int max=arr1[0];
  for(int i=1;i<10;i++)
  {
  if(arr1[i]>max)
  {
    max=arr1[i];
  }
  }
  printf("%d\n",max);
  max=arr2[0];
  for(int i=1;i<10;i++)
  {
  if(arr2[i]>max)
  {
    max=arr2[i];
  }
  }
  printf("%d",max);
}


汇编语言:


include irvine32.inc
.data
arr1 dword 11,33,23,542,12233,5443,267,456,234,453
arr2 dword 21,123,432,45,234,534,6517,678,879,1
num dword 9 ;需对比9次
.code
main proc
mov esi,offset arr1
mov eax,[esi] ;设第一个元素为最大值
findmax1:
cmp num,0 ;如果num为0,输出并开始找第二个数组的最大值
jz func
mov edx,[esi+4]
cmp eax,edx
jge nextnum1 ;如果该数不比eax大,就继续往下找
mov eax,edx
nextnum1:
add esi,4
dec num
jmp findmax1
func:
call writeint
mov esi,offset arr2
mov eax,[esi]
mov num,9
findmax2:
cmp num,0
jz output
mov edx,[esi+4]
cmp eax,edx
jge nextnum2
mov eax,edx
nextnum2:
add esi,4
dec num
jmp findmax2
output:
call writeint
main endp
end main


运行结果:

目录
相关文章
|
22天前
|
C语言
【汇编语言实战】实现九九乘法表
【汇编语言实战】实现九九乘法表
19 2
|
22天前
|
C语言
【汇编语言实战】实现输出集合{1,2,...,n}全排列
【汇编语言实战】实现输出集合{1,2,...,n}全排列
18 1
|
22天前
|
C语言
【汇编语言实战】给定一个句子,将大写字母变为小写
【汇编语言实战】给定一个句子,将大写字母变为小写
16 1
|
22天前
|
C语言
【汇编语言实战】最小公倍数和最大公约数
【汇编语言实战】最小公倍数和最大公约数
31 1
|
22天前
|
C语言
【汇编语言实战】二分查找
【汇编语言实战】二分查找
14 1
|
22天前
|
C语言
【汇编语言实战】正整数的素数分解
【汇编语言实战】正整数的素数分解
18 1
|
22天前
|
C语言
【汇编语言实战】输入一个无符号整数求其逆序
【汇编语言实战】输入一个无符号整数求其逆序
21 2
|
22天前
|
C语言
【汇编语言实战】两个32位数的相加运算
【汇编语言实战】两个32位数的相加运算
24 2
|
22天前
|
C语言
【汇编语言实战】八皇后问题
【汇编语言实战】八皇后问题
20 2
|
22天前
|
C语言
【汇编语言实战】解迷宫问题
【汇编语言实战】解迷宫问题
19 2