at this place entry.obj for your Borland compilation *must* have
ror eax,16
push ax
ror eax,16
Indeed, it DOES have it!
However from the makefiles I conclude this code should be present.
Yes, it is.
It will also be helpful if you can provide the assembly output of what Borland C generates (*how* does it exactly use eax) for those functions that you changed.
Here it is. Original functions are to the left of the vertical line, my functions are to the right. Mostly fmemcpy is improved. Hope this helps.
Lucho
INIT_MEMSET: |INIT_MEMSET:
push BP | push BP
mov BP,SP | mov BP,SP
push SI | push SI
mov DX,4[BP] | mov SI,8[BP]
mov SI,8[BP] | mov DX,4[BP]
jmp short L12 | jmp short L12
LC: mov AL,6[BP] |LC: mov AL,6[BP]
mov [SI],AL | mov [SI],AL
inc SI | inc SI
L12: mov AX,DX |L12: mov AX,DX
dec DX | dec DX
or AX,AX | or AX,AX
jne LC | jne LC
pop SI | pop SI
pop BP | pop BP
ret 6 | ret 6
INIT_FMEMSET: |INIT_FMEMSET:
enter 4,0 | push BP
mov DX,4[BP] | mov BP,SP
mov EAX,8[BP] | mov DX,4[BP]
mov -4[BP],EAX | jmp short L32
jmp short L3B |L26: les BX,8[BP]
L2F: les BX,-4[BP] | mov AL,6[BP]
mov AL,6[BP] | mov ES:[BX],AL
mov ES:[BX],AL | inc word ptr 8[BP]
inc word ptr -4[BP]|L32: mov AX,DX
L3B: mov AX,DX | dec DX
dec DX | or AX,AX
or AX,AX | jne L26
jne L2F | pop BP
leave | ret 8
ret 8 |
INIT_STRCPY: |INIT_STRCPY:
push BP | push BP
mov BP,SP | mov BP,SP
push SI | push SI
push DI | push DI
mov SI,6[BP] | mov SI,6[BP]
mov DI,4[BP] | mov DI,4[BP]
jmp short L59 |L48: mov BX,DI
L53: mov AL,[DI] | inc DI
mov [SI],AL | mov AL,[BX]
inc DI | mov BX,SI
inc SI | inc SI
L59: cmp [DI],0 | mov [BX],AL
jne L53 | or AL,AL
mov [SI],0 | jne L48
pop DI | pop DI
pop SI | pop SI
pop BP | pop BP
ret 4 | ret 4
INIT_FMEMCPY: |INIT_FMEMCPY:
enter 8,0 | push BP
mov DX,4[BP] | mov BP,SP
mov EAX,0Ah[BP] | mov DX,4[BP]
mov -4[BP],EAX | jmp short L76
mov EAX,6[BP] |L64: les BX,6[BP]
mov -8[BP],EAX | mov AL,ES:[BX]
jmp short L92 | les BX,0Ah[BP]
L80: les BX,-8[BP] | mov ES:[BX],AL
mov AL,ES:[BX] | inc word ptr 6[BP]
les BX,-4[BP] | inc word ptr 0Ah[BP]
mov ES:[BX],AL |L76: mov AX,DX
inc word ptr -8[BP]| dec DX
inc word ptr -4[BP]| or AX,AX
L92: mov AX,DX | jne L64
dec DX | pop BP
or AX,AX | ret 0Ah
jne L80 |
leave |
ret 0Ah |
------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel
