用Masm for windows,以 DAT 开始的数据区存放 10个8 位无符号数:12,34,63,25,76,88,93,46,74,27,编程统计其中偶数的个数,并将结果是示输出。
时间: 2024-05-01 07:23:33 浏览: 23
下面是使用 Masm for Windows 的汇编代码,实现统计给定无符号数中的偶数个数:
```assembly
.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
.data
numbers db 12,34,63,25,76,88,93,46,74,27
count dw 0
.code
main PROC
mov ecx, 10 ; 循环次数
mov esi, offset numbers ; 数组的起始地址
mov bx, 0 ; 偶数个数计数器清零
loop_start:
mov al, [esi] ; 取出一个数
test al, 1 ; 判断是否为奇数
jnz odd ; 如果是奇数,跳转到 odd 标签
inc bx ; 如果是偶数,偶数个数计数器加 1
odd:
inc esi ; 数组指针指向下一个元素
loop loop_start ; 循环,直到处理完所有元素
mov count, bx ; 将偶数个数保存到 count 变量中
invoke StdOut, addr count ; 输出偶数的个数
invoke ExitProcess, 0 ; 退出程序
main ENDP
END main
```
在这个程序中,我们使用 `numbers` 数组存放了 10 个无符号数,使用 `count` 变量来保存偶数的个数。程序首先将循环次数 `10` 和数组的起始地址 `numbers` 分别存储在 `ecx` 和 `esi` 中。然后,程序使用 `bx` 寄存器作为偶数个数的计数器,将其清零。在循环中,程序使用 `mov al, [esi]` 指令将当前数组元素的值取出,然后使用 `test al, 1` 判断该数是否为奇数。如果是奇数,则程序跳转到 `odd` 标签;如果是偶数,则程序将偶数个数计数器加 1。最后,程序将数组指针 `esi` 指向下一个元素,并使用 `loop` 指令判断是否已经处理完所有元素。如果还有元素需要处理,则程序跳转到 `loop_start` 标签。如果所有元素都已处理完毕,则程序将偶数个数保存到 `count` 变量中,并使用 `StdOut` 输出偶数的个数。最后,程序使用 `ExitProcess` 退出。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)