主题:[求助]对转移地址在寄存器中的call指令有些不懂
书上有这样一段代码:
内存地址 机器码 汇编指令
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的值是多少?怎么来的?
内存地址 机器码 汇编指令
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的值是多少?怎么来的?