当前位置:网站首页>汇编语言入门-总结
汇编语言入门-总结
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的使用界面是可视化操作。"

参考文章:
边栏推荐
- MySQL master database operation large table DDL, slave database crash and system parameter error setting
- 用GNN做CV三大任务的新骨干,同计算成本性能不输CNN、ViT与MLP|中科院&华为诺亚开源...
- What if the xshell evaluation period has expired? Follow the steps below to solve the problem!
- JS converts timestamp to normal time format
- 启牛能开户吗,在启牛开户安全么
- Stereo Vision-based Semantic 3D Object and Ego-motion Tracking for Autonomous Driving 论文阅读
- Sparkstreaming real-time data warehouse question & answer
- Wechat web development tool tutorial, the company develops Web
- Example of full page sliding screen at mobile terminal (sliding the whole screen up and down) (sorting)
- Xshell 评估期已过怎么办? 按照以下步骤即可解决!
猜你喜欢

统计100以内的各位数之和为7的自然数的个数及平均值

QT database application 22 file coding format recognition

【FAQ】运动健康服务REST API接口使用过程中常见问题和解决方法总结

In June, 2022, China Database ranking: tidb made a comeback to win the crown, and Dameng was dormant and won the flowers in May

Slide the navigation fixed head upwards

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

Minimalist random music player

【FLinlk】Flink小坑之kerberos动态认证

Stm32f407 learning notes (1) -exti interrupt event and NVIC register

20年技术老兵放弃大厂CTO头衔!这家创业公司凭什么吸引他?
随机推荐
(5) Class, object and class file splitting operation (2)
Leetcode 96. Different binary search trees
Office technical lecture: punctuation - English - Encyclopedia
Program, calculate 2/1+3/2+5/3+8/5 Value of. It is required to calculate the sum of the first n items and keep 2 decimal places (starting from the second item of the sequence, the numerator of each it
向数据库中注册用户名和密码的功能
VDO-SLAM源码阅读笔记[1] Track()中动态obj部分
MYSQL 主库操作大表DDL ,从库崩溃与系统参数错误设置
CMakeLists.txt 如何编写
谷歌提出超强预训练模型CoCa,在ImageNet上微调Top-1准确率达91%!在多个下游任务上SOTA!
Mr developed by unity3d realizes model occlusion and transparent ground receiving shadow
VDO-SLAM: A Visual Dynamic Object-aware SLAM System 论文阅读
蔚来:“拿捏”了数据,“扭捏”着未来
CVPR2022|AConvNetforthe2020s&如何设计神经网络总结
用C语言创建基本的栈与队列
Oceanbase, phase II of the document promotion plan, invites you to jointly build documents
Mysql database (26): View
Leetcode 96. 不同的二叉搜索樹
Give root password for maintenace (or press Control-D to continue):解决方法
【Spark】(task8)SparkML中的pipeline通道建立
Vdo-slam source code reading notes [1] dynamic obj part in track()