公告

Gentoo交流群:838664909 欢迎您的加入

#1 2022-08-25 14:05:32

batsom
管理团队
注册时间: 2022-08-03
帖子: 607
个人网站

比较数组对应位并分大小存放

题目描述
有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

离线

页脚

Powered by FluxBB

本站由XREA提供空间支持