汇编S=1+2+3+4+5+6+++++N
编制程序计算S=1+2+3+4+5+6+7+8+9+++++++++++N直到累加和大于5000为止.累加和送SUM单元,统计被累加的自然个数CNT单元.这就是完整的题目...
编制程序计算S=1+2+3+4+5+6+7+8+9+++++++++++N直到累加和大于5000为止.累加和送SUM单元,统计被累加的自然个数CNT单元.这就是完整的题目.谢谢大叔大妈.大姐小妹.大哥小弟.
展开
3个回答
2010-06-01
展开全部
DATAS SEGMENT
;此处输入数据段代码
SUM DW ?
CNT DW ?
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
XOR AX,AX ;累加数,保存累加结果
;因为AX开始不大于5000,AX最大能保存十进制无符号数65535,所以用一个16位寄存起来保存结果就已经足够
XOR BX,BX ;加数,同时也是循环进行累加运算的循环循环次数N,也是循环结束后得到的最大加数N
L1:
INC BX
ADD AX,BX
CMP AX,5000 ;累加结果与5000比较
JNA L1 ;不大于5000则继续循环
MOV SUM,AX ;计算结果为5050
MOV CNT,BX ;累加的自然数个数为100个
MOV AH,4CH
INT 21H
CODES ENDS
END START
;此处输入数据段代码
SUM DW ?
CNT DW ?
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
XOR AX,AX ;累加数,保存累加结果
;因为AX开始不大于5000,AX最大能保存十进制无符号数65535,所以用一个16位寄存起来保存结果就已经足够
XOR BX,BX ;加数,同时也是循环进行累加运算的循环循环次数N,也是循环结束后得到的最大加数N
L1:
INC BX
ADD AX,BX
CMP AX,5000 ;累加结果与5000比较
JNA L1 ;不大于5000则继续循环
MOV SUM,AX ;计算结果为5050
MOV CNT,BX ;累加的自然数个数为100个
MOV AH,4CH
INT 21H
CODES ENDS
END START
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
code segment;
assume cs:code,ds:code
org 100h ;COM格式
start:
push cs
pop ds
xor ax,ax
mov bx,ax
next:
inc bx
inc CNT
add ax,bx
cmp ax,5000
jbe next
mov SUM,ax
lea dx,mes2;提示完成
mov ah,9
int 21h
mov ah,0;暂停
int 16h
mov ah,4ch;结束
int 21h
CNT dw 0 ;统计被累加自然数的个数
SUM dw 0 ;放累加和
mes2 db 0dh,0ah,09,'Save done! $'
code ends
end start
assume cs:code,ds:code
org 100h ;COM格式
start:
push cs
pop ds
xor ax,ax
mov bx,ax
next:
inc bx
inc CNT
add ax,bx
cmp ax,5000
jbe next
mov SUM,ax
lea dx,mes2;提示完成
mov ah,9
int 21h
mov ah,0;暂停
int 16h
mov ah,4ch;结束
int 21h
CNT dw 0 ;统计被累加自然数的个数
SUM dw 0 ;放累加和
mes2 db 0dh,0ah,09,'Save done! $'
code ends
end start
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void main()
{
int i,SUM,CNT;
for(i=1;i<=5000;i++)
SUM+=i;
CNT=i;
printf("%d",SUM,CNT);
}
void main()
{
int i,SUM,CNT;
for(i=1;i<=5000;i++)
SUM+=i;
CNT=i;
printf("%d",SUM,CNT);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询