彙編語言上機2.3
編寫一程式使其實作将1個包含有20個資料的數組M分成兩個數組:正數數組P和負數數組N,并分别把兩個數組顯示出來。
代碼
DATAS SEGMENT ;此處輸入資料段代碼
MARRAY DW ,,,,,-,-,-,-,-,-,,,,-,-,-,,,,'$'
PARRAY DW DUP(?)
NARRAY DW DUP(?)
str1 DB 'Positive numbers:$'
str2 DB 'Negative numbers:$'
DATAS ENDS
STACKS SEGMENT ;此處輸入堆棧段代碼
DW DUP(?)
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX ;此處輸入代碼段代碼
MOV DI, ;統計正數個數
MOV SI, ;統計負數個數
MOV BP,
AGAIN:
CMP BP,
JZ DISP
LEA BX,MARRAY[BP]
ADD BP,
MOV DX,[BX]
BIJIAO: CMP DX,
JG PARRAY1 ;大于跳轉
JL NARRAY1 ;小于跳轉
PARRAY1:
MOV AX,[BX]
MOV PARRAY[DI],AX
ADD DI,
JMP AGAIN
NARRAY1:
MOV AX,[BX]
MOV NARRAY[SI],AX
ADD SI,
JMP AGAIN
DISP:
MOV BP,
MOV AH, ;提示
LEA DX, str1
INT H
POSA1:
LEA BX,PARRAY[BP]
MOV AX,[BX]
ADD BP,
ADD AX,H
MOV DL,AL
MOV AH ,H;輸出正數
INT H
mov ah,;輸出空格
mov dl,
int h
CMP BP,DI
JNE POSA1
MOV AH, ;換行
MOV DX, AH
INT H
MOV AH, ;提示
LEA DX, str2
INT H
MOV BP,
NEG1:
MOV AH,;輸出負号
MOV DL,DH
INT H
LEA BX,NARRAY[BP]
MOV AX,[BX]
ADD BP,
NEG AX
ADD AX,H
MOV DX,AX
MOV AH ,H;輸出數字
INT H
mov ah,;輸出空格
mov dl,
int h
CMP BP,SI
JNE NEG1
MOV AH,CH
INT H
CODES ENDS
END START