汇编语言学习笔记(6)——包含多个段的程序
2015-06-15 11:35
465 查看
1、程序取得所需空间的方法有两种,一种是在加载程序的时候为程序分配,再就是程序在执行的过程中向系统申请。
2、我们若要一个程序在被加载的时候取得所需的空间,则必须要在源程序中做出说明。我们通过在源程序中定义段来进行内存空间的获取
3、程序运行的时候,CS寄存器中存放代码段的段地址。
4、在源程序中使用
5、通过定义若干个字型数据来开辟一块内存空间
6、由于将数据,代码,栈放入同一个段中会导致程序混乱和段容量限制的问题,所以要将他们分别存放于多个段中。
7、设置多个段的源程序示例:
8、80806CPU不允许将一个数值直接送入段寄存器,通常都需要使用通用寄存器来中转。
2、我们若要一个程序在被加载的时候取得所需的空间,则必须要在源程序中做出说明。我们通过在源程序中定义段来进行内存空间的获取
3、程序运行的时候,CS寄存器中存放代码段的段地址。
4、在源程序中使用
end 标号来指明程序的入口(要执行的第一条指令),所以程序架构就可以如下:
assume cs:code code segment …… 数据 …… start: …… 代码 …… code ends end start
5、通过定义若干个字型数据来开辟一块内存空间
6、由于将数据,代码,栈放入同一个段中会导致程序混乱和段容量限制的问题,所以要将他们分别存放于多个段中。
7、设置多个段的源程序示例:
assume cs:code,ds:data,ss:stack data segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h data ends stack segment dw 0,0,0,0,0,0,0,0 stack ends code segment start: mov ax,stack mov ss,ax mov sp,16 mov ax,data mov ds,ax mov bx,0 mov cx,8 s: push [bx] add bx,2 loop s mov bx,0 mov cx,8 s0: pop [bx] add bx,2 loop s0 mov ax,4c00h int 21h code ends end start
8、80806CPU不允许将一个数值直接送入段寄存器,通常都需要使用通用寄存器来中转。
相关文章推荐
- PHP header 你所不知道的强大所在:交互HTT状态码 SEO优化 在线登录验证 大文件下载
- 2014 年华为校园招聘机试题
- 企业应用通用架构图
- 响应式和自适应的区别
- DuiLib : 修改内嵌网页的安全选项
- CC1110 Mini Development Kit 868-915 MHz
- Android中资源文件夹res/raw和assets的使用
- linux 命令——12 more (转)
- awk 详解
- Android系统架构分析 和 Android应用程序组件介绍
- 无刷电动车控制器设计要点
- 有return的情况下try catch finally的执行顺序(最有说服力的总结)
- 图像处理和图像识别中常用的OpenCV函数
- stdarg.cpp
- jQuery修改text disable属性
- jquery选择器大全
- 块设备驱动注册和注销、加载与卸载、块设备驱动的I/O请求
- nginx学习(2):启动gzip、虚拟主机、请求转发、负载均衡
- Android学习之路小结1(加一些小知识点)
- phpexcel yii 导入