各位大侠帮忙看下。。。

a1178a 2011-04-06 10:09:25
实验内容是:计算1+2+3+...+n=?,其中n通过键盘输入,累加和小于2的16次方。
程序如下:DATA SEGMENT
INF1 DB"Please input a number(1-65535):$"
IBUF DB 7,0,6 DUP(?)
OBUF DB 6 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET INF1
MOV AH,09H
INT 21H
MOV DX,OFFSET IBUF
MOV AH,0AH
INT 21H
MOV CL,IBUF+1
MOV CH,0
MOV SI,OFFSET IBUF+2
MOV AX,0
AGAIN:MOV DX,10
MUL DX
AND BYTE PTR[SI],0FH
ADD AL,[SI]
ADC AH,0
INC SI
LOOP AGAIN
MOV AH,4CH
INT 21H
MOV CX,AX
MOV AX,0
MOV BX,1
LOOP2:ADD AX,BX
INC BX
LOOP LOOP2
MOV BX,OFFSET OBUF+5
MOV BYTE PTR[BX],'$'
MOV CX,10
LOOP1:MOV DX,0
DIV CX
ADD DL,30H
DEC BX
MOV [BX],DL
OR AX,AX
JNZ LOOP1
MOV DX,BX
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
运行结果是:
please input a number(1-65535):3
press any key to continue
但是并没有得到想要的结果啊?怎么弄的呢?
...全文
83 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a1178a 2011-04-10
  • 打赏
  • 举报
回复
AGAIN:MOV DX,10
MUL DX
AND BYTE PTR[SI],0FH
ADD AL,[SI]
ADC AH,0
INC SI
LOOP AGAIN
MOV AH,4CH
INT 21H ;到这里已经结束 MOV CX,AX
您这句话是什么意思,是要把MOV AH,4CH
INT 21H 删去吗?
a1178a 2011-04-10
  • 打赏
  • 举报
回复
刚学汇编,跟高级语言有点撇不清了!
  • 打赏
  • 举报
回复

学习!
jerrylxy 2011-04-07
  • 打赏
  • 举报
回复
2#正解,楼主没怎么写过汇编么?
about80kg 2011-04-07
  • 打赏
  • 举报
回复
学习。我是菜鸟,想问下,这个就是编程了吧。貌似跟vc和vb差不多啊。原以为汇编就只是一些数字跟字母呢。呵呵呵…
shzhfu 2011-04-06
  • 打赏
  • 举报
回复
AGAIN:MOV DX,10
MUL DX
AND BYTE PTR[SI],0FH
ADD AL,[SI]
ADC AH,0
INC SI
LOOP AGAIN
MOV AH,4CH
INT 21H ;到这里已经结束
MOV CX,AX
masmaster 2011-04-06
  • 打赏
  • 举报
回复
累加和根据这个公式((1+n)*n)/2算比较简单。

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧