MOV SP, 32
此数值不合理,这是程序代码的存储空间,数据压栈后影响了程序的正常运行。
当定义了8个字、和8个字的空间之后,堆栈空间和指令所在的空间,错开了,程序顺利能够运行了。
直接用-g命令执行时,要执行完RET指令才结束程序,但执行RET指令后,会将使得本程序的各个段的地址发生变化,无法定位到程序中原来数据段的值。建议你在使用-g命令执行时,最好要找到断点地址,比如此题的断点地址为RET指令所在的偏移地址0029H,所以应该使用命令-g=0 0029执行,这样不执行RET指令,你就可以用-d 0看结果,而不用在d命令后加数据段的段地址了。你试试看。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)