2015-02-24 70 views
0

我想让我的Squares程序正常工作,但是,我不断收到运行时错误或编译时错误(我一直在不同的计算机btw上使用visual studio 2010)为什么我有我的计算器

运行时错误=“堆栈溢出”
编译时错误=警告A4011:多个.MODEL指令发现:.MODEL忽略4 1项目

但我只有一个.model指令。

为什么我的堆栈溢出?即使没有分配堆栈,我仍然会得到错误。

这里是我的代码(只是忽略fibbonacci和总理的程序):

Include Irvine32.inc 

.386 
.model flat,stdcall 
.stack 4096 

.data 
welcomeMsg BYTE "welcome",0dh, 0ah,0 
menu BYTE "Please choose from:", 0dh, 0ah,0 
num dword ? 
;CHOICES: 
choice BYTE "Prime == 0",0dh,0ah, 
"fibonachi == 1",0dh,0ah, "Calculate Squares == 2",0dh,0ah,0 

.code 
main PROC 

mov edx, OFFSET welcomeMsg  ;prints welcome message 
call WriteString 

mov edx, OFFSET menu   ;prints message 
call WriteString 

mov edx, OFFSET choice   ;prints choices 
call WriteString 

call ReadInt     ;recieves int from keyboard 
mov num, eax     ;mov eax into num 
mov cx,0 
mov eax,10 

JCXZ L1       ;jump to L1 

Prime: 
mov cx,0 
JCXZ THEEND      ; jumps to end of program 

Fibo: 
mov cx,0 
JCXZ THEEND      ; jumps to end of program 

Squares: 
;Squares PROTO 
call Squares 
mov cx,0 
JCXZ THEEND      ; jumps to end of program 


L1: 
cmp num,2 
JE Squares ;if num == 2 jump to label   ; jump to squares 

L2: 
cmp num,1 
JE Fibo ;if num == 1 jump to label   ; jump to fibonacci procedure 

L3: 
cmp num,0 
JE Prime ;if num == 0 jump to label   ; jump to prime procedure 


THEEND: 


INVOKE ExitProcess,0 
main ENDP 




;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;fibb PROC    ;begin fibonacci 
;var word 0 
;var2 word 0 
;mov ecx,eax 
;mov eax,1 
;mov var2,1 

;Loop1: 
; mov var, eax 
; mov eax,var2 
; add var2,var  
;JCXZ Loop1 

;mov eax var2 

;ret 
;fibbo ENDP 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;Prime PROC    ;begin Prime 
;ret 
+0

我会复出并清理它,g2g – CBRG20 2015-02-24 18:24:17

+0

您应该尝试通过调试器运行它。这将帮助你捕捉@Mike发现的错误。 – Degustaf 2015-02-24 21:29:41

回答

3

我要通过这一个,但这个吸引了我的眼球:

Squares: 
;Squares PROTO 
call Squares 

所以一旦进入正方形,它会将返回地址推入堆栈并再次转到正方形。然后再次。再一次...直到堆栈用完。

+0

感谢您的帮助迈克我现在得到了我的代码。感谢编辑代码Jester,我现在才意识到一些代码被截断。而不是在这种情况下缺少的代码。 – CBRG20 2015-02-25 22:28:24

相关问题