导航:首页 > 编程语言 > 汇编程序计算整数数组偶数之和

汇编程序计算整数数组偶数之和

发布时间:2022-08-18 10:14:58

⑴ 用汇编语言编制一个计算从2开始的N个偶数之和,将结果显示出来

CODESEGMENT
ASSUMECS:CODE
START:PUSHCS
POPDS
PUSHCS
POPES
MOVBP,0
@0:
MOVAH,1
INT21H
CMPAL,13
JE@1
SHLBP,1
MOVDI,BP
SHLBP,1
SHLBP,1
ADDBP,DI
ANDAL,0FH
XORAH,AH
ADDBP,AX
JMP@0
@1:
MOVCX,BP
XORAX,AX
@2:
ADDAX,CX
LOOP@2
SHLAX,1
CALLLFCR
CALLDSPAX
MOVAH,4CH
INT21H

;=======================================
DSPAXPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
PUSHF
XORCX,CX
MOVBX,10
@DSPAX1:
XORDX,DX
DIVBX
INCCX
ORDX,30H
PUSHDX
CMPAX,0
JNE@DSPAX1
MOVAH,2
@DISPAX2:
POPDX
INT21H
LOOP@DISPAX2
POPF
POPDX
POPCX
POPBX
POPAX
RET
DSPAXENDP
;==================================
LFCRPROCNEAR
PUSHAX
PUSHDX
MOVAH,2
MOVDL,13
INT21H
MOVDL,10
INT21H
POPDX
POPAX
RET
LFCRENDP
;================================
CODEENDS
ENDSTART

⑵ 请教“求1到100之间所有偶数的和”的汇编语言程序是什么

int
beven(int
num){return
num%2?0:num;}
int
main()
{
int
i
=
0,
sum
=
0;
for
(i=0;
i<=100;
i++)
{
sum
+=
beven(i);
}
printf("100以内(含100)偶数和为%d\n",
sum);
return
0;
}

⑶ 汇编程序:求1到100中偶数的和

MOV CX,50
MOV AX,0
MOV BX,2
AGAIN: ADD AX,BX
INC BX
INC BX
LOOP AGAIN

⑷ 用汇编语言编写子程序,计算10以内所有奇数之和与所有偶数之和

assume cs:code ;将CS段寄存器与code段关联

code segment ;code段
start:
mov bl,10 ;这里用AL来传送多少以内的数字
call sub1 ;调用子程序

mov ax,4c00h
int 21h
;================================================
;bl送入计算范围,比如0~10,在主程序里面只要把bl设置成10
;用bh返回偶数之和,用bl返回奇数之和
sub1:
push ax
push cx
push dx

dec bl
mov bh,0
mov cx,bx ;设置循环次数
mov dl,2 ;除数
mov ax,2 ;第一个数字,为什么要使第一个数字等于2而不是0呢?因为0/2会溢出
mov bx,1 ;初始籦bx bh=0 bl=1,0000 0001=1
s1:
push ax ;把ax暂存一下,分别在jishu和oushu里面还原,因为这里要进行除法,会改变AX
div dl ;数以2看有没有余数
cmp ah,0
je oushu
jishu:
pop ax
add bl,al
jmp short sub_ok
oushu:
pop ax
add bh,al
sub_ok:
inc ax
loop s1

pop dx
pop cx
pop ax
ret

code ends
end start

;程序我已经调试过了,你可以改变程序开始处得bl,编译链接后用DEBUG命令里面的G参数
;g 0005 然后看寄存器bx的高8位为偶数之和 bx的低8位为奇数之和
;注意 我这个程序的缺点是 奇数之和不能超过8位,偶数之和也不能超过8位 也就是255,否则会产生进位导致结果不准确 但是你的问题是只要计算0~10的奇数和偶数和 所以足够用了!

我的QQ是544980123,希望能够加我一起学习!

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

CODESEGMENT
ASSUMECS:CODE
START:MOVAX,0
MOVCX,0AH
MOVBX,2
@1:
ADDAX,BX
INCBX
INCBX
LOOP@1
CALLDSPAX
MOVAH,4CH
INT21H

;===============================
DSPAXPROCNEAR
PUSHAX
PUSHBX
PUSHCX
PUSHDX
PUSHF
XORCX,CX
MOVBX,10
@DSPAX1:
XORDX,DX
DIVBX
INCCX
ORDX,30H
PUSHDX
CMPAX,0
JNE@DSPAX1
MOVAH,2
@DISPAX2:
POPDX
INT21H
LOOP@DISPAX2
MOVDL,32
INT21H
POPF
POPDX
POPCX
POPBX
POPAX
RET
DSPAXENDP
;==================================
CODEENDS
ENDSTART

⑹ 用汇编实现1-10所有偶数的和

assume cs:code ;将CS段寄存器与code段关联

code segment ;code段
start:
mov bl,10 ;这里用AL来传送多少以内的数字
call sub1 ;调用子程序

mov ax,4c00h
int 21h
;================================================
;bl送入计算范围,比如0~10,在主程序里面只要把bl设置成10
;用bh返回偶数之和,用bl返回奇数之和
sub1:
push ax
push cx
push dx

dec bl
mov bh,0
mov cx,bx ;设置循环次数
mov dl,2 ;除数
mov ax,2 ;第一个数字,为什么要使第一个数字等于2而不是0呢?因为0/2会溢出
mov bx,1 ;初始籦bx bh=0 bl=1,0000 0001=1
s1:
push ax ;把ax暂存一下,分别在jishu和oushu里面还原,因为这里要进行除法,会改变AX
div dl ;数以2看有没有余数
cmp ah,0
je oushu
jishu:
pop ax
add bl,al
jmp short sub_ok
oushu:
pop ax
add bh,al
sub_ok:
inc ax
loop s1

pop dx
pop cx
pop ax
ret

code ends
end start

;程序我已经调试过了,你可以改变程序开始处得bl,编译链接后用DEBUG命令里面的G参数
;g 0005 然后看寄存器bx的高8位为偶数之和 bx的低8位为奇数之和
;注意 我这个程序的缺点是 奇数之和不能超过8位,偶数之和也不能超过8位 也就是255,否则会产生进位导致结果不准确 但是你的问题是只要计算0~10的奇数和偶数和 所以足够用了!

⑺ 使用汇编语言怎样编写100个偶数相加的程序

我做的是从2开始的100个偶数的和,结果是2774H,即十进制的10100
没有编写输出语句,要用debug看结果。
dseg segment
sum dw ?
dseg ends
cseg segment
assume cs:cseg,ds:dseg
begin: mov ax,dseg
mov ds,ax
xor ax,ax
mov cx,1
again: mov bx,cx
shl bl,1
add ax,bx
inc cx
cmp cx,100
jbe again
mov sum,ax
mov ah,4ch
int 21h
cseg ends
end begin

下面这个程序是计算100以内的偶数和,并以十六进制显示:
dseg segment
sum dw ?
tab db '0123456789ABCDEF'
dseg ends

cseg segment
assume cs:cseg,ds:dseg
begin: mov ax,dseg
mov ds,ax
xor ax,ax
mov cx,100
again: add ax,cx
sub cx,2
jnz again
mov sum,ax
;以上是求和,并存到sum单元

mov bx,offset tab
mov dh,4
mov cl,4
next: rol ax,cl
push ax
and ax,0fh
xlat
mov dl,al
mov ah,2
int 21h
pop ax
dec dh
jnz next
mov dl,'H'
mov ah,2
int 21h
;以上是以十六进制显示,思想是分离出四位,查表转换成ASCII码,并用2号功能显示,循环4次。最后输出后缀H
mov ah,4ch
int 21h
cseg ends
end begin

⑻ 求各位大神帮忙 用c语言编写计算给定的整型数组的偶数之和,奇数之和

#include<stdio.h>
#include<time.h>
#include<stdlib.h>

#define N 10

int main(void){

int a[N];
int i, even=0, odd=0;

srand(time(0));
for(i=0; i<N; i++) {
a[i] = rand() % 100;
if(a[i] % 2 ==0 ) even += a[i];
else odd+= a[i];
}

printf("数组是: ");
for(i=0; i<N; i++) printf("%d ", a[i]);

printf("\n偶数之和是: %d\n", even);
printf("奇数之和是: %d\n", odd);

getchar();
}

⑼ 编写一个程序,对一个整数数组的偶数求和。

//---------------------------------------------------------------------------
#include <iostream>

class iteg{
int *data;
int size;
public:
iteg(int n,int b):size(n) /*构造函数,n是整数数组数字的个数,b是起始数字*/
{
data=new int[n];

for (int i = 0; i<n; i++) {
data[i]=b+i;
}
}
long int sum(void) const
{
long int s(0);
for (int i = 0; i < size; i+=2) {
s+=data[i];
}
return s;
}
~iteg(){delete[] data;}
};
int main(void)
{
iteg a(100,0);
std::cout<<a.sum()<<std::endl;
return 0;
}
//---------------------------------------------------------------------------

阅读全文

与汇编程序计算整数数组偶数之和相关的资料

热点内容
随车拍app绑定什么设备 浏览:893
方维团购系统源码 浏览:988
linux反弹shell 浏览:152
打印机接口加密狗还能用吗 浏览:299
二板股票源码 浏览:446
度人经pdf 浏览:902
怎么配置android远程服务器地址 浏览:960
java程序员看哪些书 浏览:943
什么app可以免费和外国人聊天 浏览:796
pdf手写笔 浏览:182
别永远伤在童年pdf 浏览:990
爱上北斗星男友在哪个app上看 浏览:421
主力散户派发源码 浏览:671
linux如何修复服务器时间 浏览:61
荣县优途网约车app叫什么 浏览:479
百姓网app截图是什么意思 浏览:229
php如何嵌入html 浏览:817
解压专家怎么传输 浏览:745
如何共享服务器的网络连接 浏览:136
程序员简易表白代码 浏览:170