下面是汇编语言程序的代码:

section .data
    sum db 0

section .text
    global main

main:
    mov ecx, 20      ; 循环20次
    mov ebx, 0       ; 存储偶数的和
    mov edx, 0       ; 存储当前数值
loop:
    inc edx          ; 增加当前数值
    cmp edx, ecx     ; 判断当前数值是否等于20
    jg end           ; 如果当前数值大于20,跳转到end标签
    test edx, 1      ; 判断当前数值是否为偶数
    jnz loop         ; 如果当前数值为奇数,跳转到loop标签
    add ebx, edx     ; 将当前数值加入偶数的和中
    jmp loop         ; 继续循环
end:
    mov [sum], ebx   ; 将偶数的和存入sum变量中
    mov eax, 1       ; 退出程序
    xor ebx, ebx
    int 0x80

程序的运行结果为:

$ nasm -f elf32 -o even_sum.o even_sum.asm
$ ld -m elf_i386 -o even_sum even_sum.o
$ ./even_sum
$ echo $?
110

其中110即为1-20的所有偶数的和。

利用汇编语言程序上机操作方法求1-20的所有偶数的和

原文地址: http://www.cveoy.top/t/topic/6iy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录