首页 > 留学知识库

问题: 汇编高手帮忙啊,急急急!!!

问题:AA1、BB1数组分别在数据段存放10个1位的十进制数据,编程序:(1)把AA1数组与BB1数组中下标为奇数的数对换,并显示出对换后的两数组来;(2)求出对换后两数组中各个的最大数,并用”MAX1=n1.”和”MAX2=n2“显示在屏幕上。

男生在这方面应该比较在行吧,实在是什么都不会啊,却只有几分了,但是小女子将会非常感谢的啊!

解答:

data segment
aa1 db '0123456789'
org 0010h
bb1 db '1234567890'
org 0020h
mess1 db 'max1=','$'
mess2 db 'max2=','$'
data ends
codes segment
main proc far
assume cs:codes,ds:data
start:
push ds
sub ax,ax
push ax
mov ax,data
mov ds,ax
mov bx,1
mov cx,5

go:
mov al,aa1[bx]
xchg al,bb1[bx]
mov aa1[bx],al
add bx,2
loop go

mov si,0
mov di,0
mov cx,10
lea si,aa1
lea di,bb1
print:
mov dl,[si]
mov ah,02
int 21h
inc si
mov dl,[di]
mov ah,02
int 21h
inc di
loop print

mov si,0
mov di,0
mov cx,9
mov al,aa1[si]
mov bl,bb1[di]
next:
cmp al,aa1[si+1]
ja skip1
mov al,aa1[si+1]
skip1:
inc si
cmp bl,bb1[di+1]
ja skip2
mov bl,bb1[di+1]
skip2:
inc di
loop next
lea dx,mess1
mov ah,09
int 21h
mov dl,al
mov ah,02
int 21h
lea dx,mess2
mov ah,09
int 21h
mov dl,bl
mov ah,02
int 21h

mov ah,4ch
int 21h
main endp
codes ends
end start