用 8086 处理器 编写程序实现将包含20个数据的数组ARRAY分成两个数组:正数数组ARRAYP和负数数组 ARRAYN,并分别将这两个数组中数据的个数显示出来。
时间: 2023-06-08 08:09:17 浏览: 150
好的,我知道了。以下是用8086处理器编写的程序实现将包含20个数据的数组ARRAY分成正数数组ARRAYP和负数数组ARRAYN,并显示数据的个数。
```
DATA SEGMENT
ARRAY DB 12H, -13H, 0, 18H, -9H, 20H, 15H, -6H, -3H, 5H, 8H, -10H, -17H, 19H, -4H, 7H, -1H, -16H, 11H, 14H
ARRAYP DB 20 DUP (?)
ARRAYN DB 20 DUP (?)
COUNT1 DB 0
COUNT2 DB 0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA
MOV DS, AX
MOV BX, 0H
MOV CX, 20H
MOV SI, OFFSET ARRAY
LOOP1:
MOV AL, [SI]
CMP AL, 0
JS NEGATIVE
JMP POSITIVE
POSITIVE:
MOV [ARRAYP+BX], AL
INC COUNT1
INC BX
JMP CONTINUE
NEGATIVE:
MOV [ARRAYN+BX], AL
INC COUNT2
INC BX
CONTINUE:
INC SI
DEC CX
JNZ LOOP1
MOV AH, 09H
MOV DX, OFFSET MSG1
INT 21H
MOV DX, COUNT1
MOV AH, 02H
MOV DL, COUNT1
ADD DL, 30H
INT 21H
MOV AH, 09H
MOV DX, OFFSET MSG2
INT 21H
MOV DX, COUNT2
MOV AH, 02H
MOV DL, COUNT2
ADD DL, 30H
INT 21H
MOV AH, 4CH
INT 21H
MSG1 DB 0DH, 0AH, 'Positive Number Count: $'
MSG2 DB 0DH, 0AH, 'Negative Number Count: $'
CODE ENDS
END START
```
以上程序将包含20个数据的数组ARRAY分成正数数组ARRAYP和负数数组ARRAYN,并显示数据的个数。程序从偏移量ARRAY开始,将数据逐个遍历,通过判断数据符号,将数据分别存储到正数数组ARRAYP和负数数组ARRAYN中,同时统计正数和负数的个数,最后将结果显示出来。
阅读全文