.386 DATA1 SEGMENT USE16 BUF DB 0AH,0DH, 'I WISH YOU SUCCESS!$' DATA1 ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA1 START: MOV AX,DATA1 MOV DS,AX MOV DL,31H MOV AH,2 INT 21H MOV AH,4CH INT 21H CODE ENDS END START
從DS段開始偏移DX,遇到‘$’字符結束
.386 DATA1 SEGMENT USE16 BUF DB 0AH,0DH, 'I WISH YOU SUCCESS!$' ;0AH,0DH回車換行 DATA1 ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA1 START: MOV AX,DATA1 MOV DS,AX LEA DX, BUF MOV AH, 9 INT 21H MOV AH,4CH INT 21H CODE ENDS END START
.386 DATA1 SEGMENT USE16 T1 DB 'abcdef' T2 DB 31H,32H,33H,'$',34H,35H DATA1 ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA1 START: MOV AX,DATA1 MOV DS,AX LEA DX,T1 MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS END START
輸出:abcdef123
.386 DATA1 SEGMENT USE16 T1 DB 'abcdef' T2 DB 31H,32H,33H,34H,35H,'$' DATA1 ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA1 START: MOV AX,DATA1 MOV DS,AX LEA DX,T1 MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS END START
輸出:abcdef12345
輸出:abcdef
10號調用
.386 DATA1 SEGMENT USE16 T1 DB 11 DB ? DB 11 DUP(0) T2 DB 31H,32H,33H,34H,35H,'$' DATA1 ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA1 START: MOV AX,DATA1 MOV DS,AX LEA DX,T1 MOV AH,10 INT 21H LEA DX,T1 MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS END START
輸入:1234567890
輸出:1234567890
.386 DATA1 SEGMENT USE16 T1 DB 10,5 dup(0); 10表示緩沖區最多能輸入是字符個數,還要減一 str DB 1,2,3 T2 DB 31H,32H,33H,34H,35H,'$' DATA1 ENDS CODE SEGMENT USE16 ASSUME CS:CODE,DS:DATA1 START: MOV AX,DATA1 MOV DS,AX LEA DX,T1 MOV AH,10 INT 21H LEA DX,T1 MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS END START
打開TD 調試
輸入:abcdefgi
OA后面的09表示9個,原來的1,2,3被覆蓋掉,相當於數組越界,到 0D 結束