- 1、本文档共113页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 节 子程序 汇编语言程序设计 .ppt
第6章 子程序
6.1 堆栈
6.2 子程序的基本格式和有关指令
6.3 应用子程序进行编程
6.4 整数输入与输出
6.5 子程序共享的方法
*6.6 递归
本章要点
习题六 ;6.1 堆栈
在汇编语言和机器语言中,堆栈在物理结构上是一段存放数据的连续的内存区域,以及一个称为栈顶指针的专用存储单元。堆栈中只能存入16位的字型数据,存入数据的操作称为“进栈”或“压栈”,已存入的数据也可以取出,称为“出栈”或“弹出”,数据的存取操作由专用指令完成。从逻辑上说,堆栈是一种按“先进后出”原则进行操作的数据结构,栈顶指针用于指出入栈操作和出栈操作的位置。
; 6.1.1 堆栈段
图6.1是堆栈的物理结构示意图,图中标出的SS和SP是与堆栈密切相关的寄存器,SS存放堆栈所占用内存区域的段地址,SP所指向的位置称为栈顶。 ;【基本格式】
段名 SEGMENT STACK
DW n DUP(?)
段名 ENDS
【说明】
(1)保留字STACK是堆栈段的专用符号,SEGMENT后面的保留字STACK表明这个段专供堆栈使用。
(2)段定义中用“DW n DUP(?)”说明堆栈所用内存区的大小为2n字节,其中n是一个常量。可根据程序需要,调节堆栈段的大小。因为堆栈只能存放字型数据,所以习惯上都是用DW伪指令来定义栈的大小。这不并是说用其它伪指令不行。 ; (3)按基本格式定义的栈是一个空栈,栈中没有存放有效数据。
(4)为了使SS和SP在程序执行时取得正确的值,必须在源程序中写一条伪指令:
ASSUME SS:堆栈段段名
但不需要像DS和ES一样在程序中用指令进行赋值。对SS和SP的赋值是由操作系统在把执行程序调入内存时由DOS本身完成的,DOS将把SS赋值为堆栈段的段地址,把SP赋值为2n。 ; (3)操作数d进栈是以减2以后的SP的值作为偏移地址,但程序中不允许出现[SP]的写法。不要与基地址寄存器或变址寄存器用作偏地址时的写法相混淆,也就是说,把PUSH指令理解成下面两条指令的组合是不正确的:
SUB SP, 2
MOV [SP], d
因为指令“MOV [SP], d”存在语法错误。
(4)PUSH指令会导致栈顶指针的移动,如果用PUSH指令把很多数据进栈,使SP不断???2,就有可能超出栈的有效范围。在一些高级语言中这种现象会导致堆栈溢出错误,但8088对此并不做任何检测和警告。因此要求编程人员自己注意控制堆栈的大小,估计可能进栈的数据量,以免由于栈溢出导致一些不可预测的后果。 ; 6.1.2.2 POP指令
【指令格式】POP ?d
【功能】从SS为段地址、SP为偏移地址对应的内存中取出一个字型数据,送到操作数d指定的位置,然后把SP的值加2。对操作数d的寻址方式要求与PUSH指令相同。
堆栈通常用于临时保存数据。一般做法是先用PUSH指令把需要保存的数据入栈,然后完成一定的指令序列,再用POP指令把原先保存的数据出栈。用堆栈保存数据的特点是不用定义变量,不必关心被保存的数据到底在栈的什么位置,只要保证出栈和进栈的对应关系即可。当CPU中的寄存器不够使用时经常用堆栈临时保存数据。 ; 栈顶所指位置以上的部分是堆栈的空闲区,以下部分是已入栈的数据存放区(见图6.1),例6.1用来说明PUSH指令和POP指令对堆栈的影响。
【例6.1】设AX=4F8AH,BX=307CH,SP=1000H,分别逐条执行下列指令,用内存图的形式画出堆栈的变化情况,并分析程序段执行完后AX和BX寄存器的值。
PUSH AX
PUSH BX
POP AX
POP BX; 【解】堆栈变化见图6.2,程序段执行完后AX=307CH,BX=4F8AH。 ; XX 0FFC XX 0FFC
XX 0FFD XX 0FFD
SP→ 8A 0FFE XX 0FFE
4F 0FFF XX 0FFF
YY 1000 SP→ YY 1000
?
; 6.1.2.3 PUSHF和POPF指令
【指令格式】PUSHF
【功能】把SP的值
您可能关注的文档
- 第6章 信息相关管理 相关管理秘书实务(第二版) .ppt
- 第6章 农业企业经营决策 农业企业经营相关管理 .ppt
- 第6章 决策分析 相关管理定量分析 .ppt
- 第6章 多媒体系统结构 多媒体 技术 知识 ppt 课件.ppt
- 第6章 导游与领队人员相关管理法规制度 旅游政策与法规 .ppt
- 第6章 建筑工程质量相关管理.ppt
- 第6章 数控伺服系统 数控技术 知识课件.ppt
- 第6章 测试结果及误差分析 检测技术 知识与仪器 工程测试技术 知识 .ppt
- 第6章 激励理论与相关管理(下) 相关管理心理学 .ppt
- 第6章 生产和服务设施布置 《生产与运作相关管理》课件.ppt
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 云南西部沿边高校边境缅甸语人才培养的校政企合作模式探索.docx VIP
- 《固定式钢梯及平台安全要求 第2部分:钢斜梯》GB 4053.2-2009.docx VIP
- 幼小科学衔接视角下家校社协同共育现状及对策研究.pdf VIP
- 2025中国中信金融资产管理股份有限公司甘肃分公司招聘笔试备考题库及答案解析.docx VIP
- 旅游警务服务规范.pdf
- 2025凉山州继续教育公需科目满分答案-深入学xi关于发展新生产力的重要论述.docx VIP
- 第三章 教育目的.ppt VIP
- 乳腺癌脑转移瘤护理查房.pptx VIP
- 眼科专科护理操作风险防范.pptx VIP
- 真菌镜检报告.pptx VIP
文档评论(0)