编写一个程序,将一个包含有 30 个字数据的数组 M 分成两个数组:奇数数组 ODD 和偶数数组 EVEN, 并把这两个数组中元素的个数以二进制形式显示出来(不能使用 DIV/IDIV 指令)。

编写一个程序,将一个包含有 30 个字数据的数组 M 分成两个数组:奇数数组 ODD 和偶数数组 EVEN,并把这两个数组中元素的个数以二进制形式显示出来(不能使用 DIV/IDIV 指令)。

DATA SEGMENT
    M DW 1,2,3,4,5,6,7,8,9,10,5 DUP(25),5 DUP(13),5 DUP(8),5 DUP(100)
    ODD DW 30 DUP(?)
    EVER DW 30 DUP(?)
DATA ENDS 	 

STACK SEGMENT STACK
      DW 10 DUP(?)
TOP LABEL WORD
STACK ENDS

CODE SEGMENT
   ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA 
MAIN PROC FAR
     MOV AX,STACK
	 MOV SS,AX
	 LEA SP,TOP
	 MOV AX,DATA
	 MOV DS,AX
	 MOV ES,AX 
	 MOV CX,30
	 MOV DX,0 
	 LEA SI,M
	 LEA BX,ODD
	 LEA DI,EVER 
	 CLD 
 L1:LODSW 
    TEST AX,1
	JZ L2 
    MOV [BX],AX
	ADD BX,2
	INC DX     ;奇数
	JMP L3 
 L2:STOSW
 L3:LOOP L1  
	MOV BX,30
    SUB BX,DX  ;偶数 
	MOV SI,DX  ;奇数
	MOV CX,16
 L4:ROL SI,1
    TEST SI,1
	JZ L5 
	MOV DL,31H
	MOV AH,2
	INT 21H
	JMP L6 
 L5:MOV DL,30H
	MOV AH,2
	INT 21H
 L6:LOOP L4 
    MOV DL,0DH
	MOV AH,2
	INT 21H
	MOV DL,0AH
	MOV AH,2
	INT 21H
    MOV SI,BX
	MOV CX,16
 L7:ROL SI,1
    TEST SI,1
	JZ L8 
	MOV DL,31H
	MOV AH,2
	INT 21H
	JMP L9 
 L8:MOV DL,30H
	MOV AH,2
	INT 21H
 L9:LOOP L7 
    MOV AH,4CH
	INT 21
MAIN ENDP
CODE ENDS
     END MAIN 
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值