3. 编写一程序使其实现将1个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,

1.编写一程序使其实现将1个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把两个数组显示出来。... 1. 编写一程序使其实现将1个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把两个数组显示出来。 展开
 我来答
犄角旮旯村王祖贤
2014-01-03
知道答主
回答量:52
采纳率:0%
帮助的人:20.7万
展开全部
答:程序如下:
DSEGSEGMENT
COUNTEQU 20
ARRAYDW 20 DUP (?);存放数组
COUNT1DB 0;存放正数的个数
ARRAY1DW 20 DUP (?);存放正数
COUNT2DB 0;存放负数的个数
ARRAY2DW 20 DUP (?);存放负数
ZHENDB 0DH, 0AH, ‘The positive number is:’, ‘$’;正数的个数是:
FUDB 0DH, 0AH, ‘The negative number is:’, ‘$’ ;负数的个数是:
CRLFDB 0DH, 0AH, ‘$’
DSEGENDS
;--------------------------------------------------------------------------
CSEGSEGMENT
MAINPROCFAR
ASSUME CS: CSEG, DS: DSEG
START:PUSHDS;设置返回DOS
SUBAX, AX
PUSHAX
MOVAX, DSEG
MOVDS, AX;给DS赋值

BEGIN:MOVCX, COUNT
LEABX, ARRAY
LEASI, ARRAY1
LEADI, ARRAY2
BEGIN1:MOVAX, [BX]
CMPAX, 0;是负数码?
JSFUSHU
MOV[SI], AX;是正数,存入正数数组
INCCOUNT1;正数个数+1
ADDSI, 2
JMPSHORT NEXT
FUSHU:MOV[DI], AX;是负数,存入负数数组
INCCOUNT2;负数个数+1
ADDDI, 2
NEXT:ADDBX, 2
LOOPBEGIN1
LEADX, ZHEN;显示正数个数
MOVAL, COUNT1
CALLDISPLAY;调显示子程序
LEADX, FU;显示负数个数
MOVAL, COUNT2
CALLDISPLAY;调显示子程序
RET
MAINENDP
;--------------------------------------------------------------------------
DISPLAYPROCNEAR;显示子程序
MOVAH, 9;显示一个字符串的DOS调用
INT21H
AAM;将(AL)中的二进制数转换为二个非压缩BCD码
ADDAH, ‘0’;变为0~9的ASCII码
MOVDL, AH
MOVAH, 2;显示一个字符的DOS调用
INT21H
ADDAL, ‘0’;变为0~9的ASCII码
MOVDL, AL
MOVAH, 2;显示一个字符的DOS调用
INT21H
LEADX, CRLF;显示回车换行
MOVAH, 9;显示一个字符串的DOS调用
INT21H
RET
DISPLAYENDP;显示子程序结束
CSEGENDS;以上定义代码段
;--------------------------------------------------------------------------
ENDSTART
cooke1234
2013-04-07 · TA获得超过6862个赞
知道大有可为答主
回答量:4617
采纳率:72%
帮助的人:3969万
展开全部
汇编写数组,难度大了。
追问
那用c写吧。。。
追答
#include 

#define N 20
main()
{
int n[N] = {1,2,3,4,-5,6,7,-8,9,0,1,2,3,-4,5,6,7,8,9,0};
int z[N], f[N], zcount=0,fcount=0, i;
for(i=0; i0){z[zcount]=n[i];zcount++;}
else if(n[i]<0){f[fcount]=n[i];fcount++;}
}
printf("\nzhengshu : ");
for(i=0; i<zcount; i++)
printf("%d ", z[i]);
printf("\nfushu : ");
for(i=0; i<fcount; i++)
printf("%d ", f[i]);
printf("\n");
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式