mess db 10 dup(?)
data ends
stack segment stack
db 100 dup(?)
stack ends
code segment
assume cs:code,ds:data
main proc far
push ds
sub ax,ax
push ax
MOV CX,10
MOV AX,0
MOV BX,1
NEXT: ADD AX,BX
SHL BX,1
LOOP NEXT
end next
main endp
code ends
首先每个程序都应该有个入口,你这个程序却找不着,而且也没见着程序返回或结束;虽然能编译通过,但运行这个程序会出错;还有应该这只是个简单的程序,我觉得不必要时尽量避免段间调用;再来没有代码开始,为什么要加上这个结束:end next;再来你想输出结果,程序中却未曾见到输出语句
初步看了你的程序,看来你是想实现1+2+4+...+1024吧保留你原来的方法和过程定义,修改如下:
......
next: ;在这增加一个入口吧,对应你原来的end next包括 ":"号
main proc far
......
NEXT0: ADD AX,BX ;这里的标号换一个吧,程序中不能出现重复标号
SHL BX,1
LOOP NEXT0 ;原标号已经更改,循环语句必然换掉
end next ;看得出这是结束源程序,这句删去吧,不应放在这里
RET ;子程序调用必须带有返回
main endp
code ends
END NEXT
经过上述程序,1+2+4+...+1024的结果就存放在AX中,如果要输出就看你想输入10进制或者是16进制数啦,楼主应该自己能搞定了吧