有一字符串STRING,写出一程序统计字符串内空格字符的个数

如题所述

第1个回答  2013-11-11
data segment
string db 'King and 007'
n equ $-string
locknumber db ? ; 存放大写字母的个数
unlocknumber db ? ;存放小写字母的个数
number db ? ;存放数字的个数
blank db ? ;存放空格的个数
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax ;把DATA送到DS中
lea si,string ;把字符串的有效地址送到SI中
mov cx,n
next:
mov al,[si] ;取字母
cmp al,20h ;把取出的字符与空格比较
jnz nexts ;不相等则执行NEXTS
inc blank ;空格加1
jmp next1 ;跳到NEXT1处执行
nexts:
cmp al,30h ;把字符与0比较
jb next1 ;小于则跳往NEXT1
cmp al,39h ;把字符与9比较
ja nextd ;大于则执行NEXTD
inc number ;在NUMBER上家1
jmp next1 ;执行NEXT1
nextd:
cmp al,41h ;把字符与A比较
jb next1 ;小于则执行NEXT1
cmp al,5ah ;把字符与Z比较
ja nextx ;大于则执行NEXTX
inc locknumber ;在LOCKNUMBER上加1
jmp next1 ;跳往执行NEXT1
nextx:
cmp al,61h ;把字符与小写a比较
jb next1 ;小于则执行next1
cmp al,7ah ;把字符与z比较
ja next1 ;大于则执行NEXT1
inc unlocknumber ;在UNLOCKNUMBER 上加1
next1:
inc si ;取下一个字符
loop next; 循环执行NEXT

mov ah,4ch
int 21h
code ends
end start本回答被网友采纳
相似回答