汇编程序,将一个包含有20个数据的数组M分成两组:正数数组P和负数数组N,并把两数组数据显示出来。

运用汇编语言写主要是写程序个数显示出来次要程序中要有这个部分... 运用汇编语言写
主要是写程序 个数显示出来次要程序中要有这个部分
展开
 我来答
小小玉爱生活
推荐于2017-11-23
知道答主
回答量:7
采纳率:0%
帮助的人:8290
展开全部
DSEG SEGMENT
COUNT EQU 20
ARRAY DW 20 DUP (?) ;;存放数组
COUNT1 DB 0 ;;存放正数的个数
ARRAY1 DW 20 DUP (?) ;;存放正数
COUNT2 DB 0 ;;存放负数的个数
ARRAY2 DW 20 DUP (?) ;;存放负数
ZHEN DB 0DH, 0AH, 'The positive number is:', '$' ;;正数的个数是:
FU DB 0DH, 0AH, 'The negative number is:', '$' ;;负数的个数是:
CRLF DB 0DH, 0AH, '$'
DSEG ENDS
;;--------------------------------------------------------------------------
CSEG SEGMENT
MAIN PROC FAR
ASSUME CS: CSEG, DS: DSEG
START: PUSH DS ;;设置返回DOS
SUB AX, AX
PUSH AX
MOV AX, DSEG
MOV DS, AX ;;给DS赋值

BEGIN: MOV CX, COUNT
LEA BX, ARRAY
LEA SI, ARRAY1
LEA DI, ARRAY2
BEGIN1: MOV AX, [BX]
CMP AX, 0 ;;是负数码?
JS FUSHU
MOV [SI], AX ;;是正数,存入正数数组
INC COUNT1 ;;正数个数+1
ADD SI, 2
JMP SHORT NEXT
FUSHU: MOV [DI], AX ;;是负数,存入负数数组
INC COUNT2 ;;负数个数+1
ADD DI, 2
NEXT: ADD BX, 2
LOOP BEGIN1
LEA DX, ZHEN ;;显示正数个数
MOV AL, COUNT1
CALL DISPLAY ;;调显示子程序
LEA DX, FU ; ;显示负数个数
MOV AL, COUNT2
CALL DISPLAY ;;调显示子程序
RET
MAIN ENDP
;;--------------------------------------------------------------------------
DISPLAY PROC NEAR ;;显示子程序
MOV AH, 9 ;;显示一个字符串的DOS调用
INT 21H
AAM ;;将(AL)中的二进制数转换为二个非压缩BCD码
ADD AH, '0' ;;变为0~9的ASCII码
MOV DL, AH
MOV AH, 2 ;;显示一个字符的DOS调用
INT 21H
ADD AL, '0' ;;变为0~9的ASCII码
MOV DL, AL
MOV AH, 2 ;;显示一个字符的DOS调用
INT 21H
LEA DX, CRLF ;;显示回车换行
MOV AH, 9 ;;显示一个字符串的DOS调用
INT 21H
RET
DISPLAY ENDP ;;显示子程序结束
CSEG ENDS ;;以上定义代码段
;;--------------------------------------------------------------------------
END START
honguo526
2010-11-05 · 超过22用户采纳过TA的回答
知道答主
回答量:105
采纳率:100%
帮助的人:44.4万
展开全部
呵呵 你用的是什么显示呀你的电路又是怎么说清点大家 才能帮你吗》?显示方式千千万,你的问题让大家无从下手。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式