vs2017环境使用汇编语言实现分别统计字符串中空格和小写字母的个数
伪代码描述
space = lowercase = 0;
for i = 0 to n - 1 do
if a[i] == ' ' then space++
if('a' <= a[i] && a[i] <= 'z') then lowercase++;
汇编代码实现
include vcIO.inc
.data
msg byte "hello, WORLD", 10, 0
space dword ?
lowercase dword ?
frmStr byte "space num = %d, lowercase num = %d", 10, 0
.code
main proc
mov ecx, lengthof msg
mov esi, offset msg
sub eax, eax
mov ebx, eax
again:
mov dl, [esi]
cmp dl, ' '
jnz letter
inc eax
letter:
cmp dl, 'a'
jb next ;if str[i] < 'a', jump to next
cmp dl, 'z'
jg next ;if str[i] > 'z', jump to next
inc ebx
next:
inc esi
loop again
pushad
invoke printf, offset frmStr, eax, ebx
popad
ret
main endp
end main
实验结果
