主题:8086编程简题求助各位达人~~
myycheng
[专家分:0] 发布于 2006-03-20 10:46:00
1:求从0开始连续100个偶数之和,并将结果存入名字为SUM的字存储单元中。试用完整的段定义语句编写出实现这一功能的汇编源程序。
回复列表 (共4个回复)
沙发
erping [专家分:3660] 发布于 2006-03-20 16:58:00
.model small
.data
sum db ?
.code
_main:
mov ax, @data
mov ds, ax
mov cx, 100
xor ax, ax
_@1:
add ax, cx
dec cx
loop _@1
mov sum, ax ;保存结果
mov ax, 4c00H
int 21H
end _main
板凳
swindlerking [专家分:50] 发布于 2006-03-21 16:38:00
上面的好像不太符合题意吧
不是说的是0开始的连续100个偶数么?
我觉得应该把
_@1:
add ax, cx
dec cx
loop _@1
段
改为:
_@1:
add ax, cx*2
dec cx
loop _@1
不知道对不?
呵呵!
3 楼
pigtwo [专家分:0] 发布于 2006-04-22 10:46:00
;求Y=1+2+3+4+5+6+……+100
;算法:顺序程序,用循环把初值放到一个寄存器里,把结果放到另一个,初值+1变什么之后与结果想+,
当初值>100时退出
d1 segment
y dw ? ;定义(中间/最后)结果变量
d1 ends
stk degment
db 100 dup(?) ;定义堆栈段
stk ends
c1 segment
assume cs:c1,ds:d1,ss:stk
main proc far
push ds
mov ax,0
push ax ;保护DOS现场
mov ax,d1
mov ds,ax ;将数据段D地址送到DS
mov ax,0
mov bx,1 ;为AX和BX赋初值
L:add ax,bx ;算法的主要部分
inc bx
cmp bx,100
jbe L
mov y,ax
ret
main endp
c1 ends
end main
这个题目你是不是也会啊,改一下就是你的题目了
4 楼
pigtwo [专家分:0] 发布于 2006-04-22 10:57:00
;1:求从0开始连续100个偶数之和,并将结果存入名字为SUM的字存储单元中。试用完整的段定义语句编写出实现这一功能的汇编源程序。
;算法:顺序程序,用CX控制循环的次数,用AX变中间/最后结果,用BX做变化的被回数
d1 segment
sub dw ? ;定义(中间/最后)结果变量
d1 ends
stk degment
db 100 dup(?) ;定义堆栈段
stk ends
c1 segment
assume cs:c1,ds:d1,ss:stk
main proc far
push ds
mov ax,0
push ax ;保护DOS现场
mov ax,d1
mov ds,ax ;将数据段D地址送到DS
mov ax,0
mov bx,0
mov cx,100 ;为AX,BX,cx赋初值
L:add ax,bx ;算法的主要部分
inc bx
inc bx ;bx+2做被加数,被加数是变的
cmp cx,100 ;用CX控制循环次数
jbe L
mov sum,ax
ret
main endp
c1 ends
end main
你看看这样改合适吗?和上一个的算法是一个样的
我来回复