文档详情

微机原理与应用第七章.ppt

发布:2017-05-28约2.18万字共82页下载文档
文本预览下载声明
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * (一)基本的汇编语言程序框架如下: stack SEGMENT PARA ‘stack‘ DB 100 DUP(‘stack’) stack ENDS data SEGMENT 数据、变量在此定义 data ENDS code SEGMENT ASSUME CS:code, DS:data, ES:data start: MOV AX, data MOV DS, AX MOV ES, AX MOV AX , stack MOV SS , AX 此处加入你自己的程序段 MOV AL, 4CH INT 21H code ENDS END start 堆栈段 数据段 代码段 .EXE文件装入内存时都产生一个PSP程序前缀段,里面是程序运行的一些基本信息,存放在程序的开始位置0-0FFH,PSP的长度是100H。 在程序装入存储器后,CS和IP、SS和SP四个寄存器的值会自动分配好,而DS和ES指向PSP的段基址。程序运行结束时,返回到PSP的开始位置执行 。 start: push ds sub ax,ax push ax ret 不可用存储区低端 程序前缀段PSP INT 20 内存大小 程序模块 (可包括多个段) 不可用存储区高端 .EXE文件装入内存 FAR 程序前缀段PSP入口地址:DS:0;ES:0 100H个字节 功能调用 SP SP SP DSL DSH 00H 00H (二)基本的汇编语言程序框架如下: stack SEGMENT PARA ‘stack‘ DB 100 DUP(?) stack ENDS data SEGMENT 数据、变量在此定义 data ENDS code SEGMENT ASSUME CS:code, DS:data, ES:data , SS:stack begin proc far start push ds sub ax,ax push ax MOV AX, data MOV DS , AX MOV ES , AX MOV AX , stack MOV SS , AX 此处加入你自己的程序段 ret begin endp code ENDS END start 堆栈段 数据段 代码段 .COM文件装入内存时都产 生一个PSP程序前缀段,里面 是程序运行的一些基本信息, 存放在程序的开始位置0-0FFH, PSP的长度是100H。 不可用存储区低端 程序前缀段PSP 程序模块 (只能有一个段) 堆栈 不可用存储区高端 .COM文件装入内存 NEAR 内存大小 程序前缀段PSP入口地址:DS:0;ES:0; SS:0 ;CS:0 100H个字节 功能调用 属性 .EXE文件 .COM文件 许可的段数 多个段 只能有一个段 段引用 可以引用 无 无 堆栈段 必须定义 程序代码起点 不要求 ORG 100H 程序大小 可为任意大小 小于64K PSP地址 初始化时赋给ES和DS 初始化时赋给ES,DS,SS和CS 重定位信息 需要 不需要 (三)基本的汇编语言程序框架如下: 例(P190) 堆栈段 数据段 代
显示全部
相似文档