汇编调换两个数组的对应位

说明

有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
ARR DB 12,-15,0,126,-90,-5,68,120,1,-19
ARR2 DB 24,25,0,-38,89,99,68,100,2,-20
CNT EQU $-ARR
DATA ENDS
CODE SEGMENT
	ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
	  MOV DS,AX
	  MOV CX,CNT
	  MOV DI,0
	  MOV DL,'N'
LOP:  INC DI
      CMP DI,CNT-1
      JE EXIT
      CALL EXCH
EXIT2:
     MOV AH,02H
     INT 21H
     MOV AH,4CH
     INT 21H
EXCH  PROC NEAR
      MOV BH,ARR[DI]
      MOV BL,ARR2[DI]
      CMP BH,BL
      JNGE LOP2
      JMP LOP3
LOP2: MOV ARR[DI],BL
      MOV ARR2[DI],BH
      JMP LOP
LOP3: MOV ARR[DI],BH,
      MOV ARR2[DI],BL
      JMP LOP
EXCH ENDP
EXIT: MOV BH,ARR[4]
      MOV BL,ARR2[4]
      CMP BH,BL
      JG  EXIT3
      JMP EXIT2
EXIT3:
     MOV DL,'Y'
     JMP EXIT2
CODE ENDS
	 END START

时间仓促,未来得及细化 有时间会添加实验报告

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值