FinalBirdman
Programmer
An asm prog of mine keeps crashing, and I can't figure out why. It has as simple loop like this that copies a 64000 byte array into the VGA segment (the mode is set already) The buffers and everything else is arleadey set up. This is only a part of the prog.
mov DI,0a00h
mov ES,DI
mov DI,0
mov SI,seg buffer0[0]
mov DS,SI
mov SI,0
copyloop:
mov AL,DS:[SI]
mov ES:[DI],AL
inc SI
inc DI
cmp SI,64000
jnz copyloop
When I run this, it crashes my computer. Some other notes:
This works fine:
mov DI,0a00h
mov ES,DI
mov DI,0
mov SI,seg buffer0[0]
mov DS,SI
mov SI,0
copyloop:
mov AL,DS:[SI]
mov ES:[DI],AL
inc SI
;inc DI
cmp SI,64000
jnz copyloop
And this works fine:
mov DI,0a00h
mov ES,DI
mov DI,0
mov SI,seg buffer0[0]
mov DS,SI
mov SI,0
copyloop:
mov AL,DS:[SI]
;mov ES:[DI],AL
inc SI
inc DI
cmp SI,64000
jnz copyloop
And so does this:
mov DI,0a00h
mov ES,DI
mov DI,0
mov SI,seg buffer0[0]
mov DS,SI
mov SI,0
copyloop:
mov AL,DS:[SI]
mov ES:[DI],AL
inc SI
inc DI
cmp SI,100 ;notice the change in steps
jnz copyloop
I can't figure it out. And it only happens when copying to the VGA segment, copying to other buffers works fine.
Any help is appreciated.
mov DI,0a00h
mov ES,DI
mov DI,0
mov SI,seg buffer0[0]
mov DS,SI
mov SI,0
copyloop:
mov AL,DS:[SI]
mov ES:[DI],AL
inc SI
inc DI
cmp SI,64000
jnz copyloop
When I run this, it crashes my computer. Some other notes:
This works fine:
mov DI,0a00h
mov ES,DI
mov DI,0
mov SI,seg buffer0[0]
mov DS,SI
mov SI,0
copyloop:
mov AL,DS:[SI]
mov ES:[DI],AL
inc SI
;inc DI
cmp SI,64000
jnz copyloop
And this works fine:
mov DI,0a00h
mov ES,DI
mov DI,0
mov SI,seg buffer0[0]
mov DS,SI
mov SI,0
copyloop:
mov AL,DS:[SI]
;mov ES:[DI],AL
inc SI
inc DI
cmp SI,64000
jnz copyloop
And so does this:
mov DI,0a00h
mov ES,DI
mov DI,0
mov SI,seg buffer0[0]
mov DS,SI
mov SI,0
copyloop:
mov AL,DS:[SI]
mov ES:[DI],AL
inc SI
inc DI
cmp SI,100 ;notice the change in steps
jnz copyloop
I can't figure it out. And it only happens when copying to the VGA segment, copying to other buffers works fine.
Any help is appreciated.