1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| .MODEL SMALL
.STACK 200h
.DATA
msg1 DB 'The Total No. Of Words are: ','$'
msg2 DB 0AH,0DH,' The Words are:',0DH,0AH,' $'
chaine DB 'je veux tester','$'
ACT DB ?
NXLN DB 0AH,0DH,' $'
DOT DB '- $'
DIVS DB 0AH
TEMP DB 02 DUP (?)
.code
start:
MOV AX,@DATA
MOV DS,AX
MOV ES,AX
MOV AH,06H
MOV AL,00
MOV BH,17H ;White on Blue
MOV CX,050AH
MOV DH,20
MOV DL,70
INT 10H
MOV AH,02
MOV BH,00H
MOV DX,050AH
INT 10H
MOV BX,01
MOV CH,00
MOV CL,ACT
MOV DI,OFFSET chaine
ADD DI,CX
MOV [DI],'$'
Agn: CMP [DI],' '
JNE Skip
INC BL
MOV [DI],'$'
PUSH DI
Skip: DEC DI
LOOP Agn
LEA DX,msg1
MOV AH,09H
INT 21H
MOV CL,BL
CALL DISPBX
MOV BX,01H
MOV AH,09H
MOV DX,OFFSET msg2
INT 21H
PUSH OFFSET ACT
Redisp:
LEA DX,NXLN
INT 21H
MOV DX,OFFSET DOT
POP DX
INC DX
INT 21H
INC BX
LOOP Redisp
MOV AX,4C00H
INT 21H
DISPBX PROC
MOV AX,BX
MOV SI,00
Rediv: DIV DIVS
MOV TEMP[SI],AH
MOV AH,00
INC SI
TEST AL,0FFH
JNZ Rediv
MOV AH,02
Nextdgt: DEC SI
MOV DL,TEMP[SI]
ADD DL,30H
INT 21H
TEST SI,0FFFH
JNE Nextdgt
RET
DISPBX ENDP
INT 21H |
Partager