將一個包含20個數據的數組M分爲兩個數組,正數組P和負數組N,分別將正負數組所包含的數據個數顯示出來

;將一個包含20個數據的數組M分爲兩個數組,正數組P和負數組N,
;分別將正負數組所包含的數據個數顯示出來
DATA SEGMENT
M    DB 5 DUP(-1,-2,-1,2)
P    DW 0
N    DW 0
P1   DB "P=$"
N1   DB 0AH,"N=$"
DATA ENDS

STACK SEGMENT PARA STACK
          DW 128 DUP(?)
TOP   LABEL WORD
STACK ENDS

CODE SEGMENT
           ASSUME CS:CODE,SS:STACK,DS:DATA
MAIN PROC FAR
START:
     MOV AX,DATA
     MOV DS,AX
     
     MOV AX,STACK
     MOV SS,AX
     LEA SP,TOP

     LEA SI,M
     MOV CX,20
L0: MOV AL,[SI]
     CMP AL,0
     JL  L1
     JG  L2
L1: INC N
     JMP L3
L2: INC P
     JMP L3
L3: INC SI
     LOOP L0
     
     MOV AH,9     ;計算機從鍵盤接收的是字符的ASCII碼,也是通過字符的ASCII碼
     LEA DX,P1    ;將字符顯示在屏幕上的
     INT 21H
 
     MOV AX,P     ;兩位數無法直接顯示,通過除10一位一位顯示
     MOV BL,10
     DIV BL
     
     MOV DL,AL     ;AL放商,AH放餘數,顯示時要加上30H才能將實際數顯示出來,
     ADD DL,30H    ;因爲計算機是通過ASCII碼顯示字符的
     MOV BH,AH     ;顯示P商
     MOV AH,2
     INT 21H


     MOV DL,BH     ;顯示P餘數
     ADD DL,30H
     MOV AH,2
     INT 21H


     MOV AH,9
     LEA DX,N1
     INT 21H
 
     MOV AX,N
     MOV BL,10
     DIV BL
     
     MOV DL,AL     ;顯示N商
     ADD DL,30H
     MOV BH,AH
     MOV AH,2
     INT 21H


     MOV DL,BH     ;顯示N餘數
     ADD DL,30H
     MOV AH,2
     INT 21H
 
     MOV AH,4CH
     INT 21H
CODE ENDS
MAIN ENDP
      END STAR
T  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章