求助,输出ASCII码问题
下面是我的程序,可怎么输出的都是!"#$%&'()*+,-./
!"#$%&'()*+,-./
!"#$%&'()*+,-./
!"#$%&'()*+,-./
!"#$%&'()*+,-./
......重复16次
到底什么地方错了?
为什么每次循环的时候AL就会恢复成0?
要怎么改?
DATAS SEGMENT
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV CL,0 ;行,外层循环
MOV CH,0 ;列,内层循环
MOV AL,0 ;ASCII码
LOOPA:
CMP CL,16
JE EXIT
MOV DL,0AH
MOV AH,2
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
LOOPB:
CMP CH,16
JE NEXTB
CMP AL,' '
JG OUTPUT
MOV AL,32
OUTPUT:
MOV DL,AL
MOV AH,2
INT 21H
INC AL
inc CH
JMP LOOPB
NEXTB:
MOV CH,0
INC CL
NEXTA: JMP LOOPA
EXIT:
MOV AH,4CH
INT 21H
CODES ENDS
END START
C语言描述
#include "stdio.h"
void main()
{
int i,j,k=0;
for(i=0;i<16;i++)
{
printf("\n");
for(j=0;j<16;j++){
if(k<=32) printf(" ");
else
printf(" %c",k);
k++;
}
}
}
[[italic] 本帖最后由 三断笛 于 2007-12-4 12:49 编辑 [/italic]]