FZU 汇编上机实验(五)综合程序设计

1.上机题目:将从键盘输入的 N 个无符号数保存到数
DAT ,找出 N 个无符号数中的偶数存放到数组 P
统计并在终端上显示数组 P 的数据个数 no 。打印输
p no
DAT word n dup (?)
P word n dup (?)
no word
要求: 1 、求偶数数组 P 的功能用子程序实现
2 、画主程序及子程序流程图
3 、熟练掌握综合程序设计方法
include Irvine32.inc
.data
	dat dword 5 dup (?)
	p dword 5 dup (?)
	no dword ?
.code
main proc
	call set
	call found
exit
main endp

set proc
	mov ecx,5
	mov esi,offset dat
	mov edi,0
make:
	call readint
	mov [esi+edi*4],eax
	inc edi
	loop make
	ret
exit
set endp
found proc
	mov ecx,5
	mov edi,0
	mov edx,0
	mov ebx,0
	mov esi,offset dat
check:	mov eax,[esi+edi*4]
		;call writeint
		test eax,1
		jz creat
		inc edi
		loop check
		cmp ecx,1
		jl output1
creat:	inc edi
		inc edx
		mov [p+ebx*4],eax
		call writeint
		inc ebx
		loop check
output1: 
		mov eax,edx
		mov dword ptr no,eax
        call crlf
		call writeint
	exit
found endp
end main
2 、上机题目:将从键盘输入的 N 个有符号数保存到数
TAB ,找出 N 个有符号数中绝对值大于 X 的最小
负奇数存放到 Min 单元,如果没有找到则 Min 单元
存放 0 。在终端上显示 Min 的绝对值。
TAB Dword n dup(?)
X Dword xx( 无符号数,自己设定)
Min Dword
要求: 1 、求数据 Min 的功能用子程序实现
2 、画主程序及子程序流程图
3 、熟练掌握综合程序设计方法
include Irvine32.inc
.data
	tab dword 5 dup (?)
	x dword 3 
	min dword ?
.code
main proc
	call set
	call found
exit
main endp

set proc
	mov ecx,5
	mov esi,offset tab
	mov edi,0
make:
	call readint
	mov [esi+edi*4],eax
	inc edi
	loop make
	ret
exit
set endp
found proc
	mov ecx,5
	mov esi,offset tab
	mov edi,-1
	mov ebx,0
check1:
	inc edi
	cmp ecx,1
	jl check5
	dec ecx
	mov eax,[esi+edi*4]
	cmp eax,0
	jl zh
	jmp check1
zh:
	neg eax
	jmp check2
check2:
	cmp eax,x
	jg check3
	jmp	check1
check3:
	test eax,1
	jg check4
	jmp check1
check4:
	inc ebx
	cmp ebx,1
	je first
	mov edx,min
	cmp eax,edx
	jg get
	jmp check1
get:
	mov min,eax
	jmp check1
first:
	mov min,eax
	jmp check1
check5:
	cmp edx,0
	jg sc
	mov eax,0
	mov min,eax
sc:
	mov eax,min
	call writeint
	exit
found endp
end main

  • 13
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值