您的位置:首页 > 其它

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

2019-07-10 11:11 337 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_43416343/article/details/95317114

编写一个程序,将一个包含有 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐