Presentation is loading. Please wait.

Presentation is loading. Please wait.

逆向工程-汇编语言 君子谬@看雪学院.

Similar presentations


Presentation on theme: "逆向工程-汇编语言 君子谬@看雪学院."— Presentation transcript:

1 逆向工程-汇编语言

2 章节概述 本节的重点是了解汇编语言的7种寻址方式。

3 七种武器(七种寻址方式) 在存储器中,操作数或指令字写入或读出的方式,有地址指定方式、相联存储方式和堆栈存取方式。几乎所有的计算机,在内存中都采用地址指定方式。当采用地址指定方式时,形成操作数或指令地址的方式称为寻址方式。寻址方式分为两类,即指令寻址方式和数据寻址方式,前者比较简单,后者比较复杂。值得注意的是,在传统方式设计的计算机中,内存中指令的寻址与数据的寻址是交替进行的。

4 长生剑-立即数寻址方式 立即寻址方式的目的就是将操作数紧跟在操作码后面,与操作码一起放在指令代码段中,在程序运行时,程序直接调用该操作数,而不需要到其他地址单元中去取相应的操作数,上述的写在指令中的操作数也称作立即数。

5 碧玉刀-寄存器寻址方式 指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。把在指令中指出所使用寄存器(即:寄存器的助忆符)的寻址方式称为寄存器寻址方式。 寄存器寻址方式是一种简单快捷的寻址方式,源和目的操作数都可以是寄存器。 1、源操作数是寄存器寻址方式 如:ADD VARD, EAX ADD VARW, AX MOV VARB, BH等。 其中:VARD、VARW和VARB是双字,字和字节类型的内存变量。 2、目的操作数是寄存器寻址方式 如:ADD BH, 78h ADD AX, 1234h MOV EBX, H等。 3、源和目的操作数都是寄存器寻址方式 如:MOV EAX, EBX MOV AX, BX  MOV DH, BL等。

6 孔雀翎-直接寻址方式 在指令格式的地址字段中直接指出操作数在内存的地址ID 。
在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使用段超越前缀,那么,操作数可存放在其它段。 直接寻址方式常用于处理内存单元的数据,其操作数是内存变量的值。 指令中直接给出操作数地址(dir)的寻址方式称为直接寻址。  寻址对象为:  1 内部数据存储器,在指令中以直接地址表示;  2特殊功能寄存器SFR,在指令中用寄存器名称表示。 

7 多情环-寄存器间接寻址方式 寄存器间接寻址是将指定的寄存器内容为地址,由该地址所指定的单元内容作为操作数。MCS-51规定R0或R1为间接寻址寄存器,它可寻址内部RAM低位地址的128个字节单元内容。还可采用数据指针(DPTR)作为间接寻址寄存器,寻址外部数据存储器的64K字节空间,但不能用本寻址方法寻址特殊功能寄存器。 

8 霸王枪-寄存器相对寻址方式 操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容和指令中的8位/16位偏移量之和。其有效地址的计算公式如公式所示。 在不使用段超越前缀的情况下,有下列规定:     若有效地址用SI、DI和BX等之一来指定,则其缺省的段寄存器为DS;     若有效地址用BP来指定,则其缺省的段寄存器为SS。 指令中给出的8位/16位偏移量用补码表示。在计算有效地址时,如果偏移量是8位,则进行符号扩展成16位。当所得的有效地址超过0FFFFH,则取其64K的模。 例:假设指令:MOV BX, [SI+100H],在执行它时,(DS)=1000H,(SI)=2345H,内存单元12445H的内容为2715H,问该指令执行后,BX的值是什么? 根据寄存器相对寻址方式的规则,在执行本例指令时,源操作数的有效地址EA为: EA=(SI)+100H=2345H+100H=2445H 该操作数的物理地址应由DS和EA的值形成,即: PA=(DS)*16+EA=1000H* H=12445H。 所以,该指令的执行效果是:把从物理地址为12445H开始的一个字的值传送给BX。

9 离别钩-基址变址寻址方式 在基址加变址寻址方式中,通常把BX和BP看作是基址寄存器,把SI和DI看作变址寄存器,可把两种方式组合起来形成一种新的寻址方式。基址加变址的寻址方式是把一个基址寄存器BX或BP的内容,加上变址寄存器SI或DI的内容,并以一个段寄存器作为地址基准,作为操作数的地址。 当基址寄存器为BX时,段寄存器使用DS,当基址寄存器为BP时,段寄存器用SS。 例子:MOV AX, [BX+SI] 基址加变址寻址, MOV AX, [BX+DI+0400H] 带位移的基址加变址寻址。

10 拳头-相对基址变址寻址方式 在相对基址变址寻址方式中,通常把BX和BP看作是基址寄存器,把SI和DI看作变址寄存器。它是把一个基址寄存器BX或BP的内容,加上变址寄存器SI或DI的内容,再加上指令中给定的8位或16位位移量,并以一个段寄存器作为地址基准,作为操作数的地址。 当基址寄存器为BX时,段寄存器使用DS。 当基址寄存器为BP时,段寄存器则用SS。

11 结束


Download ppt "逆向工程-汇编语言 君子谬@看雪学院."

Similar presentations


Ads by Google