汇编指令长度计算方法
一、没有操作数的指令,指令长度为1字节。如
es:
ds:
cbw
xlat
等。
二、操作数只涉及寄存器的指令,指令长度为2字节。如
mov al,[si]
mov ax,[bx+si]
mov ds,ax
等。
三、操作数涉及内存地址的指令,指令长度为3字节。如
mov al,[bx+1]
mov ax,[bx+si+3]
lea di,[1234]
mov [2345],ax
等。
四、操作数涉及立即数的指令,指令长度为:寄存器类型+2。
8位寄存器,寄存器类型=1;16位寄存器,寄存器类型=2。如
mov al,8 ;指令长度为2
mov ax,8 ;指令长度为3
等。
五、跳转指令,分3种情况,指令长度分别为2、3、5字节。
1、段内跳转,指令长度=(目标地址-指令当前地址)+1
jmp指令本身占用1个字节。
(目标地址-指令当前地址)若能用1个字节表示,则占用1个字节,整体指令长度为2字节;如
0113 jmp 0185 ;0185h-0113h=72h,72h可用1个字节表示
若需2个字节表示,则占用2个字节,整体指令为3个字节。如
0113 jmp 0845 ;0845h-0113h=732h,732h需用2个字节表示
2、段间跳转,指令长度为5字节。如
jmp 1234:5678
ps:楼上的文章是搜到的,其中
第二点:
mov al,[si]
mov ax,[bx+si]
我觉得这2个语句是涉及到内存的。大神路过请指教。
转载于:https://my.oschina.net/liangzhenghui/blog/142015
汇编指令长度计算方法相关推荐
- 汇编语言——汇编指令长度的判断
汇编语言(王爽)中,讲CS:I[寄存器的地方有这样一则图示: 其中IP=IP+所读指令的字节数. 那么,所读指令的字节数应该怎么判断呢? 汇编指令长度与寻址方式有关,规律或原则如下: 一.没有操作数的 ...
- 汇编Ring 3下实现 HOOK API
[文章标题]汇编ring3下实现HOOK API [文章作者]nohacks(非安全,hacker0058) [作者主页]hacker0058.ys168.com [文章出处]看雪论坛(bbs.ped ...
- Ollydbg 编写脚本的一些语法及例子(OD脚本)
OllyScript脚本语言是一个种类汇编的语言.你使用它来控制ODbgScript和脚本运行. 在后面的文档中, "源操作数" 和 "目的操作数"表示以下含义 ...
- 纯C#实现Hook功能
纯C#实现Hook功能 发布一个自己写的用于Hook .Net方法的类库,代码量不大,完全的C#代码实现,是一个比较有趣的功能,分享出来希望能和大家共同探讨 安装:Install-Package Do ...
- 计算机AL教程笔记,计算机系统基础学习笔记(2)-数据的位运算操作
C语言的位运算操作包括两类,逻辑运算操作和逻辑移位操作. 逻辑运算操作 C语言提供了四种按位逻辑操作符,分别是按位取反,按位与,按位或,按位异或.在编译时,编译器会根据操作数的宽度分别转换为不同的指令 ...
- LiteOS调测利器:backtrace函数原理知多少
摘要:本文将会和读者分享LiteOS 5.0版本中Cortex-M架构的backtrace软件原理及实现,供大家参考和学习交流. 原理介绍 汇编指令的执行流程 图 1 汇编指令的执行顺序 上图1所示, ...
- 易语言c源码流程图怎么实现,易语言APC内存注入主要流程源码
易语言APC内存注入主要流程 1.打开进程 进程句柄 = OpenProcess (2035711, 假, 进程ID) 2.读入DLL文件及获取主要汇编指令 DLL文件 = 读入文件 (DLL路径) ...
- LyScript 插件官方API调用案例
本人结合LyScript插件API函数实现的一些通用案例,用于演示插件内置方法是如何灵活组合运用的,其目的是让用户可以自行研究学习API函数的参数传递,并能够通过案例的学习快速掌握官方API函数的使用 ...
- LLVM pass pwn 入门 (4)
有了前面两道题的分析基础之后,我们不难发现,LLVM实际上就是一类基于C++的VM pwn,我们通过定义不同名字的函数或写入不同类型的指令让vm做一些事情,其中就包含触发漏洞.这篇文章笔者来分析一下2 ...
最新文章
- 改变div php,js改变div样式
- 查找Linux中内存和CPU使用率最高的进程
- Spring xml 配置使用外部config 文件
- Flink专题-BaseTransform
- oracle数据库安装自动化,自动化Oracle数据库静默安装
- python3 for_Python3: for 表达式
- 写游戏软件要学什么_为什么要写关于您所知道的(或所学到的)的内容
- 中国开放教育资源协会_教育中的开放数据开始显示出真正的吸引力
- 【学习笔记】ListView初识
- 先有鸡还是先有蛋? 加拿大科学家揭开谜底
- Linux上将二进制文件转化为c语言数组
- 对于Typora(markdown)的基本使用
- select2 ajax 搜索框,修改Select2搜索框(Modify Select2 search box)
- 中断扫描方式子程序c语言,单片机原理及应用(C语言版) 第9章 节 单片机系统配置及接口.ppt...
- 正点原子T100智能焊台体验,顺便咱们来说说它的软件菜单、界面切换如何来实现?
- VScode正则表达式
- 【图片服务】深入分析阿里云中图片服务的架构经验
- 好消息!iPhone 4, 3GS, 3G 基带 5.14.02 和 2.10.4 已经软解
- Struts2 DTD与XML文件编写
- 【BZOJ4414】数量积