子程序设计!!汇编程序!!!实验急用!!!

来源:百度知道 编辑:UC知道 时间:2024/04/28 04:03:35
求无符号字节序列中的最大值和最小值.设字节序列的首地址为0000:3000H,序列共8个字节长.要求用子程序实现(名为MYSUBI),其入口参数:DS:SI=字节序列的首地址,CX=长度;出口参数:DH=最大值,DL=最小值.
设计思路:用循环的方法依次比较序列中的所有值.
算法:先保存入口参数,初始DH和DL等于序列中的第一个值.然后采用FOR循环结构,依次将序列的每一个值分别与DH和DL比较,当DH大时,则替换DH;当发现比DL小时,则替换DL.最后恢复入口参数并返回.

data segment at 0h
org 3000h
buf db 2,3,5,8,9,10,40,90
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov si,offset buf
mov cx,8
call mysub
mov ah,4ch
int 21h

mysub proc
push si
push cx
mov dh,[si]
mov dl,dh
dec cx
next:
inc si
cmp dh,[si]
jnb bdy
mov dh,[si]
jmp next1
bdy:
cmp dl,[si]
jna next1
mov dl,[si]
next1:
loop next
pop cx
pop si
ret
mysub endp

code ends
end start

#include<stdio.h>
void main()
{

char a,b;
a='my';b='name';
putchar(a);putchar(b);putchar('\n');

做的匆忙,细节还要你自己修改一下:)
第一题
datarea segment

arr db 1,-2,3,0,60,-30,45,52,90,70
len dw 10 ;length of arr

positive db 10 dup(?) ;>0

c1 dw ?