资源描述
实验三 子程序设计实验
一、实验目的
1.掌握汇编语言源程序子程序设计方法;
2.会使用CV软件工具。
二、实验内容
编写子程序:判断三边能否构成三角形;
编写主程序:输入三边,调用子程序判断,若能,则输出“Y”,否则输出“N”。共判断10次。
实验代码如下:
.686
.model flat,stdcall
option casemap:none
include\masm32\include\windows.inc
include\masm32\include\kernel32.inc
includelib\masm32\lib\kernel32.lib
.data
szMsg1 db '请输入第一条边长:',0
szMsg2 db '请输入第二条边长:',0
szMsg3 db '请输入第三条边长:',0
szMsgY db 'Y',0
szMsgN db 'N',0
_insize dword 10
szInput dw 20 dup(0) ;将三条边存储于szInput里
szmsg db 13,10
_size dword 80
.code
start:
mov si ,10
.while si!=0
invoke GetStdHandle,STD_OUTPUT_HANDLE
mov ebx,eax
invoke WriteConsole,eax,offset szMsg1,sizeof szMsg1,offset _size,0
invoke GetStdHandle,STD_INPUT_HANDLE
invoke ReadConsole,eax,offset szInput,sizeof szInput,offset _insize,0
and szInput,000fh
invoke WriteConsole,ebx,offset szMsg2,sizeof szMsg2,offset _size,0
invoke GetStdHandle,STD_INPUT_HANDLE
invoke ReadConsole,eax,offset szInput+2,sizeof szInput+2,offset _insize,0
and szInput+2,000fh
invoke WriteConsole,ebx,offset szMsg3,sizeof szMsg3,offset _size,0
invoke GetStdHandle,STD_INPUT_HANDLE
invoke ReadConsole,eax,offset szInput+4,sizeof szInput+4,offset _insize,0
and szInput+4,000fh
dec si
call judge
.endw
invoke ExitProcess,0
judge proc
again:
mov ax ,szInput
mov bx,szInput+2
mov cx,szInput+4
add ax,bx
add bx,cx
add cx,szInput
.if ((ax>szInput+4)&& (bx>szInput)&&(cx>szInput+2))
invoke GetStdHandle,STD_OUTPUT_HANDLE
invoke WriteConsole,eax,offset szMsgY,sizeof szMsgY,offset _size,0
invoke GetStdHandle,STD_OUTPUT_HANDLE
invoke WriteConsole,eax,offset szmsg,sizeof szmsg,offset _size,0
.else
invoke GetStdHandle,STD_OUTPUT_HANDLE
invoke WriteConsole,eax,offset szMsgN,sizeof szMsgN,offset _size,0
invoke GetStdHandle,STD_OUTPUT_HANDLE
invoke WriteConsole,eax,offset szmsg,sizeof szmsg,offset _size,0
.endif
ret
judge endp
end start
程序运行结果如下:
三、实验要求
同实验二。
展开阅读全文