//MaxN
.386 ;选择的处理器
.model flat, stdcall ;存储模型,Win32程序只能用平展(flat)模型
option casemap:none ;指明标识符大小写敏感
include kernel32.inc ;要引用的头文件
includelib kernel32.lib ;要引用的库文件
includelib msvcrt.lib ;引用C库文件
scanf PROTO C:DWORD,:vararg ;C语言scanf函数原型声明
printf PROTO C:DWORD,:vararg ;C语言printf函数原型声明
.data ;⑤数据段
Infmt BYTE '%d',0
Outfmt BYTE '最大值为%d',0
a DWORD 80 Dup(0) ;定义数组a
.code ;⑥代码段
;*【*/
MaxN PROC s:DWORD,n:DWORD
;LOCAL max:DWORD
MOV ESI,0
MOV EBX,s
MOV EAX,[EBX+ESI*4]
.while ESI < n
INC ESI
.IF EAX < [EBX+ESI*4]
MOV EAX,[EBX+ESI*4]
.ENDIF
.endw
RET
MaxN ENDP
;*】*/
start: ;定义标号start
mov ESI,0
invoke scanf,ADDR Infmt,ADDR a[ESI*4];输入a[i]的值
.while EAX==1
INC ESI
invoke scanf,ADDR Infmt,ADDR a[ESI*4];
.endw
invoke MaxN,ADDR a,ESI ;求a数组和通过EAX返回
invoke printf,ADDR Outfmt,EAX;输出结果
invoke ExitProcess,0 ;退出进程,返回值为0
end start ;指明程序入口点start
//素数