(6)包含多个段的程序

本文介绍了汇编语言中的一些基本概念,包括定义字节、字和双字的指令(db、dw、dd),如何标记程序的开始与结束(start 和 endstart),以及为何需要进行段划分。此外还讨论了段寄存器的使用限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、定义

      db        define byte

      dw        define word

      dd         define dword(double word)



2、start  标明程序指令从这里开始

      code虽然定义为代码段,但这个是活动的,也可是存储数据,如果标明真正的代码开始的地方呢?start的后面就是。

      当然程序的最后就得用end start来结束。

     改其它行不?行!,因为编译器只认end XXXx后面的标号,这个标号就是真正执行位置。


3、为啥要划分这么多段?

      因为人类是要发展的,所有有规划,有了规划这样大家都看得明白,做事也方便。

     cs,ds,es就是基于这个目的,其实计算才不管你李刚,就只认一堆二进制,规划的目的就是你好检查错误,别人也好阅读。


4、一定要定义成codesg之类么?

      否,如3所说,随便什么标号都行,但要达到一个目的,你自己能懂,别人更要能懂!如:

     a    segment

              ..................

      a   ends

      这样也是可以的,但几年后,你能明白这个a是啥玩意?


5、段寄存器都是“孤家寡人”,它不会和平民(立即数)打交道,

      它只与大将(通用寄存器打交道),故: mov ds,23  ;错误

       mov ax,23

       mov ds,ax   ;正确



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值