回 帖 发 新 帖 刷新版面

主题:8086编程简题求助各位达人~~

1:求从0开始连续100个偶数之和,并将结果存入名字为SUM的字存储单元中。试用完整的段定义语句编写出实现这一功能的汇编源程序。

回复列表 (共4个回复)

沙发


.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

板凳


上面的好像不太符合题意吧
   不是说的是0开始的连续100个偶数么?
 我觉得应该把
 _@1:
 add ax, cx
 dec cx
 loop _@1
段 
 改为:
_@1:
 add ax, cx*2
 dec cx
 loop _@1
不知道对不?
  呵呵!

3 楼

;求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 楼

;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
你看看这样改合适吗?和上一个的算法是一个样的

我来回复

您尚未登录,请登录后再回复。点此登录或注册