DATA SEGMENT
in_string db 30, ? 加上这行
STRING DB 30 DUP('#') 填满结束符
NUM DB 30 DUP(?)
BCHAR DB 30 DUP(?)
LCHAR DB 30 DUP(?)
OTHER DB 30 DUP(?)
DATA ENDS
CODE SEGMENT
START:
MOV AX, DATA
MOV DS, AX
lea dx, in_string 加上这三行
mov ah, 10
int 21h
MOV BX, 0
MOV CX, 0
MOV DX, 0
MOV BP, 0
LEA SI, STRING
NEXT:
MOV AL, [SI]
CMP AL, '#'
JE EXIT
CMP AL, '0'
JB OTHERLETTER
CMP AL, '9'
JA NOTNUM
MOV DI, BX
MOV NUM[DI], AL
INC BX
JMP ONCEDONE
NOTNUM:
CMP AL, 'A'
JB OTHERLETTER
CMP AL, 'Z'
JA NOTBLETTER
MOV DI, CX
MOV BCHAR[DI], AL
INC CX
JMP ONCEDONE
NOTBLETTER:
CMP AL, 'a'
JB OTHERLETTER
CMP AL, 'z'
JA OTHERLETTER
MOV DI, DX
MOV LCHAR[DI], AL
INC DX
JMP ONCEDONE
OTHERLETTER:
MOV DI, BP
MOV OTHER[DI], AL
INC BP
ONCEDONE:
INC SI
JMP NEXT
EXIT:
MOV AH, 4CH
INT 21H
CODE ENDS
END START
大写的,是原来的程序。
小写的,是为你增加的。
加上后,即有了输入字符串功能。
1、新建项目,做好准备。
2、数码管段选表。
3、延时函数。
4、uchar i变量i;wk = 1打开位选,P0 = 0xf71111 0111第4位数码管显示,wk = 0关闭位选。
5、while(1) //死循环效果{} 。
6、dk = 1//打开段选,P0 = leddata[i],dk = 0//关闭段选,delay(100)//延时效果。
7、选择效果,限制i值的循环范围。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)