data segment
a db 1,3,5,7,9,11,13,15,17,19
b db 2,4,6,8,10,12,14,16,18,20
c 100 dup(?)
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
mov ax, data
mov ds, ax
mov es, ax
mov si,0
mov di,0
mov bx,0
lop1:
cmp bx,20 ;看c这个数组是不是满的,满了就停止
jz stop
cmp si,10 ;a如果都放完了,就把b剩下的放到c中
jz b_in_c
cmp di,10 ;b如果都放完了,就把a剩下的放到c中
jz a_in_c
mov al,a[si]
cmp al,b[di] ;a跟b一个个比较
jb a_in_c ;a和b比较,如果a小就把a中放到c中
jmp b_in_c ;b小就把b放进去
a_in_c: mov al,a[si]
inc si ;往后移动一位
mov c[bx],al ;放进c中
inc bx ;放完了c往后移动一位
jmp lop1 ;重复操作
b_in_c:
mov al,b[di]
inc di
mov c[bx],al
inc bx
jmp lop1
stop:
lea dx, c ;输出
mov ah, 9
int 21h
mov ah, 1
int 21h
mov ax, 4c00h
int 21h
ends
end start