【汇编 题目】28 一个有符号字数组以0为结束标志,编程求这个数组的最大值、 最小值、平均值

这篇博客介绍了如何使用汇编语言处理一个以0为结束标志的有符号字数组,找出数组中的最大值、最小值,并计算平均值。在求平均值的过程中,需要注意初始化变量、消除符号位对进位的影响、使用有符号除法以及更新计算过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意事项

主要注意求平均数的模块,在此模块中有几点要注意:
(1)初始化定义di=0,cx=1,dx=0,三者分别存负数的个数,数的总数,及进位的累加
(2)在最后,因为利用idiv指令要进行有符号扩展,因此要进行dx-di,消除有符号数符号位对进位的影响,
(3)利用有符号除法idiv cx,得到存在ax中的商,将其移入ave中。(idiv指令详解
(4)注意对si进行更新

代码

;一个有符号字数组以0为结束标志,
;编程求这个数组的最大值、 最小值、平均值

DATAS SEGMENT
    ;此处输入数据段代码  
    buf dw 100,-120,50,0
    max dw 0
    min dw 0
    ave dw 0
    buf1 db 'The maximum number is: ','$'
    buf2 db 0ah,'The minimum number is: ','$'
    buf3 db 0ah,'The average number is: ','$'
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
main proc far
    MOV AX,DATAS
    MOV DS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

neuralink

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值