汇编语言——练习题5.2

 

题目:

将从键盘输入的N个有符号数保存到数组TAB ,找出N个有符号数中绝对值大于X的最小负奇数存放到Min单元,如果没有找到则Min单元存放0。在终端上显示Min的绝对值。

             TAB  DD   X1,……,XN

             X       DD   xx(无符号数,自己设定)

             Min    DD  

要求:1、求数据Min的功能用子程序实现

           2、画主程序及子程序流程图

                         3、熟练掌握综合程序设计方法


流程图:

 

 


 

INCLUDE irvine32.inc
.data
	TAB dd 10 dup(?)
	cnt dd 3
	X dd ?
	Min dd 0
	y dd 0
	two dd 2
.code

start :
	mov ecx,cnt
	call print
	call readint
	mov X,eax
	neg X  ;取反
	mov ecx,cnt
	xor esi,esi
	again:
		mov eax,TAB[esi*4]
		cmp eax,Min
		jge next
		;是负数且小于MIN,判断绝对值是否大于X
			cmp eax,X
			jge next
				mov y,eax
				neg eax
				xor edx,edx
				div two
					cmp dx,0
					je next
					mov eax,y
					mov Min,eax
	next:
		inc esi
		loop again
	mov eax,Min
	call writeint
	call crlf
	exit
	
print proc
	xor esi,esi
print_again:
	call readint
	mov TAB[esi*4],eax
	inc esi
	loop print_again
	ret
print endp
end start

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值