汇编的问题 新手问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 07:02:44
AA1、BB1数组分别在数据段存放10个1位的十进制数据,编程序:(1)把AA1数组与BB1数组中下标为奇数的数对换,并显示出对换后的两数组来;(2)求出对换后两数组中各个的最大数,并用”MAX1=n1.”和”MAX2=n2“显示在屏幕上。

data segment ;交换两个数组中下标为奇数的元素,并输出交换后的两个数组的最大值
data1 db 1,2,3,4,5,9,6,7,8,0
data2 db 3,2,2,5,4,8,3,4,2,4
ech1 db "MAX1=$"
ech2 db "MAX2=$"
data ends
crlf macro ;宏汇编,换行、回车
mov ah,2
mov dl,0ah
int 21h
mov ah,2
mov dl,0dh
int 21h
endm

code segment
assume ds:data,cs:code
start:
mov ax,data
mov ds,ax
mov cx,5
lea si,data1
again:
mov al,[si]
xchg al,[si+10]
mov [si],al
inc si
inc si
loop again ;交换数组下标为奇数的数据

lea si,data1
call disp ;显示交换后第一个数组
crlf
lea di,data2 ;第二个
call disp
crlf

mov ah,9
lea dx,ech1
int 21h
lea si,data1
call max ;max为求出数组最大值的子程序(dl)
add dl,30h
mov ah,2
int 21h ;显示出MAX1=最大值

mov ah,9
lea dx,ech2
int 2