当前位置:网站首页>汇编语言入门-总结
汇编语言入门-总结
2022-06-10 12:40:00 【51CTO】
学习汇编语言,是为了学习安全技术,为了看懂汇编代码。
根据王爽老师的《汇编语言》书籍,总结以下几点。
当然我们坚持一条原则,少用的知识通过工具查询。

常用指令:
1、通用数据传送指令.
MOV 传送字或字节.
PUSH 把字压入堆栈.
POP 把字弹出堆栈.
2. 输入输出端口传送指令.
IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )
OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器 )
输入输出端口由立即方式指定时, 其范围是 0-255; 由寄存器 DX 指定时,
其范围是 0-65535.
3. 目的地址传送指令.
LEA 装入有效地址.
例: LEA DX,string ;把偏移地址存到DX.
LDS 传送目标指针,把指针内容装入DS.
例: LDS SI,string ;把段地址:偏移地址存到DS:SI.
LES 传送目标指针,把指针内容装入ES.
例: LES DI,string ;把段地址:偏移地址存到ES:DI.
LSS 传送目标指针,把指针内容装入SS.
例: LSS DI,string ;把段地址:偏移地址存到SS:DI.
4. 标志传送指令.
LAHF 标志寄存器传送,把标志装入AH.
SAHF 标志寄存器传送,把AH内容装入标志寄存器.
PUSHF 标志入栈.
POPF 标志出栈.
PUSHD 32位标志入栈.
POPD 32位标志出栈.
5、算术运算指令
ADD 加法.
ADC 带进位加法.
INC 加 1.
SUB 减法.
SBB 带借位减法.
DEC 减 1.
NEC 求反(以 0 减之).
CMP 比较.(两**作数作减法,仅修改标志位,不回送结果).
MUL 无符号乘法.
DIV 无符号除法.
6、逻辑运算指令
AND 与运算.
OR 或运算.
XOR 异或运算.
NOT 取反.
TEST 测试.(两**作数作与运算,仅修改标志位,不回送结果).
SHL 逻辑左移.
SHR 逻辑右移.
7、串指令
DS:SI 源串段寄存器 :源串变址.
ES:DI 目标串段寄存器:目标串变址.
CX 重复次数计数器.
MOVS 串传送.
( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. )
CMPS 串比较.
( CMPSB 比较字符. CMPSW 比较字. )
8、程序转移指令
1>无条件转移指令 (长转移)
JMP 无条件转移指令
CALL 过程调用
RET/RETF过程返回.
2>条件转移指令
JB/JNAE 小于转移.
JG/JNLE 大于转移.
JL/JNGE 小于转移.
JE/JZ 等于转移.
JNE/JNZ 不等于时转移.
JNP/JPO 奇偶性为奇数时转移.
JNS 符号位为 "0" 时转移.
JP/JPE 奇偶性为偶数时转移.
3>中断指令
INT 中断指令
IRET 中断返回
常用查询工具:
汇编金手指

汇编指令的帮助手册

JZ这个指令我们不知道什么意思,可以对此进行查询。

常用的导航栏为指令系统、32位指令。
后期我们会通过OllyDebug分析进行深入学习。
"OllyDebug,简称OD,一种反汇编软件,动态追踪工具,Ring 3 级的调试器。
OllyDebug的使用界面是可视化操作。"

参考文章:
边栏推荐
- (1) Pretreatment summary
- Ad-pcb schematic diagram learning (1)
- IQR box diagram
- VDMA commissioning summary
- [flinlk] dynamic Kerberos authentication in Flink pit
- CVPR2022|AConvNetforthe2020s&如何设计神经网络总结
- 【抬杠C#】如何实现接口的base调用
- 阿里云ECS服务器搭建Mysql数据库
- JS global timer case
- Dynaslam ii: carefully coupled multi object tracking and slam
猜你喜欢

Slide the navigation fixed head upwards

微信web开发工具使用教程,公司开发web

Technology sharing | quick intercom, global intercom

文档提升计划第二期|OceanBase 邀您一起进行文档共建

從解讀 BDC 自動生成的代碼談起,講解 SAPGUI 的程序組成部分

Ant financial services Yang Jun: evolution of ant data analysis platform and application of data analysis methods

【Spark】(task8)SparkML中的pipeline通道建立

(4) Classes and objects (1)
![[spark] (task8) pipeline channel establishment in sparkml](/img/9c/69c6d0cb27906eb895cfc7e4f45f96.png)
[spark] (task8) pipeline channel establishment in sparkml

Start with interpreting the code automatically generated by BDC, and explain the program components of sapgui
随机推荐
阿里云ECS服务器搭建Mysql数据库
[mobile robot] principle of wheel odometer
Use soapUI tool to generate SMS interface code
使用unique快速删除重复元素
Start with interpreting the code automatically generated by BDC, and explain the trial version of the program components of sapgui
OFFICE技术讲座:标点符号-英文-大全
Wechat web development tool tutorial, the company develops Web
MySQL数据库(26):视图 view
Tidb Primary course experience 8 (Management Maintenance of Clusters, add a tikv Node)
2022年浙江省赛
DynaSLAM II: Tightly-Coupled Multi-Object Tracking and SLAM 论文阅读
今天,一对情侣拿下香港最大电商IPO
(6) Classes and objects, object initialization and copy constructors (3)
STM32 learning notes (2) -usart (basic application 1)
Request to obtain the IP address of the request server
从解读 BDC 自动生成的代码谈起,讲解 SAPGUI 的程序组成部分
Minimalist random music player
[summary] individual competition supplement POJ - 3041 asteroids & codeforces - 173b chamber of Secrets
Example of full page sliding screen at mobile terminal (sliding the whole screen up and down) (sorting)
谷歌提出超强预训练模型CoCa,在ImageNet上微调Top-1准确率达91%!在多个下游任务上SOTA!