间接操作

作者在 2009-11-02 22:27:43 发布以下内容

1.        间接操作数

间接操作数可以是任何用方括号括起来的32位通用寄存器(EAXEBXECXEDX

ESIEDIEBPESP),寄存器里面存放数据的偏移。

    PTR与间接操作数的联合使用:操作数的大小通常不明确,如:inc  [esi]编译器在编译时会产生“operand must have size”的错误信息,可以使用PTR操作符明确地表示操作数的尺寸:inc BYTE PTR [esi]

2.        变址操作数

变址操作数将常量加到寄存器上以产生一个有效的地址,任何32位通用寄存器都可以

作为指针寄存器,MASM中允许使用两种不同的格式:

constant[reg]

[constant+reg]

3.        指针

基于intel体系的基本指针类型:NEARFAR

保护模式使用NEAR指针被存储在双字节变量中,还可以使用OFFSET操作符。

定义变量时,TYPEDEF操作符允许创建与内建类型特性完全相同的用户自定义类型。 

如:PBYTE  TYPEDEF  PTR  BYTE    ;创建了指向字节的数据类型PBYTE

    .data

    arrayB  BYTE  10h20h30h40h

    ptr1  PBYTE   ?

    ptr2  PBYTE   arrayB

汇编 | 阅读 1035 次
文章评论,共0条
游客请输入验证码
浏览21181次