作业帮 > 综合 > 作业

试编程实现将内存中的若干个无符号字数据中的最大值和最小值找出来,并开辟独立的存储区域保存结果.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 19:17:26
试编程实现将内存中的若干个无符号字数据中的最大值和最小值找出来,并开辟独立的存储区域保存结果.
哪位大侠能把这个程序贴出来下 .
; 本程序通过编译,运行正确
Code Segment
Assume CS:Code,DS:Code
N equ 100 ;从100个无符号字数据中找出最大值和最小值
Maxium dw ?
Mixium dw ?
Start: push cs
pop ds ;使数据段与代码段同段
cld ;清方向标志,使变址寄存器增值
lea si,Start ;无符号字数据首地址
mov cx,N ;100个无符号字数据
lodsw ;读入第一个无符号字数据,作为最大值初值
mov bx,ax ;最小值初值
dec cx ;计数器减1,从下一个元素开始比较查找
Compare: cmp ax,[si] ;当前最大值与当前无符号字数据比较
jae $+4 ;当前最大值大于或等于当前无符号字数据,不更新最大值
mov ax,[si] ;当前最大值小于当前无符号字数据,更新最大值
cmp bx,[si] ;当前最小值与当前无符号字数据比较
jbe $+4 ;当前最大值小于或等于当前无符号字数据,不更新最小值
mov bx,[si] ;当前最小值大于当前无符号字数据,更新最小值
inc si
inc si
loop Compare
mov Maxium,ax ;保存找到的最大值
mov Mixium,ax ;保存找到的最小值
Exit_Proc: mov ah,4ch ;结束程序
int 21h
Code ENDS
END Start ;编译到此结束