我的代码:
DATA SEGMENT
BUF DB 256 DUP(?)
COUNT EQU $-BUF
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START: MOV AX,DATA
MOV DS,AX
MOV SI,OFFSET BUF
MOV CX,COUNT
MOV AL,00H
NEXT1: MOV [SI],AL
INC AL
INC SI
LOOP NEXT1
MOV SI,OFFSET BUF
MOV CX,COUNT
MOV BL,10H
SHOW_ROW:MOV DL,[SI]
MOV AH,2
INT 21H
MOV DL,0
MOV AH,2
INT 21H
INC SI
DEC BL
JZ CRLF
LOOP SHOW_ROW
CRLF: MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
MOV BL,10H
CMP CX,0
JNZ SHOW_ROW
JZ EXIT
EXIT: RET
CODE ENDS
END START
运行结果:
谢谢,知道我是哪错了吗?我把EXIT:RET改成了EXIT:MOV AX,4C00H INT 21H
运行结果:
你的程序:
……
LOOP SHOW_ROW
CRLF:
MOV DL, 0DH
MOV AH, 2
INT 21H
MOV DL, 0AH
MOV AH, 2
INT 21H
MOV BL, 10H
; CMP CX, 0-----删除
; JNZ SHOW_ROW--删除
; JZ EXIT------删除
LOOP SHOW_ROW;----改成这行
EXIT:
; RET--------删除
MOV AH, 4CH;------改成这两行
INT 21H
CODE ENDS
END START
即可。
这样改了以后和你提供的代码差不多了,但显示还是有问题的说~怎么有这么多问号。。
改过之后,显示,在我这里,就没有问题了。
你显示出来这么多问号,显然是你的操作系统的问题。
你最后追问时插图,和你开始提问时的插图,比较一下,
两次所用的DOS系统,应该是不同的。
你开始提问时的插图,这个是可以的。
后来追问的,像是汉字系统。