汇编语言编写程序,求1~150之间能被2整除、且不能被3整除的整数之和。
时间: 2023-11-13 12:02:35 浏览: 129
下面是汇编语言程序的代码:
```
section .data
sum db 0 ; 存储满足条件的整数之和
i db 1 ; 循环计数器,从1开始
section .text
global _start
_start:
mov ecx, 150 ; 循环150次
mov ebx, 2 ; ebx存储2
.loop:
cmp ecx, 0 ; 如果循环次数为0,则跳出循环
je end
mov eax, i ; 将i存储的值赋给eax
cmp eax, 150 ; 如果i大于150,则跳出循环
jg end
mov edx, 0 ; edx用来存储i除以3的余数
div ebx ; eax除以ebx,商存放在eax中,余数存放在edx中
cmp edx, 0 ; 如果i不能被2整除或能被3整除,则跳过加和操作
je next
add sum, byte[i] ; 将满足条件的整数加到sum中
.next:
inc i ; 循环计数器加1
dec ecx ; 循环次数减1
jmp loop ; 继续循环
end:
mov eax, 1 ; exit系统调用号
xor ebx, ebx ; 返回值为0
int 0x80 ; 执行系统调用
```
程序执行过程:
1. 初始化sum为0,i为1,ecx为150。
2. 循环150次,每次判断i是否大于150,如果是,则跳出循环。如果不是,则计算i除以2的余数,如果余数为0并且i不能被3整除,则将i加到sum中。
3. 循环计数器i加1,循环次数ecx减1。
4. 继续循环,直到循环次数ecx为0,程序结束。
最后,sum中存储的就是1~150之间能被2整除、且不能被3整除的整数之和。
阅读全文