程序需求:编程写一个完整的程序统计字符串msg中空格的个数与小写字母的个数,并分别将它们存入space单元与lowercase单元中并输出。
编程思路:汇编中使用eax来统计空格数量,ebx来统计小写字母数量,对字符数组的访问采用间接寻址,esi的值为字符数组的首地址。ecx的值为字符数组中字符的数量。
开发环境
Win10 + VS2017
C语言代码实现如下:
#include <stdio.h>
#include <string.h>
char msg[] = "Hello World!";
int main()
{
int space = 0;
int lowercase = 0;
for (int i = 0; i < strlen(msg); i++)
{
if (msg[i] >= 'a' && msg[i] <= 'z')
lowercase++;
if (msg[i] == ' ')
space++;
}
printf("space number: %d lowercase number: %d\n", space, lowercase);
return 0;
}
汇编语言代码实现如下:
INCLUDELIB kernel32.lib
INCLUDELIB ucrt.lib
INCLUDELIB legacy_stdio_definitions.lib
.386
.model flat,s