汇编基础:常用指令(X86)

一.32位通用寄存器

EAX 累加和结果寄存器
ECX 循环计数器
EDX i/o指针
EBX 数据指针寄存器
ESP 栈顶指针寄存器
EBP 栈底指针寄存器
ESI 源地址寄存器
EDI 目标地址寄存器

通用寄存器

二.标志寄存器

标志寄存器

1.CF(Carry Flag):进位标志,若运算结果的最高位产生一个进位或借位那么其值为1,否则为0

2.PF(Parity Flag):奇偶标志,用于反映运算结果中1的个数,若个数为偶数则其值为1,否则为0

3.AF(Auxiliary Carry Flag):辅助进位标志,在发生下列情况时其值为1,否则为0
(1)字操作时,发生低字节向高字节进位或借位时
(2)字节操作时,发生低四位向高四位进位或借位时

4.ZF(Zero Flag):零标志,用于反映运算结果是否为0

5.SF(Sign Flag):符号标志,用于反映运算结果的符号位(有符号数运算),其与运算结果的最高位相同

6.OF(Overflow Flag):溢出标志,用于反映有符号数加减运算结果是否溢出,溢出置1,反之置0

7.CF与OF的区别:CF用于表示无符号数运算结果是否超出范围,OF用于表示有符号数运算结果是否超出范围

8.有符号数与无符号数运算结果是否超出范围判断方法

有符号数中结果溢出仅发生于:
正 + 正 与 负 + 负,
当正 + 正 = 负 或 负 + 负 = 正时说明发生溢出
在判断有符号数是否溢出时可利用上图以查数的形式进行判断,其值由大到小为:7F…40 3F…0 FF…C0 BF… 80,在位数大于8bit时在数后加上F与0即可;在无符号数判断中值大小为0…FF,因此当结果超过FF时说明溢出

三.常用汇编指令

1.ADC:(carry)带进位加法
例:ADC BYTE PTR DS:[12FFC4],2
解释:[12FFC4] += 2+CF

2.SBB:(borrow)带借位减法
例:SBB BYTE PIR DS:[12FFC4],2
解释:[12FFC4] -= 2+CF

3.XCHG:交换数据(不存在立即数)
例:XCHG DWORD PTR DS:[12FFC4],EAX
解释:交换[12FFC4]与EAX的值

4.MOVS:移动数据,
例1:MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
简写:MOVSB
解释:从[ESI]中获取一个字节的数据放入[EDI]中
例2:MOVS WORD PTR ES:[EDI],WORD PTR DS:[ESI]
简写:MOVSW
运行后ESI与EDI的值都将发生改变,如例二中若DF(方向标志)值为0则EDI与ESI各加2,若DF值为1则各减2

5.STOS:将AL/AX/EAX的值存储到[EDI]指定的内存单元
例:STOS BYTE PTR ES:[EDI]
简写:STOSB
其中EDI的值也将在执行后发生改变,改变方式同上

6.REP:按计数寄存器(ECX)中指定的次数重复执行字符串指令
例:REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
解释:上述代码中REP后的部分将执行ECX次,且EDI,ESI的值在每一次执行时都会随DF的值进行改变,因此不会循环覆盖

四.JCC-条件跳转指令

https://blog.csdn.net/fengshh2301/article/details/53327195

Related post

  1. vi编译器查询手册

    2020-09-23

  2. Memory Network

    2020-07-27

  3. AOP reading notes

    2022-10-10

  4. 华为云鲲鹏服务器安装wordpress

    2020-07-05

There are no comment yet.

COMMENT

Take a Coffee Break

Recommend post

  1. 常用工具指令

    2022-09-18

Category list

ABOUT

Welcome to FullStar, a captivating online destination where the realms of software development and personal reflections intertwine.

April 2025
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
282930  

Life Logs

  1. 回首

    2023-07-14

Return Top