说明之后的代码或要修改cs寄存器中的内容,因此要保链扒存到内存中,要不然没法恢复。
RET可以没有,不过就不能返回了,而是继续往冲戚下跑(就可能出棚判昌错了)
assume cs:code,ds:data,假设CS寄存器装载的是代码段,假设DS寄存器装载的是数据段
dos16,win32汇编可以在代码中指定入口点的(坑爹的x64不支持这点了,必须在连接器指定)下面示例START就是入口点:
START:
...
END START 必须
5.中断要在DOS且为实模式下才能正常使用。(NT内核关闭中断位)
这样是COM程序的正常结束方式这个方法实际是在堆栈压入了DS段地址和0的地址,
而ds段0地址的地方启森是int 20h指令巧孙
ret时实际就执行了DS:0处的代码,实际是int 20h指令
你可以用debug看一下就是的。
所以也孝旁链可以不用这样,直接在程序末尾用int 20h也可以的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)