汇编学习 NO6

汇编学习 NO61 ret 用栈中的数据 修改 IP 内容 从而实现近转移 2 retf 用栈中的数据 修改 CS 和 IP 中的内容 从而实现远转移 3 CPU 执行 ret 指令相当于 popIP 执行 retf 指令相当于 popIPpopCS4 call 指令 CPU 执行 call 指令时 进行两步操作 将当前的 IP 或 CS 和 IP 压入栈中 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp

    1. 1.ret : 用栈中的数据,修改IP内容,从而实现近转移
  1. 2.retf : 用栈中的数据,修改CS和IP中的内容,从而实现远转移

3.CPU执行ret指令相当于:pop IP; 执行retf指令相当于: pop IP pop CS

  1. 4.call指令: CPU执行call指令时,进行两步操作: ①.将当前的IP或CS和IP压入栈中
  2.                                                                  ②.转移
    1. 5.call指令不能实现短转移,除此之外,call指令实现转移的方法和jmp指令的原理相同.
  3. 6.”call 标号” : 进行如下操作:  ①.(sp)=(sp)-2 ((ss)*16+(sp))=IP
  4.                                            ②.(IP)=(IP)+16位移
  5.                      CPU执行”call 标号”指令相当于:push IP;  jmp near ptr bh
  6. 7.”call far ptr 标号”实现的是段间转移,进行的操作为:①.(sp)=(sp)-2
  7.                                                                            ②.((ss)*16+(sp))=(CS)
  8.                                                                            ③.(sp)=(sp)-2
  9.                                                                            ④.((ss)*16+(sp))=(IP)
  10.      CPU执行”call far ptr 标号”时,相当于进行,push CS, push IP, jmp far ptr 标号

8.call 16位 寄存器:push IP ;jmp 16位寄存器

9.call word ptr 内存单元地址 : push IP ; jmp word ptr 内存单元地址

10.call dword ptr 内存单元地址 : push CS ,push IP ; jmp dword ptr 内存单元地址

11.mul 乘法指令 : ①.两个相乘的数:两个相乘的数,要么都是8位,要么都是16位,如果是8位,一个默认放在AL中,另一个放在8位寄存器或内存字节单元中:如果是16位,一个默认在AX中,另一个放在16位寄存器或内存单元中

                           ②.如果是8位乘法,结果默认放在AX中;如果是16位乘法,结果高位默认中DX中存放,低位在AX中放.

                                                                          

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231017.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • qca wlan wifi modules 解析四

    qca wlan wifi modules 解析四WiFi驱动架构的一般层次为:应用层BSDsocket层TCP/IP协议层IP层网络设备层net/coremac8011层/ieee80211设备驱动层具体实例如下图:上层应用程序简历socket,对网络接口进行ioctl操作,正是通过触发,网络设备和80211层,调用底层驱动函数来实现的。qcawlanmodules中,通过创建虚拟AP来实现WiFi功能,即VAP…

    2022年7月11日
    18
  • 电商扣减库存_电商后台系统产品逻辑全解析[通俗易懂]

    电商扣减库存_电商后台系统产品逻辑全解析[通俗易懂]作者:刘志远,电商产品经理,主导过多业务的电商产品搭建、更新迭代。微信公众号:碎碎恋产品,喜欢闲侃产品设计、商业分析以及后台挖坑一、产品经理(现实的理想主义者,对产品有着无比认真的态度,同时能够适当妥协,利用有限的资源来推动产品目标的达成)日常工作:了解用户和市场(学会把用户需求转化为产品需求)、设计产品方案(评定需求优先级)、跟进开发进度、跟进用户反馈,优化迭代电子商务的几种模式:B2C(B…

    2022年10月1日
    5
  • 超级搜索(Super search)

    超级搜索(Super search)现在的搜索引擎会极大的帮助用户搜索到想要的搜索的内容,我们常用的搜索引擎包括百度、搜狗、360搜索等等,今天就为大家推荐一个超级搜索的插件。超级搜索基于浏览器的全面搜索。智能识别搜索关键字,集成收藏夹(书签)搜索,历史记录搜索等功能。支持自定义扩展搜索,支持打开搜索结果列表等功能。

    2022年7月18日
    31
  • TDD与FDD模式

    TDD与FDD模式1.TDD与FDD通过ad9361外部射频开关切换2.ad9361可一直工作在FDD模式3.FDD可同时收发,即TRX发,RX收;TDD不可同时收发,所以可复用端口,TRX收发,RX不用

    2022年6月8日
    106
  • QT 实现 RTSP 视频流服务器[通俗易懂]

    QT 实现 RTSP 视频流服务器[通俗易懂]uos操作系统中使用QT开发RTSP视频流服务器,以下的实现方式使用的是单播方式。可以通过自己开发的rtsp服务器将摄像头的数据推送到服务器中,其他用户可以通过访问视频流地址,直接访问摄像头的内容,也就是通常说的摄像头直播。本篇文章使用开源框架live555开发一个属于自己的视频流服务器。

    2022年10月20日
    5
  • 卸载360企业版密码忘了_360杀毒软件卸载密码是多少

    卸载360企业版密码忘了_360杀毒软件卸载密码是多少方法如下:  一、在360安全卫士安装文件夹“默认安装在C:\ProgramFiles\360\360Safe”中,查找含有ent的文件。  二、使用360文件粉碎机或unlocker等等。删完后,就可以正常卸载了。(不行的话,还可以用系统光盘或者U盘,进入他们的PE系统,在PE系统中可以直接删除整个360safe文件夹。)三、原理…

    2022年9月24日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号