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

发布网友 发布时间:2022-04-23 12:57

我来回答

1个回答

热心网友 时间:2023-10-14 11:57

; 本程序通过编译,运行正确
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 ;编译到此结束

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com