2015-02-24 108 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

相關問題