HLA 高级汇编 第三章 存储器的访问与结构

。。80×86存储器寻址方式

变址寻址和比例变址寻址

存储器结构

程序对存储器的分配

数据类型强制转换

80×86栈

动态存储器分配

运行时存储器的结构:   有  代码段  静态段(static) 只读数据段(readonly)  存储断storage

@nostorage属性,,允许在静态段,只读段,存储段中声明变量,但并不为这些变量分配实际的存储空间,,只是将当前地址分配给变量,并不为这个对象分配任何存储空间,该变量与出现在变量声明段的下一个对象共享相同的存储器地址

readonly

    abcd: dword ;@nostorage;

                 byte  ‘a’,‘b’,‘c‘,’d‘;

inc和dec指令:

      mem.alloc(128);

       for(mov(0,ebx);ebx<128;inc(ebx))do

         mov(0,(type byte  [eax+ebx]));

       endfor;

获取存储器对象的地址:   “&”获得静态变量的地址,,但是不能获得自动变量的地址(var段中的地址),使用lea指令

lea(reg32,变量内存)   第一个参数必须为32位的寄存器,第二个参数可以是任何合法的内存引用

 

 

static

  b:     byte;    @nostorage;

          byte  7,0,6,1,5,2,4;

;;;;

;;;;;

;;;;;

lea(ebx,b);

for( mov(0,ecx);ecx<8;inc(ecx) )do

   stdout.put("[ebx+ecx]=",(type byte [ebx+ecx]),nl);

endfor

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值