| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> x86汇编语言基础知识 -> 正文阅读 |
|
[嵌入式]x86汇编语言基础知识 |
x86汇编语言必备知识 x86汇编语言主要包括总线、寄存器结构,数据类型,基本的操作指令(包括数据传送指令、逻辑计算指令、算数运算指令),以及函数的调用规则。 具体内容可以查看这个博客https://www.cnblogs.com/jiftle/p/8453106.html 内存一个程序内存主要分为以下四个节: 总线
寄存器寄存器是可以被CPU使用的少量数据存储器,访问其中的内容的速度会比访问其他存储器要快。分为以下四类 通用寄存器X86处理器中有8个32位的通用寄存器。
段寄存器用于定位内存节
状态标志标志寄存器,置位值为1或者清除值为0,这些值由CPU控制
EIP指令指针在x86中,EIP寄存器又称指令指针或程序计数器,保存了程序将要执行的下一条指令在内存中的地址。EIP的唯一作用就是告诉处理器接下来要做什么。
数据表示在x86/x64体系中,指令处理的数据分为fundamental(基础)和numeric(数值)两大类。 基础(fundamental)类型:
数据(numeric)类型:
x86基本操作指令!注意:在分析恶意代码时,如果遇到一个函数只有xor、or、and、shl、ror、shr、rol等这样的指令并且反复出现·看起来像随机排列的样子,最可能是遇到了加密或者压缩的函数!
指令格式
ModR/M:辅助说明操作码的操作数(操作数的个数、种类[寄存器、内存地址、常量]) SIB:辅助说明ModR/M,辅助寻址。操作码的操作数为内存地址时,需要与ModR/M一起使用 位移:操作码的操作数为内存地址(小端序排列)时,用来表示位移操作 每条指令使用操作码告诉CPU程序要执行什么操作。反汇编器将操作码翻译为人类容易读懂的指令。
如:网络上IP地址为127.0.0.1是0x7f000001,在x86小端字节序则是0x0100007f 操作数操作数分为三个类型:
位移:操作码的操作数为内存地址(小端序排列)时,用来表示位移操作
立即数:操作码的操作数为常量时,该常量就被称为立即数
操作数指向寄存器 常用指令可以查看这个https://zhuanlan.zhihu.com/p/53394807 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 4:30:44- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |