逆アセンブルで遊んでみる(5)自動変数の領域を16バイトを超えて確保

「自動変数の領域を16バイトを超えて確保」です。

void func(void)
{
	int i = 0x7F;
	int j = 0x8F;
	int k = 0x9F;
	int l = 0xAF;
	int m = 0xBF;
}
   0:	55                   	push   %ebp
   1:	89 e5                	mov    %esp,%ebp
   3:	83 ec 20             	sub    $0x20,%esp
   6:	c7 45 ec 7f 00 00 00 	movl   $0x7f,-0x14(%ebp)
   d:	c7 45 f0 8f 00 00 00 	movl   $0x8f,-0x10(%ebp)
  14:	c7 45 f4 9f 00 00 00 	movl   $0x9f,-0xc(%ebp)
  1b:	c7 45 f8 af 00 00 00 	movl   $0xaf,-0x8(%ebp)
  22:	c7 45 fc bf 00 00 00 	movl   $0xbf,-0x4(%ebp)
  29:	c9                   	leave  
  2a:	c3                   	ret  

前回、自動変数はint型の1変数だけで、スタックポインタは16byte分伸張していましたが、今回はint型5変数=20byte分の領域が必要なので、32byte分スタックを伸張しています。やはり、16byte単位で伸張するんでしょうか。