|
- .版本 2
- .支持库 spec
- .程序集 程序集1
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
- 调试输出 (逻辑型数组_取真假数量 ({ 真, 假, 真, 假, 真, 假, 假, 假, 真, 真, 真, 真 }, 假))
- 调试输出 (逻辑型数组_取真假数量 ({ 真, 假, 真, 假, 真, 假, 假, 假, 真, 真, 真, 真 }, 真))
- .子程序 逻辑型数组_取真假数量, 整数型, 公开, 返回逻辑型型数组中有多少个真或多少个假
- .参数 逻辑型数组, 逻辑型, 数组
- .参数 逻辑值, 逻辑型
- 置入代码 ({ 83, 81, 82, 139, 93, 8, 139, 11, 139, 89, 4, 131, 193, 8, 184, 0, 0, 0, 0, 186, 0, 0, 0, 0, 235, 13, 83, 138, 28, 145, 183, 1, 56, 223, 117, 1, 64, 91, 66, 59, 211, 114, 239, 177, 0, 56, 77, 12, 117, 4, 43, 216, 139, 195, 90, 89, 91, 201, 194, 8, 0 })
- ' push ebx
- ' push ecx
- ' push edx
- ' mov ebx,[ebp+8] ;数组地址
- ' mov ecx,[ebx] ;数组数据地址
- ' mov ebx,[ecx+4] ;数组成员数
- ' add ecx,8 ;数组数据地址+8
- ' mov eax,0 ;返回值
- ' mov edx,0 ;数组下标计数
- ' .while edx<ebx ;计数小于成员数则循环
- ' push ebx ;入栈
- ' mov bl,[ecx+edx*4] ;从数组中读取逻辑数据
- ' mov bh,1
- ' .if bh == bl ;找到1个
- ' inc eax ;数量+1
- ' .endif
- ' pop ebx ;出栈
- ' inc edx ;计数+1
- ' .endw
- ' mov cl,0
- ' .if [ebp+12] == cl ;假的数量
- ' sub ebx,eax ;减去数组成员数
- ' mov eax,ebx ;送回返回值
- ' .endif
- ' pop edx
- ' pop ecx
- ' pop ebx
- ' leave ;还原某些寄存器的值,否则返回后会出问题
- ' retn 8 ;提供了两个参数,每个参数4字节所以这里8
- 返回 (0)
复制代码
|
|