【汇编笔记】从键盘上输入一系列以$为结束符的字符串,然后对其中的字母字符计数,并显示出计数结果

5.11

从键盘上输入一系列以$为结束符的字符串,然后对其中的字母字符计数,并显示出计数结果

DATAS SEGMENT
    string db 100 dup('$')  
    line db 0dh,0ah,'$'
    count db 0
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    ;此处输入代码段代码
    lea si,string
    mov count,0
input:
	mov ah,1
	int 21h
	mov [si],al
	inc si
	cmp al,'$'
	jnz input
	
	lea si,string
next:
	mov cl,[si]
	inc si
	cmp cl,'$'
	jz disp
	cmp cl,'0'
	jb next
	cmp cl,'9'
	ja next
	inc count
	
disp:
	mov dx,0ah
	mov ah,02
	int 21h
	mov dx,0dh
	mov ah,02
	int 21h
	mov dx,si
	dec dx
	add dx,30h
	mov ah,2
	int 21h
	
	
    MOV AH,4CH
    INT 21H
    
    
CODES ENDS
    END START


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常感谢您的提问。不过作为一个智能语言模型,我并没有直接访问计算机硬件的能力,也不懂得汇编语言的语法。但是,我可以为您提供使用高级编程语言(如C++、Python等)实现该功能的提示和指导。 首先,您需要通过键盘输入一系列以$为结束符字符串。在C++中,您可以使用标准输入流对象std::cin来完成用户输入操作。例如: ``` #include<iostream> #include<string> using namespace std; int main() { string input_string; getline(cin, input_string, '$'); // 输入一系列以$为结束符字符串,并保存到input_string中 cout << "输入字符串为: " << input_string << endl; return 0; } ``` 接着,您需要对输入字符串中的非数字字符进行计数。您可以使用字符遍历的方式,扫描每一个字符,如果该字符不是数字,则对非数字计数器加1。例如: ``` #include<iostream> #include<string> using namespace std; int main() { string input_string; getline(cin, input_string, '$'); // 输入一系列以$为结束符字符串,并保存到input_string中 int non_digital_count = 0; // 非数字计数器 for (int i = 0; i < input_string.size(); i++) { if (!isdigit(input_string[i])) { // 如果该字符不是数字,则对非数字计数器加1 non_digital_count++; } } cout << "输入字符串中非数字字符的个数为: " << non_digital_count << endl; return 0; } ``` 最后,您可以将计数结果显示来。在C++中,您可以使用标准输流对象std::cout来输计数结果。 希望以上内容对您有所帮助。如有疑问或需要进一步协助,请随时与我联系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值