📄 6-17.asm
字号:
;统计正数,负数,零的个数
DATA SEGMENT
DA_WORD DW -1,3,5,0,-5,-7,4,0,-7,0,4,6
CUNT1 DB $-DA_WORD
CUNT2 DB 0 ;存放正数个数
CUNT3 DB 0 ;存放零的个数
CUNT4 DB 0 ;存放负数的个数
STRING1 DB 'THE NUMBER OF PLUS IS:','$'
STRING2 DB 0AH,0DH,'THE NUMBER OF ZERO IS:','$'
STRING3 DB 0AH,0DH,'THE NUMBER OF NEGATIVE IS:','$'
BASE DB 30H
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 120H DUP(0)
STACK1 ENDS
COSEG SEGMENT
ASSUME CS:COSEG,DS:DATA,SS:STACK1
START: MOV AX,DATA
MOV DS,AX
XOR AX,AX
XOR BX,BX
XOR CX,CX
XOR DX,DX
LEA SI,DA_WORD
MOV CL,CUNT1
LOP: TEST WORD PTR DA_WORD[SI],0FFFFH
JE ZERO
TEST WORD PTR [SI],8000H
JE PLUS
INC DL;负数的个数
JMP NEXT
PLUS: INC DH ;正数个数
JMP NEXT
ZERO: INC CH ;零的个数
NEXT: INC SI
INC SI
DEC CL
DEC CL
JNE LOP
MOV CUNT2,DH ;存结果
MOV CUNT3,DL
MOV CUNT4,CH
MOV DX,OFFSET STRING1;显示
MOV AH,09H
INT 21H
MOV CL,CUNT2
ADD CL,BASE
MOV DL,CL
MOV AH,02H
INT 21H
MOV DX,OFFSET STRING2
MOV AH,09H
INT 21H
MOV CL,CUNT4
ADD CL,BASE
MOV DL,CL
MOV AH,02H
INT 21H
MOV DX,OFFSET STRING3
MOV AH,09H
INT 21H
MOV CL,CUNT3
ADD CL,BASE
MOV DL,CL
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
COSEG ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -