回 帖 发 新 帖 刷新版面

主题:[求助]我无法解决

(用汇编)编写一个程序,将一个包含有20个有符号数据的数组arrayM分成两个数组:正数数组arrayP和负数数组arrayN,并分别把这两个数组中的数据个数显示出来.

我自己无法解决,帮帮忙了,谢谢大家了! 

DATA SEGMENT 
NUM DB 1,2,...,20 ;这个你随便写20个字节的数据 
P DB 20 DUP(?) ;正数组 
PNUM DB 0 ;正计数 
N DB 20 DUP(?) ;负数组 
NNUM DB 0 
DATA ENDS 
CODE SEGMENT 
ASSUME CS:CODE,DS:DATA 
MAIN PROC FAR 
START: PUSH DS 
MOV AX,0 
PUSH AX 
MOV AX,DATA 
MOV DS,AX ;初始化完毕 
MOV BX,0 
MOV SI,BX 
MOV DI,BX 
MOV CX,20 ;设置相关参数 
LOP1: MOV AL,NUM [BX] ;取原始数组元素 
CMP AL,0 
JGE P1 ;为正则转P1 
MOV N [DI],AL 
INC DI 
INC NNUM ;负数组增加,计数变化 
JMP NEXT 
P1: MOV P [SI],AL 
INC SI ;正数组增加,计数变化 
INC PNUM 
NEXT: INC BX ;原始数组指针偏移 
LOOP LOP1 ;循环20次--CX 
RET ;结束 
MAIN ENDP 
CODE ENDS 
END START 

回复列表 (共1个回复)

沙发

要显示结果
把数组中的元素 转换成asc 2码后,
调用中断输出

我来回复

您尚未登录,请登录后再回复。点此登录或注册