数据(程序)段外使用
数据(程序)段内使用
代码段中标号一般都有“:”
非代码段中“:”一般不使用
有:与无:
:的作用是将它前面的标号标记为地址,方便cs:ip指向它(调用子程序)
而数据段中的数据一般不为指令,用不含“:”的标号表示偏移地址也表示后面的数据格式,可利用这个特性方便的引用数据段中的数据

汇编如何识别是代码段还是数据段呢,是通过assume定义
所以我们也可以在assume处将数据段定义为代码段,从而使用:来直接定位所需要的标号处数据地址

之所以assume cs:code(此处code代指代码段,可以重命名)不能去掉,是因为code段中会用到标号,assume cs:code的作用就是默认code段中的标号的段地址为cs
如果我们为数据段也通过assume指定一个段寄存器(假设为ds),那么数据段的标号默认段地址为ds

总结:
:的使用使得前面的标号成为偏移地址,而偏移地址需要搭配段地址才能使用
assume就能将标号处偏移地址与一个段寄存器相联系(段地址)
没有“:”的标号不仅表示此处的偏移地址也表示了后面的每个数据所占内存大小
例:
assume ds:Data
Data segment
a db 1,2,3,4,5
b db 0,6,7,8,9
c dw a,b
d dd a,b
Data ends

Data段中标号a中的1可以这样表示,于是有((Data * 16)+a+0)=a[0]=1,其中0为偏移量
Data段中标号b中的6可以这样表示,于是有((Data * 16)+b+1) =b[1]=6,其中1为偏移量
a[偏移量]能够表示数据是因为assume将Data与一段寄存器ds联系,Data中标号的默认段寄存器就是ds

补充:c为字型数据存储的是a,b的偏移地址
d为双字型数据存储的是a,b的段地址+偏移地址
offset a:取偏移地址
seg a:取段地址

masm汇编标号用法总结相关推荐

  1. win10下运行debug (dosbox+masm汇编环境)

    win10下运行debug (dosbox+masm汇编环境) 一.下载,安装,路径 1.下载安装 ①.下载dosbox 链接:https://pan.baidu.com/s/1ppJTzhDZ4XP ...

  2. masm 汇编工具介绍

    #2020,win10环境下 1. dos-box 0.74 2.masm工具 3.工具版本介绍如下: MASM 编译器各版本的区别 MASM 4.00 这是最先广泛使用的一个 MASM 版本,适用于 ...

  3. 用EditPlus配置MASM汇编

    最开始写汇编程序,是打开一个记事本就写.但是记事本不是专门的程序编辑器,格式不好控制,更容易写错程序. 于是想到,能有一个简单的文本编辑器,能控制好ASM的格式,有关键字和保留字的颜色显示就好.恰好, ...

  4. arm汇编标号globl和word解释

    转载地址:http://blog.sina.com.cn/s/blog_4a3946360102wnaj.html 最简单的bootloader的编写步骤: 1. 初始化硬件:关看门狗.设置时钟.设置 ...

  5. linux 汇编 教程,Linux下实现 MASM汇编

    sudo apt-get install dosbox 步骤二:打开DOSbox,模拟C盘,在DOSbox输入 mount c /home/bao/ms-dos c 后面为自己指定的Linux下的目录 ...

  6. dosbox+masm汇编环境的安装和使用

    原博主教程 附件下载链接: 软件下载 解压缩下载的软件包可以得到 1.本文只使用第一个文件夹下的内容 2.D盘(哪个盘都可以,你喜欢就好)下新建文件夹d:\dos 3.dos文件夹下面新建asm文件夹 ...

  7. arm汇编标号globel和word解释

    bootloader的目标:启动内核   1.从Flash上把内核读入内存       a.能读Flash       b.初始化内存 时钟 其他   2.启动       a.设置参数       ...

  8. masm汇编之——过程与宏的区别

    定义方法 宏格式: 宏指令名 MACRO 形参···(宏定义体)ENDM 调用 宏名[形参] 作用:MASM.EXE会将调用到宏的地方用宏定义体完全替换.定义宏的地方不会生成机器码. 过程格式: 过程 ...

  9. 怎样在Win 10中运行MASM汇编代码

    由于科研需要,我想复习一下汇编的知识,大概十几年前写过挺多汇编代码(估计最少有五六千行吧,搞个单片机计算器什么的),不过已经基本上全忘了.下面总结一下如何在Win 10里运行,主要参考了一下内容: [ ...

最新文章

  1. Laravel5.5的异常捕获和处理
  2. 计算机视觉面试常见问题(含解答)
  3. Vertical Menu ver4
  4. 关于开发系统后门软件的几点思路
  5. VTK:图片之Transparency
  6. 在deepin上安装YouCompleteMe
  7. 无线数传在桥梁检测中传感器信号的采集应用
  8. 机器学习接口和代码之 KNN
  9. cookies与session
  10. e-mobile帐号状态存在异常_Java 常见异常种类
  11. onvif学习笔记8:最近写的一个ONVIF客户端的心得小结
  12. QT学习笔记——06-Day15_C++_QT
  13. 模电数电高频电路综合实验成套设备QY-MS535G
  14. 修复PS插件Nik Collection崩溃的解决方法
  15. 小水智能-智能楼宇智慧建筑3D可视化系统,为房屋建设增加智能化
  16. OSChina 周六乱弹 —— 给你看个小仙女
  17. python《打气球》小游戏(二)
  18. Linux xorg 调整分辨率,编写xorg.conf解决Ubuntu分辨率不可调的问题
  19. openwrt的自动挂载功能
  20. 一个程序员老总的年终总结2010版

热门文章

  1. hdu_1233(最小生成树)
  2. python字符串的冒泡排序_如何实现python冒泡排序算法?
  3. [渗透攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包
  4. 1014. Best Sightseeing Pair
  5. 990. Satisfiability of Equality Equations
  6. LDC1000学习资料
  7. 1035:等差数列末项计算
  8. 1000:入门测试题目
  9. 大数据WEB阶段(一)XML文件的操作
  10. TMS320F28335的SCI通信-FIFO中断通信实验