书上有这样一段代码:
内存地址    机器码      汇编指令
1000:0     b8 00 00    mov ax,6
1000:3     ff d0       call ax
1000:5     40          inc ax
1000:6                 mov bp,sp
                        add ax,[bp]
问:这段程序执行后,ax中的数值为多少?

其中我有两处不太明白:
(1)到call ax这条指令时,首先0005进栈,之后是不是就跳到以ax中的数据为偏移地址的代码处?
(2)到mov bp,sp这条指令时,我只知道栈顶的元素是0005。sp的值是多少?怎么来的?