Witam.
Uczę się asemblera. Dopóki pracowałem na liczbach byte lub word wszystko było ok. gdy przyszło mi pracować na long zaczęły się problemy. Mam taki oto króciutki kod:

.equ exit,0x01
.equ kernel,0x80
.equ write,0x04
.equ stdout,0x01

.data
n:
.long 0
i:
.long 0

.text
.global _start

_start:
MOVL $2,%eax
MOVL %eax,n
MOVL $2,%ebx
DIVL %ebx
MOVL %eax,i

MOVL $i,%ecx
CALL print

MOVL $n,%ecx
CALL print

_exit:
MOVL $exit,%eax
INT $kernel

#--------- PRINT ----------
.type print,@function
MOVL $write,%eax
MOVL $stdout,%ebx
MOVL $4,%edx
INT $kernel
RET

I czy ktoś mi może wytłumaczyć dlaczego przy dzieleniu w tym wypadku zawsze dostaję w wyniku w najstarszym bicie, najstarszego bajtu '1'?? (czyli zapisując tą liczbę dziesiętnie po jednym bajcie dostaję "128 0 0 1" zamiast "0 0 0 1").