页次: 1
题目描述
有2个数组:
ary1 db 12,-35,0,126,-90,-5,68,120,1,-19
ary2 db 24,25,0,-38,-89,99,68,100,2,-20
比较两个数组的对应位,将大的数放在ary1数组中,小的数放在ary2中(要求采用子程序格式)
DATA SEGMENT
ARY1 DB 12,-35,0,126,-90,-5,68,120,1,-19
ARY2 DB 24,25,0,-38,-89,99,68,100,2,-20
LEN EQU $-ARY2
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET ARY1 ;SI作为ARY1指针
MOV DI,OFFSET ARY2 ;DI作为ARY2指针
LOP:MOV AL,[SI]
CMP AL,[DI] ;比较ARY1与ARY2中对应位置的值
JG NEXT ;若ARY1中值大直接跳转,进入下一步,否则需要交换
CALL FUN ;调用子程序进行两数组中值交换
NEXT:INC SI
INC DI ;指针后移
CMP SI,LEN
JNZ LOP ;若SI没到最后则跳转
MOV AH,4CH
INT 21H
FUN:MOV BL,[DI] ;子程序,用于交换两数组中的值
MOV [DI],AL
MOV [SI],BL
RET
CODE ENDS
END START
离线
页次: 1