- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
10-11微机原理和应用08.ppt10-11微机原理和应用08.ppt
堆栈操作
“先进后出FILO”存取的存储区域,只有一个数据出入口,即当前栈顶(不断变化)
两种基本操作
数据压进堆栈PUSH
数据弹出堆栈操作POP
SS指向堆栈段的起始位置
ESP指定栈顶
数据进入堆栈,ESP逐渐减小
数据依次弹出、ESP逐渐增大
Word 1
Word 2
Word 3
Word 4
Word 5
Stack
PUSH
POP
咯盆戈叁魁绪惋隘术沛救饭王讫辙嫂孟登瞄净偷腋卤谚鸭逼谐柠院熬岗辨10-11微机原理和应用0810-11微机原理和应用08
入栈指令PUSH
先将ESP减小作为当前栈顶
然后将源操作数(立即数、通用寄存器和段寄存器内容或存储器操作数)传送到当前栈顶
以字或双字为单位操作
进栈字量数据时,ESP减2
进栈双字量数据时,ESP减4
Word 1
Stack
PUSH
-2
push ax
push ebx
XX
SS
低地址
高地址
句练粟唆殴篆迄现踌缔榷杭直拇韦铂冬隅拓撤券抑概傈盟谷闷惮颅盒赐笛10-11微机原理和应用0810-11微机原理和应用08
出栈指令POP
先将栈顶数据传送到目的操作数(通用寄存器、存储单元或段寄存器)
然后ESP增加作为当前栈顶
以字或双字为单位操作
出栈字量数据时,ESP加2
出栈双字量数据时,ESP加4
Word 1
Stack
POP
+2
pop ax
pop ebx
Word 1
低地址
高地址
SS
XX
夫稚保严条彼裤匙我叹限书祖假贾诞袄坷傈仗如俗踞顽贬妥晤桃覆鹿潭动10-11微机原理和应用0810-11微机原理和应用08
[例题4-9]堆栈操作程序
;数据段
= 000A ten = 10
0000 0100 1349 wvar dw 0100h,1349h
000412345678
dvar dd
;代码段
0010 A1 0000 R mov ax,wvar
0013 50 push ax
0014 68 000A push word ptr ten
0017 66| FF 36 0004 R push dvar
001C 66| 5A pop edx
001E 58 pop ax
001F 8F 06 0002 R pop wvar+2
昔沥艰鹅歉衰支兰闭栖颜砍瑞炊泥推朴型衡阑霹淄掂飘席赴视即枚劳慎圾10-11微机原理和应用0810-11微机原理和应用08
堆栈的作用
堆栈不可或缺,被很多指令使用:
堆栈操作指令
子程序调用CALL和返回RET,中断调用INT和返回IRET等
内部异常、外部中断等也利用堆栈
堆栈可用来临时存放数据,以便随时恢复它们
常利用堆栈基址指针EBP,随机读写堆栈数据
mov ax,[ebp+8] ;AX←SS:[EBP+8]
mov [ebp],eax ;SS:[EBP]←EAX
利用堆栈实现主、子程序间传递参数
堆栈还常用于子程序的寄存器保护和恢复
要注意入栈和出栈的数据要成对,要保持堆栈平衡
募氯葫绷岛歹囚产畸旅轮亭纲祝机少圣纂府语大迸辽少短粪脉鸣剖皋帧膊10-11微机原理和应用0810-11微机原理和应用08
有效地址获取指令LEA
地址传送指令获取存储器操作数的地址
LEA r16/r32,mem
;r16/r32←mem的有效地址EA(不需类型一致)
LEA指令类似的地址操作符OFFSET的作用
LEA指令在指令执行时计算出偏移地址
OFFSET操作符是在汇编阶段取得变量的偏移地址
OFFSET无需在执行时计算、指令执行速度更快
LEA指令能获取汇编阶段无法确定的偏移地址
lea bx, [bx+si+0f62h]
mov edi, offset var
尚挂缘苇驰棺爬顷茁翼望电钎鸿斩耀叙硒藩铁抬丘术蓝焉素倒拎疚竹正佛10-11微机原理和应用0810-11微机原理和应用08
[例题4-10]地址传送程序
;数据段
0000 4142 0100 1349 wvar dw 4142h
;代码段
0010 A1 0000 R mov ax,wvar
0013 8D 36 0000 R lea si,wvar
0017 8B 1C mov bx,[si]
0019 BD 0000 R mov bp,offset wvar
001C 3E: 8B 4E 00 mov cx,ds:[bp]
0020 8D 94 0100 lea dx,[si+100h]
0024 8D 3A lea di,[bp+si]
铜吴青求述翅炯赤丧招苹衷括沏叼揍溢骋点拾央远剁绩亢个册惶兜幌大皖10-11微机原理和应用0810-11微机原理和应用08
例:
设(DI)=5000H,(ES)=0000H,内存单元(ES:500AH)=00FF
您可能关注的文档
- 村“三讲一树”与“改陋习,树新风”活动实施方案.doc
- 期末考试高浓缩猛料:大学英语三:翻译与写作-作文.doc
- 整理与复习三年级数学下册.ppt
- 机械制造技术基础习题与答案 第二章起.doc
- 未注公差等级与标准公差表.doc
- 标识与可追溯性.ppt
- 正说反译与反说正译_反译练习.ppt
- 案例2-1与2-2:货币制度.doc
- 暖通空调习题集与答案.doc
- 武汉理工课程设计阶数求与汇编语言程序设计.doc
- 2025年02月云南民族大学硕士以上人员(6人)笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2025年02月浙江宁波市鄞州区营商环境建设办公室公开招聘编外人员1人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2025年01月贵州毕节市第一批次“人才强市”引才649人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2025年02月山东临沂市临沭县部分事业单位公开招聘综合类岗位人员26人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2025年02月山东临沂市罗庄区部分事业单位公开招聘综合类岗位人员15人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2025年02月山东临沂沂河新区部分事业单位公开招聘综合类岗位人员12人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2025年02月日照市莒县事业单位初级综合类岗位人员笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
- 2025山西省运城新绛县绛州文化旅游发展投资有限公司招聘员工笔试参考题库附带答案详解.doc
- 2025山东东营市振河劳务有限责任公司招聘1人笔试参考题库附带答案详解.doc
- 2025年02月山东威海临港经济技术开发区镇属事业单位公开招聘工作人员12人笔试历年典型考题(历年真题考点)解题思路附带答案详解.doc
文档评论(0)