[ipxe-devel] PXE API - nbp start function questions

Yossef Efraim yossefe at mellanox.com
Sun Jun 29 12:41:42 UTC 2014

Few questions regarding pxe_start_nbp function (arch/i386/interface/pxe/pxe_call.c)  - inline asm code:

1.       Why STI command is used ?

2.       Why we have "esi" & "ebp"  At the clobber list ( ::: XXX) ? , using real mode debugger I noticed that esi , ebp values have changed prior to 0x7c00 far call:

EAX=00000000 EBX=00000AA0 ECX=000A9300 EDX=00093AA0

ESI=422E2B30 EDI=00000A40 EBP=00000007 ESP=00002D12 EIP=0000030E

CS=9300 DS=93AE ES=9300 FS=93AE GS=93AE SS=93AE C=0 Z=0 D=0 I=1 S=0

9300:030E  CALL FAR 0000:7C00

9300:0313  ADD SP,0004

9300:0316  RET

As you can see - cx holds the code segment , EDI & EBX holds !PXE & PXENV+ addresses and ESI , EBP values are not clear (at least to me). I would expect ESI value to equal ECX as first asm command is (in the inline asm )  : "movw %%cx, %%es\n\t",

Your help,


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20140629/96265dc7/attachment.htm>

More information about the ipxe-devel mailing list