1

汇编语言入门-总结_最爱大苹果的技术博客_51CTO博客

 1 year ago
source link: https://blog.51cto.com/apple0/5372047
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

汇编语言入门-总结

原创

最爱大苹果 2022-06-10 08:44:53 博主文章分类:汇编语言学习 ©著作权

文章标签 学习总结 汇编语言学习 文章分类 其他 编程语言 阅读数161

学习汇编语言,是为了学习安全技术,为了看懂汇编代码。

根据王爽老师的《汇编语言》书籍,总结以下几点。

当然我们坚持一条原则,少用的知识通过工具查询。

汇编语言入门-总结_学习总结

常用指令:

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 中断返回  

常用查询工具:

汇编金手指

汇编语言入门-总结_汇编语言学习_02

汇编指令的帮助手册

汇编语言入门-总结_学习总结_03

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

汇编语言入门-总结_学习总结_04

常用的导航栏为指令系统、32位指令。

后期我们会通过OllyDebug分析进行深入学习。

"OllyDebug,简称OD,一种反汇编软件,动态追踪工具,Ring 3 级的调试器。

OllyDebug的使用界面是可视化操作。"

汇编语言入门-总结_汇编语言学习_05

参考文章:

https://blog.csdn.net/weixin_53798995/article/details/124136560
https://zhuanlan.zhihu.com/p/38476126
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK