码迷,mamicode.com
首页 > 编程语言 > 详细

汇编语言之包含多个段的程序

时间:2018-11-25 17:51:04      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:end   .com   问题   cpu   访问   fine   inf   本质   idt   

一:dw=define word 即使用dw定义字型数据(数据之间以逗号分隔)dw 既可定义数据,也可以说用它开辟内存空间

db定义字节类型变量,一个字节数据占1个字节单元,读完一个,偏移量加1

dw定义字类型变量,一个字数据占2个字节单元,读完一个,偏移量加2
dd定义双字类型变量,一个双字数据占4个字节单元,读完一个,偏移量加4

二:程序取得所需空间的方法有两种,1是在加载程序的时候为程序分配,2是程序在执行的过程中向系统申请。

三:数据和指令在本质上无区别,为了让程序的入口处是我们所希望执行的指令。我们可以加标号。在程序入口前加标号,在程序结束后加上相同的标号。

  标号 start 与 end start——end 除了通知编译器程序结束外,还可以通知编译器程序的入口在什么地方,

  此处用 end 指令表明了程序的入口在标号 start 处,被转化为一个入口地址

四:将数据、代码、栈放在不同的段中,可以使程序结构清晰易懂,对于8086而言,可以使用多个栈,解决长度超64kb的限制问题

  访问段中的数据,通过地址(段地址和偏移地址),段名即代表一个标号,代表段地址。

  用伪指令 assume 将 cs、ds、ss 分别和 code、data、stack 段相连之后,CPU 也没并没有将对应的段和段寄存器相连接,因为 assume 只是伪指令

 

技术分享图片

 

汇编语言之包含多个段的程序

标签:end   .com   问题   cpu   访问   fine   inf   本质   idt   

原文地址:https://www.cnblogs.com/bowentianxia/p/10016069.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!