| | |
Why did I still get the error "Divide overflow"
![]() |
•
•
Join Date: Feb 2009
Posts: 1
Reputation:
Solved Threads: 0
That's the program I'm trying to wrote:
The point is to enter only digits and then to write them down to an array. Then I have to print the number of even and unread digits.
But I don't want help on this.
I just want to know why give's me the error "Divide overflow".
I start the program, write some digits and when I hit "enter" or "Esc" I get "Divide overflow".
The problem is somewere here
I knew it!
Any help? Thanks!
(btw sorry for my crappy english, I'm from mars
Assembly Syntax (Toggle Plain Text)
.model small .stack 100h .data x dw 2 array db 100 dup(?) even db 0 unread db 0 len=($-array) .code mov ax,@data mov ds,ax mov CX,len mov SI,0 m1: mov ah,08h ;inputs a digit into al int 21h cmp al,27 ;is it esc? je m7 ;go to m7! cmp al,13 ;is it enter? je m7 cmp al,'0' ;is it 0? if so, go to m2 je m2 cmp al,'1' ;s it 1? if so, go to m2 je m2 cmp al,'2' ;etc... je m2 cmp al,'3' je m2 cmp al,'4' je m2 cmp al,'5' je m2 cmp al,'6' je m2 cmp al,'7' je m2 cmp al,'8' je m2 cmp al,'9' je m2 jmp m1 ;if it's not esc, enter or digit then it's gotta be letter or contor symbol m2: ;this print inputed digit mov dl,al mov ah,02h int 21h mov [SI+array],dl ;write's the digit from dl into the array add SI,2 ;go to the array's next element jmp m1 ;get's back to input another digit m7: mov si,0 m8: mov dl,[SI+array] ;read's a element from the array mov ax,x ;make's ax 2 div dl ;divide's the element to 2 <span class="ad_notxt"><code class="inlinecode">The problem is around here somwehre here!</code></span> cmp ah,0 ;if the remainder is zero, then the digit is even inc even ;incerase even (stores the number of even digits) inc unread ;else incerase unread (i'm not sure about this but I can fix it later, this is not what's causе the problem) inc si ;incerase source index loop m8 ;loop 'till reach the end of the array - len jmp the_end the_end: mov dl,even ;trying to print the number of the even digits (not sure it will work) mov ah,02h int 21h mov ah,4ch ;return to operating system int 21h end
The point is to enter only digits and then to write them down to an array. Then I have to print the number of even and unread digits.
But I don't want help on this.
I just want to know why give's me the error "Divide overflow".
I start the program, write some digits and when I hit "enter" or "Esc" I get "Divide overflow".
The problem is somewere here
•
•
•
•
mov ax,x
div dl
Any help? Thanks!
(btw sorry for my crappy english, I'm from mars
Last edited by userqt; Feb 7th, 2009 at 6:28 pm.
![]() |
Similar Threads
Other Threads in the Assembly Forum
- Previous Thread: Little help with processor :D
- Next Thread: Let's learn assembly!
| Thread Tools | Search this Thread |





