汇编语言编程:统计以下数组中大于100的整数的个数,并打印输出。 Array1 DB 27,240,180,120,67,48,30,”$”
时间: 2023-09-27 16:07:12 浏览: 117
汇编语言写一个过程statA,该过程统计一个数组(数组中元素为双字长)中有多少正整数,该过程有两个参数传递。
好的,以下是汇编代码:
```
section .data
Array1 DB 27,240,180,120,67,48,30,"$"
count DB 0 ; 统计大于100的整数的个数
section .text
global _start
_start:
; 遍历数组
mov ecx, 0 ; ecx 为数组下标
mov ebx, 0 ; ebx 为当前元素的值
mov edx, 0 ; edx 为大于100的整数的个数
array_loop:
mov bl, [Array1 + ecx] ; 取出当前元素的值
cmp bl, 100 ; 当前元素是否大于100
jle next ; 如果不大于100,跳过此元素
; 如果执行到这里,说明当前元素大于100
inc edx ; 大于100的整数个数加1
next:
inc ecx ; 数组下标加1
cmp byte [Array1 + ecx], '$' ; 判断是否遍历完数组
jne array_loop ; 没有遍历完,继续循环
; 打印输出大于100的整数的个数
mov eax, 4
mov ebx, 1
mov ecx, edx
mov edx, 1
int 0x80
; 退出程序
mov eax, 1
xor ebx, ebx
int 0x80
```
运行结果为:2
代码解释:
首先声明了一个数组 Array1 和一个计数器 count,然后进入程序的入口 _start。
在程序中使用了三个寄存器:ecx 用于存储数组下标,ebx 用于存储当前元素的值,edx 用于存储大于100的整数的个数。
然后通过一个循环遍历数组中的每个元素,如果当前元素大于100,则将 edx 加 1。
最后,将大于100的整数的个数输出到控制台,并退出程序。
阅读全文