用汇编语言编制一程序,把二十B的数组分成正数组和负数组,并分别计算两个数组中数据的个数.希望能很快有人指点呀..
问题描述:
用汇编语言编制一程序,把二十B的数组分成正数组和负数组,并分别计算两个数组中数据的个数.
希望能很快有人指点呀..
答
;以下解答仅供参考,不保证全部正确,但基本思路的代码片段都有了
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