关于对《汇编语言》第3版 作者:王爽的阅读总结

------------恢复内容开始------------

 段地址*16H+偏移地址= 物理地址

寄存器:AX,BX,CX,DX,SI,DI,CS,SS,DS,ES,IP,SP,PSW

AX,BX,CX,DX,可用8位寄存器表示,比如AH,AL

CS:代码段寄存器

IP:指令指针寄存器

CS+IP 为指令指向的实际地址

DS:数据段地址

[Address]:内存单元,[0] 0 表示偏移地址

Ds:[0] 表示传送ds为段地址,0偏移的内存地址

SS:栈段寄存器

SP:栈偏移地址

SS:IP 表示为栈顶地址

Loop:循环

循环次数在cx中,每次循环自动 cx = cx-1

[bx]:表示偏移地址为bx的内容的内存单元

Bx=10  那么[bx]  [10] 意义相同

And 逻辑与

OR 逻辑或

都是按位运算

[bx+常数] :  bx=10 ,[bx+3] [10+3] 意义相同

SI,DI,Bp寄存器与BX类似

[bx+si+常数][bx+di+常数]

DIV 除法

MUL 乘法

要注意除法、乘法的除数与被除数、商存放的寄存器位置

db,dw,dd 用来定义字节、字、双字 数据

Dup 操作符:

Db 3 dup(0,1,2)

相当于db 0,1,2,0,1,2,0,1,2

db 重复次数 dup(重复的字节数据)

dw 重复次数 dup(重复的字数据)

Offset 取标号偏移地址  逆向中不常用

Jmp 无条件转移指令

Jmp short 偏移地址  偏移地址为当前地址+偏移地址=实际地址

Jmp far ptr 地址   远转移   地址=实际地址

Jcxz 有条件转移  判断cx是否为0 则转移

ret相当于 pop IP

  

Retf 相当于 pop IP  pop CS

Call 相当于

Push IP

Jmp near ptr 地址

  

标志寄存器  CF,PF,AF,ZF,SF,TF,IF,DF,OF

ZF 零标志寄存器  结果为0 zf=1 否则zf=0

PF 奇偶标志寄存器 结果所有的bit1的个数为偶数 pf=1 否则为pf=0

SF 符号标志  结果为负数,SF=1,否则SF=0

CF 进位标志位 如果有进位或者借位 CF=1

OF 溢出标志

adc 带进位的加法指令

Sbb 带借位的减法指令

Cmp 比较指令

指令

含义

检测相关标志位

Je

等于则转移

Zf=1

Jne

不等于则转移

Zf=0

Jb

低于则转移

Cf=1

Jnb

不低于则转移

Cf=0

Ja

高于则转移

Cf=0zf=0

Jna

不高于则转移

Cf=1zf=1

DF  方向标志位,在串处理指令中,控制每次操作后的sidi 的增减

Df=0  每次操作后sidi 的递增

Df=1   每次操作后sidi的递减

Movsb 相当于

如果df=0

Inc si

Inc di

如果df=1

Dec si

Dec di

Movsw 相当于

如果df=0

Add si,2

Add di,2

如果df=1

Sub si,2

Sub di,2

一般过rep配合使用

Rep是根据cx的值,重复后面的串传送指令

Rep movsb相当于

S:movsb

Loop s

Pushfpopf 把标志寄存器压栈出栈

Int指令为中断指令  int n 为触发n号中断

------------恢复内容结束------------

原文地址:https://www.cnblogs.com/youyaoqi/p/15271940.html