汇编干货笔记->6.1 定义多个段


以下是文字提取部分,阅读完毕的同学可以离开了
我前面已经讲过;栈;
使用push和pop进行;入栈和出栈;
但栈空间是;系统自动分配;的
我们也可以;自己定义;这段空间
下面这段程序是把八个数据;倒过来存放;

因为ss:sp指向;栈顶;
我们要把ss:sp;重新设置;
数据段占用;16字节;
因此我们的栈空间是:;16~31;
我们要把sp设置为;32;
如果不知道为什么是32的请返回3.1

;一个段;中既有数据又有栈
是不是显得;很没有节操;
而且8086规定一个段不能超过;64kb;
;莫要慌张;
我来告诉你一个;好方法;

下面的代码定义;多个段;
他与定义代码段的方法;别无二致;
;不同之处;在于
不同的段具有;不同的;段名

段已经定义完毕
;引用data;就可知道数据段的段地址
就像下面所示

请注意:8086不允许将数值;直接送入;段寄存器
所以你;不能;写成这样

放眼望去;整个程序;
定义不同的段,方法是;一样的;
如何;对段进行引用;是核心
我们要把;data赋值给ds;
把;stack赋值给ss;

我们给数据段起了个别名:;data;
但此时cpu并;不知道ds是谁;
我们又用assume;将ds与data关联;
此时cpu同样不知道;谁是ds;
因为assume是;伪指令;
只有;编译器;清楚它的意图
当且仅当我们打出;上述指令;后
才能;控制cpu;

你可能要问
既然栈段和数据段都使用了;mov指令;
让段寄存器;指向段地址;
为什么;不见;cs:ip也这么使用呢
因为;end start;这个命令
我前面有讲的哦
问这个问题的都应该给我;赞赏1元;
;作为不好好学习的惩罚;

最后
;欢迎光临小站:yuruotong.com;

Process finished with exit code 0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,550评论 8 114
  • 汇编总结 汇编的发展史 机械语言 由0和1组成的机器指令(如:0101 0001 1101 0110) 汇编语言(...
    iChuck阅读 1,345评论 1 8
  • 王爽汇编全书知识点大纲 第一章 基础知识 机器语言 汇编语言的产生 汇编语言的组成 存储器 cpu对存储器的读写 ...
    2c3ba901516f阅读 2,469评论 0 1
  • 越底层越单纯!真正的程序员都需要了解的一门非常重要的语言,汇编! 机器语言 我们所写的语言最终安装在机器上的是什么...
    瑞阳gg阅读 645评论 0 0
  • 2017年10月13号,flowable团队终于释放了flowable6.2版本,这个也是目前最新官方释放的稳定版...
    白conner阅读 2,979评论 1 1