检测点10.5

来源:互联网 发布:轻而易举是什么软件 编辑:程序博客网 时间:2024/06/04 18:09

 题目:下面的程序执行后,ax中的数据是多少?

解答:刚开始时mov ax,stack到mov sp,10h是分别设置ss:sp指向程序中定义的栈段stack。mov ds,ax也把数据段的段地址也设置成了stack段的段地址。call word prt ds:[0Eh]相当于是sp=sp-2,push ip,jmp word ptr ds:[0Eh]这三条指令。而sp-2就是0Eh了,push ip就是把第一条inc ax对应的ip值给压入栈。存放在ss:[0Eh]和ss:[0Fh]里面。接下来是jmp word ptr ds:[0Eh]了,它的功能就是把stack段的[0eh]子单元的值付给ip,很巧的是stack中[0eh]字单元的值就是刚刚压入的ip值。所以ip值没有改变。程序继续执行inc ax后面的程序。所以ax的值是3.

原创粉丝点击