回 帖 发 新 帖 刷新版面

主题:求救,一题关于8086计算机程序设计的问题,先谢~~~

编写一个汇编程序,求前100个自然数的和。[em18]

回复列表 (共10个回复)

沙发

这个简单,多想下,看下书,应该会的。

板凳

是求1+2+3+4+……+100
还是求自己定义的100个数的和呀。

3 楼

如果是1+2+3+4+……+100
可以这么做:

code segment
start: mov ax,1
        sub dx,dx
        mov cx,100
count: add dx,ax      
        inc ax
        loopnz count
code ends
end start
  

缺少的自己补上,
最后的数据在dx中……
哈哈,我也是一只菜鸟……
大家共同学习吗……
[em1][em1][em1][em1]

4 楼

555~~~我还是初学者的说,我真的不明白啊,请大家帮帮我吧~~

5 楼

先把那100个数放在数组中,然后用带进位的加法指令实现,将循环次数放在CX中,用LOOP指令实现循环

6 楼

想想```

7 楼


5楼xiaocaocao,不会要把1到100自己输入数组吧?
我也是菜鸟,请教一下

8 楼


date segment
code segment
      assume cs:code,ds:date
state:mov cx,100
      mov ax,o
 mov bx,1
      l1:add ax,bx
      inc bx
      loop l1
      add ax,30h
      mov ah,02h
      int 21h
      date ends
      end state
   我不知道我这哪错了
老师就讲主程序
前面代码段怎么设定?
请教

9 楼

8楼的,好象你那个错的有点多
不是date,是data
data segment要有data ends
倒数第二行应该是code ends吧
mov ah,02h
int 21h
这个中断要有dl,你这样写实现不了这个中断

10 楼


试着写了一个,可以运行
结果5050D=13BAH


;求1+2+3...+100=
STACK   SEGMENT STACK
        DW  256 DUP(0)
STACK   ENDS
DATA    SEGMENT 
N       DB  64H
B       DB  2 DUP(0)
DATA    ENDS
CODE    SEGMENT 
        ASSUME  CS:CODE, DS:DATA, SS:STACK
START:  MOV   AX,DATA
        MOV   DS,AX
        MOV   AX,STACK
        MOV   SS,AX
        MOV   CL,N
L:      MOV   AL,CL
        ADD   AL,B+1
        MOV   B+1,AL
        MOV   AL,0
        ADC   AL,B
        MOV   B,AL
        DEC   CL   
        JNZ   L
        MOV   CX,2
        LEA   DI,B
R:      MOV   AL,[DI]
        CALL  ABC
        INC   DI
        LOOP  R
        MOV  AH,4CH
        INT  21H
ABC     PROC
        PUSH  AX
        PUSH  BX
        PUSH  CX
        PUSH  DX
        MOV CH,2
        MOV BL,AL
T:      MOV CL,4
        ROL BL,CL
        MOV DL,BL
        AND DL,0FH
        CMP DL,10
        JB  NEXT
        ADD DL,7
NEXT:   ADD DL,30H
        MOV AH,2
        INT 21H
        DEC CH
        JNZ T 
        POP  DX      
        POP  CX
        POP  BX
        POP  AX
        RET
ABC     ENDP
CODE    ENDS
        END  START

我来回复

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