Ret和retf指令
Ret 用栈中的数据修改IP(近转移)
Retf 用栈中数据修改cs:ip(远转移)
Ret 执行过程
1(ip)=((ss)*16+(sp))
2(sp)=(sp)+2

Retf 执行过程
1(ip)=((ss)*16+(sp))
2(sp)=(sp)+2
3(cs)=((ss)*16+(sp))
4(sp)=(sp)+2
CALL指令 (不能实现短转移)

Call执行过程
1将当前ip或cs和ip压入栈中
2转移
Call 标号(将当前ip压栈后,转到标号处运行)
执行过程
1 (sp)=(sp)-2
((ss)*16+(sp))=(ip)
2(ip)=(ip)+16位位移

Call far prt 标号(段间转移)
执行过程
1 (sp)=(sp)-2
((ss)*16+(sp))=(cs)
(sp)=(sp)-2
((ss)*16+(sp))=(ip)
2(cs)=标号所在段的段地址
(ip)=标号在段中的偏移地址
Call 16位reg
1(sp)=(sp)-2
((ss)*16+(sp))=(ip)
(ip)=16位reg
Call word ptr 内存单元地址 /push ip jmp word ptr 内存单元地址
Call dword ptr 内存单元地址 /push cs push ip jmp dword ptr 内存单元地址

Mul指令(乘法计算)
Mul reg
Mul 内存单元
两个相乘数 要么都是8位,要么都是16位
8位其中一个默认放在al当中,另一个放在8位reg或者内存单元中
16位 默认存放在AX当中,另一个放在16位reg或者内存单元中
结果
8位乘法,结果默认保存在AX当中
16位乘法,结果高位默认在dx中存放,低位在ax中存放

汇编语言 Ret和retf指令相关推荐

  1. call、ret、retf 指令详解

    call.ret.retf指令详解 本文讲解针对NASM编译器,8086处理器的call.ret.retf 指令.对于其他编译器和保护模式下的80x86,指令用法类似,可以作为参考. call指令 1 ...

  2. 汇编:ret以及retf指令

    执行ret指令,相当于执行pop ip 执行retf指令,相当于执行pop ip,pop cs assume cs:code, ds:data, ss:stack; 设置数据段 data segmen ...

  3. 汇编语言ret与call指令

    文章目录 CALL和RET指令 ret和retf call指令 根据位移进行转移 转移目的地址在指令中 转移地址在寄存器中 转移地址在内存中 使用call和ret来编写子程序 CALL和RET指令 r ...

  4. ret和retf指令

    ret 用栈中数据改IP内容,近转移 retf用栈中数据同时改CS,IP,远转移 用汇编解释 ret   ->  pop ip retf  ->  pop ip               ...

  5. Win-MASM64汇编语言-CALL/RET/RETF指令

    CALL和RET都是转移指令,它们都会修改IP,或者同时修改CS和IP,两个指令配合使用用来实现子程序 一:RET与RETF RET 将栈中的数据,放到IP中,从而实现修改IP,达到近转移 RETF ...

  6. ret指令 和 retf指令

    当执行ret指令时,相当于执行pop ip 当执行retf指令时,相当于先执行pop ip,后执行pop cs ret指令用栈中的数据,修改ip的内容,从而实现近转移: retf指令用栈中的数据,修改 ...

  7. 汇编语言基础--汇编操作指令概述

    本文是接续"汇编语言基础--机器级数据存储",主要介绍汇编指令的构造.寻址和指令主要分类. 操作指令 指令的基本要素:       在"计算机处理器(CPU)基础&quo ...

  8. 汇编语言debug命令与指令机器码

    汇编语言debug命令与指令机器码 一.debug命令 二.标志信息 -r用这个指令,得到的信息右下角: NV UP EI PL NZ NA PO NC 这些符号代表的就是标志寄存器里常用标志位的值. ...

  9. 汇编语言学习之基本指令(上)

    汇编语言学习之基本指令(上) 汇编语言对大小写不敏感,所以笔者全部采用大写说明语法规则,实例中采用小写英文 文章目录 汇编语言学习之基本指令(上) 1.数据传送类指令 1.1传送指令MOV 1.2交换 ...

最新文章

  1. 语言小型心形图案代码_c语言心形告白代码实现
  2. 零基础学python需要多久-零基础学Python要多久
  3. 汇报的时候注意的事项
  4. 【Python3.6】之在Windows中安装Python3.6.1
  5. ---WebCam网络摄像头9 usb dirver
  6. matlab边算边出图命令,Matlab:不包含边境和工具栏的figure(移除保存图片的白边)...
  7. 三、案例:留言板 url.parse()
  8. Springboot国际化信息(i18n)解析
  9. linux安装mysql允许外部访问权限_Linux yum 安装mysql以及进行授权允许远程登录
  10. GemBox Spreadsheet Professional 2.9
  11. 从入门到入土:基于C语言采用SOCKET套接字实现TCP公开扫描程序Web服务器扫描程序|代码展示
  12. iic标准c语言,I2C总线之(三)---以C语言理解IIC
  13. QUIC 协议在蚂蚁落地综述
  14. 原创,呵呵(一张图看明白),USB转TTL、USB转串口、USB转232的区别
  15. android 遥控器home键键值,android 中遥控器键值的添加和修改
  16. gantt(甘特)图
  17. USTC English Club20171010
  18. 标准型微电脑酸碱度氧化还原电位控制器(UPH -100C)
  19. [大话设计模式C++版] 第17章 在NBA我需要翻译 —— 适配器模式
  20. ROS配置和使用“北通”无线手柄,主从机远程控制JP-Chassis底盘

热门文章

  1. windows 修改(pip/conda)镜像源
  2. 一文彻底搞清楚数字签名的原理(java代码实现)
  3. 谨以此文纪念2013-09-17逝去的一个晚上
  4. 迈来芯melexis氛围灯芯片批量烧录程序解决方案,支持Fast LIN,速度媲美官方烧录器!...
  5. 重磅!物联网模组巨无霸诞生!日海通讯收购芯讯通+龙尚科技
  6. 利用nps(docker部署)实现隐藏ip
  7. 在Excel中sumif和sumproduct的用法
  8. yml避坑,yml配置使用map,如果key中包含某些符号会消失不见
  9. 这届年轻人,过得有多难?
  10. C++ find()函数