[汇编学习笔记][第十六章直接定址表]

本文详细介绍了直接定址表的基本概念及其在程序中的应用。通过实例解释了如何使用标号来引用内存中的数据,并展示了如何利用这些标号进行数据操作。此外,还讨论了在不同段中使用数据标号的方法,以及如何构建程序入口地址的直接定址表。

第十六章 直接定址表

16.1 描述了单元长度的标号

  • 格式

    code segment
        a db 1,2,3,4,5,6,7,8,
        b dw 0

     

  • 功能

    此时标号a,b 不仅代表了内存单元,还代表了内存长度

     mov ax,b
    =mov ax,cs:[8]
    
     mov b,2
    =move word ptr cs:[8],2
    
     inc b
    =inc word ptr cs:[8]

     

  • 更重要,提供了一种类似数组的表示方式了(其实跟这里也没关系)

     mov al,a[si]
    =mov al,cs:[0][si]
    
     mov al,a[3]
    =mov al,cs:0[3]

     

  • 不过不要以为b[0],b[1] 没有重叠的地方 还是有一个字节会重叠。

16.2 在其他段中使用数据标号

  • assume里声明(编辑器需要)
  • data的标号,赋值给ds

16.3 直接定址表

。。看起来很高深的样子。。其实就是打表而已。。

16.4 程序入口地址的直接定址表

。。其实就是几个if,然后判断调用那个函数。。。

转载于:https://www.cnblogs.com/zy691357966/p/5480511.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值