概述
//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
//素数
.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
;⑤数据段
fmt BYTE '%d',0
;定义变量
fmt2 BYTE '%s',0
;定义变量
n DWORD 0
s1 BYTE '是素数',0
s2 BYTE '不是素数',0
.code
;⑥代码段
;*【*/
fun PROC t:DWORD
MOV ECX,2
.while ECX < t
CDQ
MOV EAX,t
IDIV ECX
.IF EDX == 0
invoke printf,ADDR s2
RET
.ENDIF
INC ECX
.endw
invoke printf,ADDR s1
RET
fun ENDP
;*】*/
start:
;定义标号start
invoke scanf,ADDR fmt,ADDR n ;输入n的值
invoke fun,n
invoke ExitProcess,0
;退出进程,返回值为0
end start
;指明程序入口点start
// strcat
.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
;⑤数据段
fmt1 BYTE '%s %s',0 ;定义变量
fmt2 BYTE '%s',0
s1 BYTE 80 Dup(0)
s2 BYTE 80 Dup(0)
.code
;⑥代码段
;*【*/
strcat PROC s_1:DWORD,s_2:DWORD
MOV EBX,s_1
MOV EDX,s_2
MOV ECX,0
.while AL != 0
INC ECX
MOV AL,[EBX+ECX]
.endw
MOV AL,[EDX]
DEC ECX
.while AL != 0
MOV AL,[EDX]
MOV [EBX+ECX],AL
INC EDX
INC ECX
.endw
RET
strcat ENDP
;*】*/
start:
;定义标号start
invoke scanf,ADDR fmt1,ADDR s1,ADDR s2
invoke strcat,ADDR s1,ADDR s2 ;求s2串连接到s1串
invoke printf,ADDR fmt2,ADDR s1;输出
invoke ExitProcess,0
;退出进程,返回值为0
end start
;指明程序入口点start
**
//MinN
**
.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
;⑥代码段
;*【*/
MinN PROC s:DWORD,n:DWORD
;LOCAL max:DWORD
MOV EAX,n
SUB EAX,1
MOV n,EAX
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
MinN 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 MinN,ADDR a,ESI
;求a数组和通过EAX返回
invoke printf,ADDR Outfmt,EAX;输出结果
invoke ExitProcess,0
;退出进程,返回值为0
end start
;指明程序入口点start
//strcpy
.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
;⑤数据段
fmt BYTE '%s',0
;定义变量
s1 BYTE 80 Dup(0)
s2 BYTE 80 Dup(0)
.code
;⑥代码段
;*【*/
strcpy PROC s_1:DWORD,s_2:DWORD
MOV EBX,s_2
MOV EAX,s_1
MOV ESI,0
MOV ECX,[EBX+ESI]
.while
ECX != 0
MOV ECX,[EBX+ESI]
MOV [EAX+ESI],ECX
INC ESI
.endw
RET
strcpy ENDP
;*】*/
start:
;定义标号start
invoke scanf,ADDR fmt,ADDR s2 ;输入s2的值
invoke strcpy,ADDR s1,ADDR s2 ;求s2串拷贝到s1串
invoke printf,ADDR fmt,ADDR s1 ;输出
invoke ExitProcess,0
;退出进程,返回值为0
end start
;指明程序入口点start
最后
以上就是悲凉砖头为你收集整理的win32汇编以.386指令的MASM32题目做题记录 -- 子程序的全部内容,希望文章能够帮你解决win32汇编以.386指令的MASM32题目做题记录 -- 子程序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复