汇编程序 先显示信息“INPUTSTRING,THE END FLAG IS $”再接收字符。如为0-9,则计数器加1,并显示计数,如为非数字,则直接显示,但不计数。
时间: 2024-02-25 10:51:32 浏览: 98
编写一个程序接受用户输入的字符。如果输入的字符是0-9数字中的一个,则显示“您输入了一个数字”,否则显示“这不是一个数字”。
下面是一个汇编程序的示例,可以实现您所描述的功能:
```
MOV AH, 09h ; 显示字符串
MOV DX, OFFSET INPUTSTRING
INT 21h
MOV CX, 0 ; 计数器清零
LOOP_START:
MOV AH, 01h ; 读入字符
INT 21h
CMP AL, '$' ; 如果读入的字符是结束符,则跳出循环
JE LOOP_END
CMP AL, '0' ; 如果读入的字符是数字
JB SKIP_COUNT
CMP AL, '9'
JA SKIP_COUNT
INC CX ; 计数器加1
MOV AH, 02h ; 显示数字
MOV DL, AL
INT 21h
JMP LOOP_START
SKIP_COUNT:
MOV AH, 02h ; 显示非数字字符
MOV DL, AL
INT 21h
JMP LOOP_START
LOOP_END:
; 显示计数器的值
MOV AH, 09h
MOV DX, OFFSET COUNTSTRING
INT 21h
MOV AH, 02h
MOV DL, '0'
ADD DL, CL ; 将计数器的值转换为字符
INT 21h
; 显示结束信息
MOV AH, 09h
MOV DX, OFFSET ENDSTRING
INT 21h
; 程序结束
MOV AH, 4Ch
INT 21h
INPUTSTRING DB 'INPUT STRING, THE END FLAG IS $', 0
ENDSTRING DB 'THE END', 0
COUNTSTRING DB 'COUNT: ', 0
```
在程序开始时,先显示输入提示信息。然后进入一个循环,在循环中读入字符,如果读入的字符是数字,则计数器加1,并显示计数器的值;如果不是数字,则直接显示。最后,显示结束信息并结束程序。
阅读全文