小弟的这两段代码在测试的时候总是提示 内存越界
希望哪位高手帮小弟看看~
谢谢了~
我的邮箱是fsj198389@163.com
急需!!!!!!!!!!!!!!!!!!!!!!
谢谢各位大虾了
1
;************************************************************
;输入一个字符串,判断其中A的个数,并输出.
;************************************************************
;************************************************************
DATA SEGMENT
STR DB 100
DB ?
DB 100 DUP(?)
STR1 DB 'PLEASE INPUT TEH STRING:','$'
STR2 DB 'THE NUMBER OF A IS:','$'
DATA ENDS
;************************************************************
;************************************************************
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET STR1
MOV AH,09H
INT 21H ;显示STR1
MOV DX,OFFSET STR
MOV AH,0AH
INT 21H ;输入字符串
MOV AL,STR+1
CBW
MOV CX,AX
XOR BL,BL ;BL做计数器
LEA SI STR+2
AGAIN:CMP BYTE PTR[SI],'A'
JE NEXT1
INC SI
BEC CX
JNZ AGAIN
NEXT1:INC SI
INC BL
DEC CX
JNZ AGAIN
MOV AH,02H
MOV DL,0AH
INT 21H ;回车
MOV DL,0DH
INT 21H ;换行
MOV DX,OFFSET STR2
MOV AH,09H
INT 21H ;显示STR2
2
DATA SEGMENT
BUFA DB 'ABCDEFGHIJKLMNO','$'
BUFB DB 'ABCDEFGHIJabcdefghij','$'
BUFC DB 15
DB ?
DB 15 DUP(?)
STR DB 'THE NUMBER CHARACTOR IS:','$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUFA
MOV AH,09H
INT 21H ;显示BUFA
MOV AH,02H
MOV DL,0AH
INT 21H
MOV DL,0DH
INT 21H ;回车换行
MOV DX,OFFSET BUFB
MOV AH,09H
INT 21H ;显示BUFB
MOV DX,OFFSET BUFC
MOV SI,OFFSET BUFA
MOV CX,15 ;CX做为一个计数器
AGAIN:MOV DI,OFFSET BUFB
MOV BX,20 ;BX做为一个计数器
MOV AL,[SI]
NEXT1:CMP AL,[DI]
JNE NEXT2
MOV [DX],AL
INC DX
NEXT2:INC DI
DEC BX
JNZ NEXT1
INC SI
LOOP AGAIN
MOV DX,OFFSET STR
MOV AH,09H
INT 21H ;显示STR
MOV DX,OFFSET BUFC
MOV AH,09H
INT 21H ;输出BUFC
CODE ENDS