X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=doc%2Fuserprog.texi;h=5bd0bb2b0d5681a14ceeeca5e49d9ff2b1ef724c;hb=75d2fa82ec381cb68174bf093e794b0aeee81ca1;hp=0872f798bd170d4319bdaf9a434b5cf156970c45;hpb=c34ca0718ab0c8ab6c2b89cd4f857b0959986948;p=pintos-anon diff --git a/doc/userprog.texi b/doc/userprog.texi index 0872f79..5bd0bb2 100644 --- a/doc/userprog.texi +++ b/doc/userprog.texi @@ -1090,10 +1090,11 @@ pointers. Then, push the address of each string plus a null pointer sentinel, on the stack, in right-to-left order. These are the elements of -@code{argv}. The order ensures that @code{argv[0]} is at the lowest -virtual address. Word-aligned accesses are faster than unaligned -accesses, so for best performance round the stack pointer down to a -multiple of 4 before the first push. +@code{argv}. The null pointer sentinel ensures that @code{argv[argc]} +is a null pointer, as required by the C standard. The order ensures +that @code{argv[0]} is at the lowest virtual address. Word-aligned +accesses are faster than unaligned accesses, so for best performance +round the stack pointer down to a multiple of 4 before the first push. Then, push @code{argv} (the address of @code{argv[0]}) and @code{argc}, in that order. Finally, push a fake ``return address'': although the