王爽汇编检测点10.4的具体分析谁能告诉我下。
movax,6callaxincaxmovbp,spaddax,[bp]这里面的CALLAX到底是怎么运行的,各项值是多少?能不能写详细点。...
mov ax,6
call ax
inc ax
mov bp,sp
add ax,[bp]
这里面的CALL AX到底是怎么运行的,各项值是多少?能不能写详细点。 展开
call ax
inc ax
mov bp,sp
add ax,[bp]
这里面的CALL AX到底是怎么运行的,各项值是多少?能不能写详细点。 展开
推荐于2020-01-12
展开全部
在执行了
call ax
的时候
指令寄存器会指向下一条指令的起始地址,也就是
1000:5 inc ax
然后指令寄存器ip=5要压入堆栈
然后跳转到cs:ax指定的地址执行
又因为此时ax中的值为6 ,cs=1000
所以跳转到1000:6执行
于是修改 ip为6
到此时call ax指令才执行完毕
然后就执行
mov bp,sp
因为sp里面放的是堆顶的地址,所以bp也是栈顶的地址了
之后
add ax,[bp]
因为,bp里面放的是栈顶的地址,所以 [bp] 寄存器寻址后 [bp]实际是代表该地址单元的内容,也就是栈顶的内容,因为先前我把ip压入了堆栈,所以[bp]得到的内容就是5(先前在call ax时候压入的ip的值)
所以 ax=ax+[bp]
也就是 ax=6+5=000b
call ax
的时候
指令寄存器会指向下一条指令的起始地址,也就是
1000:5 inc ax
然后指令寄存器ip=5要压入堆栈
然后跳转到cs:ax指定的地址执行
又因为此时ax中的值为6 ,cs=1000
所以跳转到1000:6执行
于是修改 ip为6
到此时call ax指令才执行完毕
然后就执行
mov bp,sp
因为sp里面放的是堆顶的地址,所以bp也是栈顶的地址了
之后
add ax,[bp]
因为,bp里面放的是栈顶的地址,所以 [bp] 寄存器寻址后 [bp]实际是代表该地址单元的内容,也就是栈顶的内容,因为先前我把ip压入了堆栈,所以[bp]得到的内容就是5(先前在call ax时候压入的ip的值)
所以 ax=ax+[bp]
也就是 ax=6+5=000b
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
北京新国信
2023-07-11 广告
2023-07-11 广告
性能测试和功能测试是软件测试的两个重要方面。1. 功能测试:主要是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。也可以称为黑盒测试,只需要考虑测试各个功能是否实现,例如游戏的功能测试,首先测试游戏的各个...
点击进入详情页
本回答由北京新国信提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询