注册 登录
编程论坛 汇编论坛

汇编输出数字问题,请教高手,怎么把SUM输出到屏幕啊!

cqkxboy168 发布于 2010-12-05 15:48, 8483 次点击
编写程序完成10个数的求和:SUM=a1+a2+.....+a10;
DATA  SEGMENT
     BUFFER  DW  1,2,3,4,5,6,7,8,9,10
     SUM  DW  ?
DATA  ENDS
STACK  SEGMENT
     DB 100 DUP(?)
STACK  ENDS
CODE  SEGMENT
     ASSUME   CS:CODE, DS:DATA, SS:STACK
START:
      MOV  AX,DATA
      MOV  DS,AX
      MOV  AX,0
      MOV  DI,OFFSET SUM
      MOV  BX,OFFSET BUFFER
      MOV  CX,10
LOOP1:
ADD AX,[BX]
      INC BX
      INC BX
      DEC CX
      JNZ  LOOP1     
      MOV [DI],AX
      MOV AX,4C00H
      INT 21H
CODE  ENDS
END   START

问题补充:
知道DOS调用,我不会写,出来的是乱码,就是DOS调用具体怎么写啊!?
3 回复
#2
xiaomarn2010-12-05 17:53
程序代码:
DATA  SEGMENT
     BUFFER  DW  1,2,3,4,5,6,7,8,9,10
     SUM  DW  ?
DATA  ENDS
STACK  SEGMENT
     DB 100 DUP(?)
STACK  ENDS
CODE  SEGMENT
     ASSUME   CS:CODE, DS:DATA, SS:STACK
START:
      MOV  AX,DATA
      MOV  DS,AX
      MOV  AX,0
      MOV  DI,OFFSET SUM
      MOV  BX,OFFSET BUFFER
      MOV  CX,10
LOOP1:
ADD AX,[BX]
      INC BX
      INC BX
      DEC CX
      JNZ  LOOP1   

      MOV [DI],AX
      call dishex
      MOV AX,4C00H
      INT 21H
   

dishex proc near
    mov cx,0404h
dis1:
    rol ax,cl
    mov dx,ax
    and dl,0fh
    call dischar
    dec ch
    jnz dis1
    ret
dishex endp

dischar proc near
    push ax
    cmp dl,0ah
    jl print
    add dl,7
print:
    add dl,30h
    mov ah,2
    int 21h
    pop ax
    ret
dischar endp
CODE  ENDS
END   START

#3
cqkxboy1682010-12-05 22:28
顶啊 ,有人帮忙吗
#4
cqkxboy1682010-12-05 22:31
呵呵,谢谢啦,大哥
1