006-十六进制与内存单元长度BYTE,WORD,DWORD

十六进制

字节,字,双字

汇编中的内存单元长度修饰

 

add [ebx],0x111 //00401048  |.  8003 11   ADD BYTE PTR DS:[EBX],11     ;  i=i+11

 

一、十六进制

    十六进制同我们日常中的十进制表示法不一样。它由0-9,A-F,组成。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;

    十进制元素(0,1,2,3,4,5,6,7,8,9)

    十六进制元素(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

     9+1=10; //十进制 A

     F+1=10; //十六进制

     99+1=100;//十进制 0x64

     FF+1=100;//十六进制 1*16*16=256  //0xBDA=11*16*16+13*16+10

     十六进制一般会加上前缀0x 汇编中也可以加上h后缀

     //想一想 十六进制中

     0x0F+2=0x11   0xF9+1=0xFA  0x10+1=0x11   0x18+8=0x20  8+9=0x11

二、字节,字,双字

    字节  (1字节):BYTE类型  ( unsigned char)   0-255        表示成16进制0--0xFF

    字   (2字节):WORD类型 (unsigned short)   0-65535,   表示成16进制0--0xFFFF

    双字 (4字节):DWORD类型(unsigned long)   0-4294967295 表示成16进制0--0xFFFFFFFF

   

三、汇编中的内存单元长度修饰

1、自动加上修饰前缀规律

 intpb=3;

 mov[eax],ebx

 movedx,[ecx]

 mov ebx,pb

BYTE c=3;

WORD w=4;

DWORD dw=5;

mov c,0x87654321

mov w,0x87654321

mov dw,0x87654321

 

2、必须手动添加内存单元长度修饰的情况

//前边是存储器,后边是常量的情况,需要手动添加长度修饰

add [ebx],0x111 //特殊...因为编译器不知道具体长度,会默认为字节长度

mov byte ptr [ebx],0x87654321

mov word ptr [ebx],0x87654321

mov dword ptr [ebx],0x87654321

 

     BYTEc=3;

         WORDw=4;

         DWORDdw=5;

         __asm

         {

                      add c,0x87654321 // mov[ebp-??],0x21

                           add w,0x87654321

                           add dw,0x87654321

                           /*自动添加的长度修饰符

                           00401071  |. 8045 EF 21    ADD BYTE PTRSS:[EBP-11],21              ;  c=21

                           00401075  |.  66:8145 FC 21>ADD WORD PTRSS:[EBP-4],4321             ;  w=4321

                           0040107B  |. 8145 F0 21436>ADD DWORD PTR SS:[EBP-10],87654321       ; dw=87654321

                           */

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蚂蚁_CrkRes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值