第三讲 寄存器_第1页
第三讲 寄存器_第2页
第三讲 寄存器_第3页
第三讲 寄存器_第4页
第三讲 寄存器_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章寄存器(内存访问)3.1内存中字的存储3.2DS和[address]3.3字的传送3.4mov、add、sub指令3.5数据段3.6栈3.7CPU提供的栈机制3.8栈顶超界的问题3.9push、pop指令3.10栈段引言在第2章中,我们主要从CPU如何执行指令的角度讲解了8086CPU的逻辑结构、形成物理地址的方法、相关的寄存器以及一些指令。这一章中,我们从访问内存的角度继续学习几个寄存器。在0地址处开始存放20000:0号单元是低地址单元,1号单元是高地址单元。3.1内存中字的存储3.1内存中字的存储问题:(1)0地址单元中存放的字节型数据是多少?(2)0地址字单元中存放的字型数据是多少?(3)2地址字单元中存放的字节型数据是多少?3.1内存中字的存储问题(续):(4)2地址单元中存放的字型数据是多少?(5)1地址字单元中存放的字型数据是多少?结论3.1内存中字的存储结论:任何两个地址连续的内存单元,N号单元和N+1号单元,可以将它们看成两个内存单元,也可以看成一个地址为N的字单元中的高位字节单元和低位字节单元。3.2DS和[address]CPU要读取一个内存单元的时候,必须先给出这个内存单元的地址;在8086PC中,内存地址由段地址和偏移地址组成。8086CPU中有一个DS寄存器,通常用来存放要访问的数据的段地址。例如3.2DS和[address]例如:我们要读取10000H单元的内容可以用如下程序段进行:movbx,1000Hmovds,bx

moval,[0]上面三条指令将10000H(1000:0)中的数据读到al中。3.2DS和[address]moval,[0]已知的mov指令可完成的两种传送功能:(1)将数据直接送入寄存器;(2)将一个寄存器中的内容送入另一个寄存器中。mov指令还可以将一个内存单元中的内容送入一个寄存器。3.负2海DS和[a镜dd龟re痒ss匹]从哪逗个内哗存单德元送咱到哪辉个寄览存器杀中呢报?mo尚v指令秋的格泪式:mo掘v寄存嗓器名灭,内售存单螺元地脸址“[…器]”表示缴一个毅内存犁单元碌,“[…肺]”中的0表示垃内存林单元端的偏区移地犹址。那么庄内存旺单元挤的段惹地址戏是多起少呢孙?3.沙2范DS和[a架dd康re柏ss业]执行延指令阅时,80嘱86波CP焦U自动气取DS中的毒数据您为内困存单魄元的债段地做址。如何凭用mo考v指令刻从10盏00午0H中读狱取数磁据?10保00啦0H表示熟为10册00很:0(段拍地址:偏移勉地址捉)将段慕地址10焦00购H放入ds用mo渣val曲,[并0]完成纱传送厉(mo渡v指令命中的[]说明依操作祖对象谅是一牙个内示存单咬元,[]中的0说明深这个罗内存撇单元腹的偏杀移地自址是0,它轰的段弟地址就默认乌放在ds中)如何泊把10卫00爱H送入ds?3.妨2巡寿DS和[a满dd谣re辩ss腔]如何晚把10园00违H送入ds?传送说指令mo梅vax村,1相似样的方诉式mo页vds麦,1拨00爬0H毒?80忠86橡CP盟U不支授持将底数据陪直接填送入席段寄替存器晓的操津作,ds是一才个段束寄存桥器。(硬吃件设惠计的都问题逝)mo搬vds惯,1聚00写0H是非系法的党。数据一般舒的寄界存器段寄呜存器3.严2流DS和[a会dd留re寒ss忍]问题锤:写几渗条指夜令,扣将al中的惕数据径送入预内存怜单元10抖00命0H?(牺思考迫后分钓析)分析员问题昌本质膀:怎样柱将数裙据从补寄存有器送提入内局存单勿元?结论脸:mo抛vbx商,1联00感0Hmo背vds催,b下xmo贪v[0也],辜al(一种脊合理倡的回敬答)3.肢3字的贷传送因为80典86醋CP柿U是16位结碰构,疏有16根数志据线羽,所押以,警可以宇一次帽性传份送16位的飞数据流,也糖就是狐一次泽性传沙送一裳个字截。问题3.拘3:内肃存中辅的情惩况如掏右图雁,写兽出下昌面指石令执音行后疮寄存毕器ax,bx,cx中的湾值。思考两后看分析。(块单步波跟踪千)3.地3字的优传送问题3.丸3分析问题3.锄4:内校存中感的情思况如朽右图投,写牙出下向面指淘令执慈行后切寄存乳器ax,bx,cx中的糖值。思考幸后看分析。(萄单步眼跟踪吐)3.促3字的忧传送问题3.俗4分析3.及4吊mo房诚v、ad概d、su瞧b指令已学mo管v指令圈的几稼种形让式:mo谜v寄存捐器,闯数据mo它v寄存欣器,六寄存贪器mo点v寄存链器,梯内存赌单元mo蔽v内存桂单元趋,寄笑存器mo像v段寄域存器畅,寄有存器根据截已知箱指令叮进行缎推测3.钥4mo调v、ad掉d、su稼b指令根据诵已知哲指令佣进行尚推测滥:mo曾v段寄由存器熄,寄叉存器mo殃v寄存奴器,扣段寄咸存器烈(验枝证)mo雾v内存赖单元似,寄帮存器mo醒v内存妈单元昏,段芽寄存具器mo嘴v段寄疏存器毯,内慎存单挣元验证婆(De匀bu窗g)mo绝v段寄吼存器竟,寄蓝存器mo傍v寄存序器,纷段寄财存器ad根d和su浩b指令亿同mo奥v一样典,都携有两醋个操哈作对贴象。它们叛可以返对段胆寄存荣器进骡行操罢作吗贺?(请卡自行姑在De飘bu递g中试型验)3.啦4mo无v、ad厨d、su扫b指令3.董5数据文段前面姥讲过秆,对傅于8筝08盒6P绝C机轿,我桨们可犬以根泼据需谱要将天一组玻内存蹲单元膏定义躁为一命个段虚。我们芽可以闲将一甲组长铸度为础N(腥N≤64事K)厨、地炎址连犹续、询起始炮地址妨为1毒6的虹倍数充的内示存单归元当疏作专级门存谁储数沸据的荷内存乱空间苍,从泉而定的义了贯一个雅数据摘段。比如拜我们亦用12陵3B沟0H住~1质23乞B9佣H这段抹空间己来存带放数壤据:段地罩址:12羽3B达H长度溉:10字节3.晴5数据府段如何碍访问逃数据枕段中堤的数叫据呢习?将一纵段内造存当皮作数首据段野,是锡我们啊在编缩慧程时随的一吼种安寺排,热我们沟可以钩在具签体操希作的支时候燃,晶用ds存放炕数据虽段的周段地门址,号再根错据需迅要,以用相链关指庸令访哀问数歌据段困中的斜具体愚单元猴。示例3.示5数据候段我们减将12灿3B苗0H汽~1贡23祸BA垃H的内务存单洋元定烘义为寻数据段段,钱我们疤现在授要累梨加这稀个数逗据段省中的普前3个单欠元中室的数确据,船代码款如下剃:3.集5数据慎段问题3.味5写几杜条指瞧令,战累加惩数据皮段中剩的前3个字宰型数颜据。思考餐后看分析。问题3.办5分析注意籍:一慎个字划型数瞒据占供两个界单元上,所箭以偏险移地字址是0、2、4。3.严1节~3籍.5节滤小结(1)字裕在内榜存中捡存储刘时杠,要呀用两括个地她址连无续的雅内存妨单元掀来存旁放,这字的阿低位斧字节能存放命在低克地址附单元哑中,求高位写字节榆存放音再高挖地址看单元比中。(2)用mo肾v指令绘要访筝问内夏存单姿元,屋可以董在mo间v指令撕中只今给出浑单元搜的偏界移地利址,缸此时烈,段斯地址仗默认昼在DS寄存绝器中伐。(3)[a端dd骨re虎ss诸]表示呀一个戏偏移隔地址谈为ad嘉dr图es车s的内飞存单悠元。3.蝇1节~3芦.5节羡小结淋(续消)(4)在菜内存晨和寄出存器烦之间岭传送匀字型侮数据必时,够高地全址单恒元和角高8位寄梯存器主、低顾地址谎单元蔬和低8位寄背存器圾相对积应。(5)mo趣v、ad巧d、su螺b是具邻有两载个操是作对哄象的爪指令弹。jm建p是具参有一悟个操犹作对泥象的为指令窗。(6)可垃以根馆据自航己的介推测肢,在De倾bu奔g中实猾验指勺令的罢新格墓式。特别柜提示特别钢提示检测倡点3.涛1(p5午2)没有允通过量检测渡点请驰不要副向下帅学习唯!3.蠢6栈我们嘱研究工栈的坡角度最:栈是柳一种溉具有微特殊珠的访驼问方狸式的校存储巧空间尘。它盐的特堡殊性雄就在智于,训最后幻玉进入面这个员空间胜的数泰据,纲最先沃出去姑。可以换用一萄个盒互子和3本书着来描信述栈的油操作拌方式3.钟6栈栈有疫两个暂基本示的操悲作:入栈和出栈。入栈晨:将单一个沿新的椒元素呆放到更栈顶挠;出栈炊:从听栈顶谋取出桑一个挽元素矛。栈顶什的元南素总盆是最诸后入缴栈,片需要剪出栈猎时,王又最购先被任从栈昌中取贼出。栈的晴操作听规则门:LI次FO(La坦st服I剖n粗Fi坚rs语t犹Ou宏t,后逼进先肆出)3.辜7雄CP夕U提供韵的栈伞机制现今氏的CP拢U中都蔑有栈仓的设乡丰计。80谜86陵CP吼U提供凳相关颠的指悟令来意以栈味的方畏式访句问内临存空让间。这意铃味着择,我怪们在摇基于80狭86怀CP搜U编程逢的时伪候,销可以您将一统段内相存当冰作栈识来使偏用。3.榨7聋CP部U提供贞的栈够机制80关86裳CP长U提供致入栈叶和出携栈指浴令:僻(帮最基贫本的垃)PU漠SH(入宏栈)PO浅P(出淹栈)pu筹sh司a战x:将亦寄存宝器ax中的芳数据冶送入芒栈中革;po勒p乎ax:从营栈顶疤取出拉数据女送入ax。80只86骨CP舍U的入程栈和失出栈旅操作董都是斤以字冈为单鞠位进殃行的疗。3.进6栈下面拌举例瞒说明园,我扩们可杨以将10牵00织0H魄~1葛00和0F鲁H这段规内存屯当作勉栈来蕉使用可。下面岁一段糕指令情的执经行过屡程:mo邮vax亲,0禾12猛3Hpu林sh访a虾xmo必vbx新,2电26肢6Hpu返shbxmo罢vcx座,1呈12且2Hpu心shcxpo傻p者axpo女pbxpo丙pcx3.统6栈指令菜序列贝的执除行过恶程演准示注意喝:字胜型数辜据用膜两个腊单元费存放益,高榜地址摘单元悟放高8位,第低地帅址单财元放可低8位。是否乞有疑剧惑?两个朋疑问两个掀疑问1、CP骆U如何萍知道傻一段释内存腥空间危被当研作栈雹使用龄?2、执计行pu搏sh和po傻p的时羡候,通如何毁知道致哪个赌单元婆是栈幼顶单菜元?分析结论壤:任意妻时刻捉,SS遍:S抖P指向女栈顶旷元素岗。对于州两个奇疑问仔的分廉析回想:CP唇U如何去指导雀当前叔要执拘行的愁指令况所在琴的位窝置?寄存劫器CS和IP中存叶放着款当前插指令栗的段攻地址扬和偏洲移地途址。80州86奸CP隙U中,引有两孔个寄妇存器接:段寄因存器SS存放射栈顶定的段荐地址寄存密器SP存放勉栈顶织的偏餐移地妻址任意社时刻突,SS貌:S骂P指向便栈顶盏元素划。pu迹sh指令敬的执放行过筛程pu烤sh篮a恩x(1)SP暂=SP–2;(2)将ax中的迁内容欢送入SS古:S锻P指向异的内须存单员元处萌,SS娃:S帖P此时义指向谨新栈丝式顶。图示pu膜sh指令畏的执聪行过毫程3.隙6栈问题3.薄6:如线果我屯们将10牧00殃0H绞~1辟00邻0F裂H这段定空间照当作层栈,求初始劲状态撒栈是吃空的托,此帐时,SS味=1南00汇0H,SP疤=?思考译后看分析。问题3.跌6分析SP薯=枯0拼01斯0H问题3.痰6分析睛(续朗)我们援将10悲00网0H根~1细00雹0F园H这段博空间需当作未栈段冠,SS存=1敌00救0H,栈没空间杰大小真为16字节稀,抓栈最绪底部谣的字攀单元谋地址足为10明00粉:0辱00豆E。任意嫌时刻峡,SS顿:S再P指向此栈顶住,当搬栈中铃只有排一个圈元素滋的时浅候,SS泥=遣1剃00雪0H,SP弓=0夫00谨EH。问题3.狗6分析持(续附)栈为燃空,锹就相毁当于贼栈中影唯一危的元鼠素出缠栈,变出栈突后,SP适=S隐P+掠2,SP原来轿为00蜓0E昏H,加2后SP乌=1欢0H,所傅以,芽当栈献为空躬的时贤候,SS匹=1班00恶0H,SP守=1驶0H。换个碰角度刘看问题3.左6分析毅(续喜)换个野角度裳看:任意焰时刻吹,SS颜:S努P指向矿栈顶梨元素麦,当勒栈为帆空的奴时候催,栈孤中没啦有元蜘素,译也就放不存辨在栈恋顶元沸素,场所以SS早:S闪P只能蹈指向展栈的殿最底纸部单垮元下忆面的化单元旦,该赤单元宏的偏且移地免址为粘栈最那底部识的字灾单元踪蝶的偏遣移地厦址+2,栈砍最底漏部字价单元鼓的地暗址为10庄00颠:0写00妻E,所呼以栈工空时贱,SP资=0蜓01客0H。po创p指令晃的执亦行过绝程po庸p敏ax(1)将SS工:S锅P指向梦的内轰存单亏元处桨的数货据送物入ax中;(2)SP喇=茶S萍P+烘2,SS仆:S横P指向劲当前慌栈顶烟下面溉的单压元,倍以当验前栈大顶下竭面的测单元朋为新年的栈妇顶。图示po昆p指令尺的执烈行过隙程注意po衔p指令债的执秒行过弯程注意浪:出栈赠后,SS宵:S秩P指向狠新的乎栈顶10匀00结EH,po籍p操作胖前的圣栈顶损元素琴,10烂00蒸CH处的22崖66祸H依然稻存在敞,店但是自,它话已不合在栈遮中。当再帝次执辫行pu螺sh等入恳栈指菌令后督,SS情:S退P移至10削00驳CH,并贷在里农面写占入新请的数蝇据,罚它将评被覆障盖。3.退8栈顶唐超界鄙的问劳题SS和SP只记方录了服栈顶植的地凯址,献依靠SS和SP可以蝇保证费在入脑栈和松出栈默时找量到栈合顶。可是业,如怪何能躁够保捆证在恳入栈投、出言栈时喘,栈架顶不享会超蹄出栈蒸空间懒?3.弊8栈顶相超界凯的问拨题当栈满恶的时身候再控使用pu肃sh指令隔入栈,栈空肝的时异候再纷使用po屯p指令昏出栈,都将誉发生浩栈顶瓜超界室问题汤。栈顶久超界欢是危添险的摊。3.矩8栈顶父超界居的问米题栈顶茧超界抵是危橡险的泰:因为辟我们较既然顾将一骆段空介间安尚排为膀栈黎,那侄么在卧栈空龟间之胀外的林空间璃里很道可能项存放设了具拳有其布他用非途的旅数据匹、代坡码等叙,这瞧些数节据、雁代码越可能蛛是我左们自魄己的鹊程序澡中的竞,也冠可能脚是别咐的程寸序中赔的。(毕迹竟一煮个计袜算机栏系统肚并不姓是只阔有我故们自晕己的涨程序咽在运尽行)3.棒8栈顶么超界恩的问避题但是病由于够我们贝在入撇栈出川栈时姓的不披小心刃,而划将这拘些数守据、浙代码哪意外老地改繁写,烈将会拔引发另一连尼串的抚错误盐。我们谦当然尤希望CP蹲U可以休帮我睛们解跌决这舞个问框题,3.芝8栈顶秋超界刺的问词题比如截说在CP个U中有梨记录制栈顶残上限组和下盖限的确寄存春器,芳我们筒可以俱通过犯填写着这些开寄存梯器来怖指定真栈空匀间的耍范围爆,睡然后诵,CP翻U在执渔行pu头sh指令缸的时约候靠肝检测杀栈顶制上限壳寄存忆器,禁在执树行po尚p指令搅的时戒候靠从检测浑栈顶叙下限饱寄存次器保湿证不冷会超尖界。实际境情况绍:80妖86厕CP剖U中并蛇没有创这样秤的寄轮存器根。3.湖8栈顶诉超界坊的问别题80娱86鉴CP炒U不保堆证对开栈的室操作搅不会笨超界粘。这就所是说马,80宇86触CP愈U只知歪道栈梁顶在嗓何处午(由SS私:S阻P指示堤),婆而不混知道椒读者孔安排咬的栈骨空间尾有多敏大。殊这点销就好壁像鹿,CP稻U只知馋道当遍前要塌执行赶的指贷令在傅何处请(由CS势:S芽P指示司)而串不知涉道读乞者要臭执行荡的指卧令有荡多少柜。从这劈燕两点泉我们毛可以看出3.弓8栈顶崖超界慨的问峡题80泳86挪CP蔬U的工炉作机名理,量只考途虑当不前的屿情况滴:当前斑栈顶姐在何劝处;当前角要执离行的沿指令尘是哪温一条捉。结论3.丢8栈顶泉超界厨的问是题结论稻:我们皱在编拌程的鬼时候晚要自吨己操幸心栈慨顶超芦界的小问题镰,悦要根简据可加能用粥到的福最大拘栈空携间,陡来安添排栈铜的大巨小,丝式防止堆入栈归的数娱据太额多而夜导致希的超滨界;慢执行奶出栈查操作扁的时虹候也贱要注丑意,气以防叉栈空帜的时看候继临续出哄栈而汤导致界的超忌界。3.包9纽奉pu彼sh、po瓣p指令pu耻sh和po嘴p指令只是可拿以在唐寄存睁器和内存之间嫌传送咸数据缓的。pu摔sh和po牺p指令套的格港式栈与虚内存栈空蠢间当横然也哭是内净存空证间的晚一部戒分,阿它只悉是一蚊段可坦以以堆一种扔特殊咐的方亚式进华行访毒问的厕内存滚空间找。3.剖9速pu而sh、po后p指令pu恩sh和po往p指令债的格糕式(1)pu芽sh寄存侦器:石将一光个寄瞎存器华中的驾数据晚入栈po宪p寄存栽器:袜出栈护,用狮一个功寄存北器接刃收出墙栈的礼数据例如晃:pu揉sh扩a滨xpo困pbx3.粘9抚pu驼sh、po达p指令pu某sh和po箭p指令绢的格速式(2)pu渗sh段寄煤存器上:将植一个悄段寄房诚存器迈中的扛数据健入栈po步p段寄错存器益:出踪蝶栈,剥用一葵个段月寄存罩器接迫收出革栈的邻数据例如恰:pu墙shdspo预pes3.碑9叹pu测sh、po区p指令pu真sh和po派p指令伞的格烤式(3)pu光sh内存年单元币:将叮一个疏内存剥单元那处的探字入粉栈(边栈操状作都费是以规字为赠单位建)po成p内存州单元低:出菌栈,惑用一饺个内妖存字耗单元遣接收点出栈屋的数衫据例如冤:pu歼sh某[铜0]po斤p发[2厌]指令副执行挖时场,CP谎U要知监道内链存单青元的属地址厅,可惰以在pu电sh、po也p指令棵中给魂出内肃存单汽元的取偏移来地址腥,段营地址采在指踪蝶令执笨行时臂,CP女U从ds中取私得。3.河9芳pu刊sh、po柄p指令问题3.轿7编程锈:将10吃00缴0H缴~1蓄00祝0F锈H这段猛空间舟当作败栈,芦初始载状态挪是空养的,齐将AX、BX、DS中的慈数据假入栈菊。思考笔后看分析。问题3.删7分析3.香9纯pu乳sh、po孙p指令问题3.机8编程醋:(1)将10躺00宋0H疾~1毒00惰0F感H这段践空间醉当作晚栈,灯初始艘状态近是空沃的;(2)设餐置AX尚=0袜01论AH,BX冬=0搜01劣BH;(3)将AX、BX中的测数据仁入栈荣;(4)然倡后将AX、BX清零睁;(5)从认栈中咸恢复AX、BX原来喝的内万容。思考纵后看分析。问题3.理8分析结论问题3.失8分析从上袋面的录程序杆我们丽看到羡,用沟栈来百暂存快以后蚊需要母恢复伞的寄被存器范中的胆内容赢时法,出阶栈的否顺序雨要和怨入栈砍的顺瓣序相本反,那因为班最后效入栈誓的寄欲存器神的内膛容在目栈顶逼,暖所以攻在恢顿复时践,要扒最先罪出栈每。3.宫9振pu鉴sh、po剧p指令问题3.添9编程质:(1)将10羊00部0H变~1拣00双0F乡丰H这段舒空间况当作胡栈,则初始阻状态辞是空枕的;(2)设割置AX计=0钞02障AH,BX柿=0增02忘BH;(3)利腊用栈兽,吹交换AX和BX中的活数据赢。思考傍后看分析。问题3.疯9分析3.尝9敞pu陕sh、po琴p指令问题3.勒10我们抚如果赔要在10俗00蛇0H处写患入字哄型数前据22宅66煮H,可辰以用床以下塑的代书码完趋成:mo叶vax港,1妻00骗0Hmo寻vds辉,a者xmo串v,a滴x,闷22相66占Hmo华v[0霉],言ax补全组下面浊的代懒码3.碰9园pu籍sh、po收p指令补全袋下面石的代物码,确完成吧同样申的功贩能:在10腾00戴0H处写塞入字瓦型数幼据22那66逼H。__眼__恼__执__提____仅__辰__顺__驰____史__渣__泰__晃__mo召vax洗,2庭26天6Hpu弹sh结a佣x要求绣:不映能使介用“mo每v内存构单元,寄存璃器”扶这类锐指令思考胆后看分析。问题3.追10分析我们顷看需归补全善代码桨的最践后两船条指排令,劣将ax中的22梁66太H压入疾栈中值,也宝就是便说,款最终炎应由pu困sh绘a瞧x将22填66尺H写入10然00挣0H处。问题沿的关掉键就肌在于早:如敲何使pu巷sh爹a辅x访问尊的内厉存单劫元是10推00贸0H。Pu鞋sh指令驰是入众栈指级令。您(注偿意执喘行过负程)完成集程序问题3.败10分析丹(续虹)完成拆的程允序:mo湿vax意,1叨00讲0Hmo愈vss宇,a颠xmo样vsp滤,2mo纯vax带,2缩慧26吹6Hpu福sh侄a燥x结论问题3.巩10分析恰(续才)结论pu腾sh、po仅p实质政上就山是一珍种内监存传歉送指瓶令,港可以辟在寄角存器再和内灯存之良间传庆送数计据,口与mo迷v指令排不同惹的是霸,pu勉sh和po赶p指令河访问世的内五存单失元的抢地址堪不是前在指备令中讯给出锣的,视而是特由SS泉:S厕P指出拉的。同时棕,pu沿sh和po沟p指令匹还要有改变SP中的彻内容道。问题3.风10分析劫(续宰)我们汗要十料分清跟楚的愈是,pu冒sh和po斧p指令吃同mo璃v指令轧不同介,CP循U执行mo衡v指令躁只需拳一步悄操作疮,就备是传桥送,鸡而执开行pu葛sh、po均p指令章却需睬要两猛步操到作。执行pu失sh时:先改适变SP,后姨向SS模:S貌P处传染送。执行po灾p时:先读庄取SS悟:S扑P处的混数据她,后扁改变SP。注意pu垒sh、po活p等栈顷操作志指令论,修锦改的冠只是SP。也欠就是衬说,烧栈顶铃的变城化范里围最述大为桂:0~你FF旦FF舟H。提供爽:SS、SP指示利栈顶枣;改狼变SP后写件内存晴的入丹栈指沿令;衣读内匀存后微改变SP的出博栈指支令。这就打是80倚86外CP奥U提供茫的栈依操作锤机制病。栈的赛综述(1)80躺86牌CP姑U提供玩了栈协操作袭机制林,方膝案如撞下:在SS,SP中存谋放栈塔顶的丹段地族址和鸟偏移恐地址阅;提供偿入栈扁和出窃栈指作令,摇他们符根据SS厕:S申P指示悲的地映址,蒜按照断栈的芹方式仰访问旦内存夏单元苹。(2)pu字sh指令婆的执烫行步合骤:1)SP愈=S戚P-未2;2)向SS霸:S镰P指向榨的字松单元搬中送辉入数侵据。(3)po智p指令拨的执骄行步嚼骤:1)从SS辆:S并P指向指的字固单元霞中读仁取数弃据;2)SP护=S受P-建2。栈的啦综述傅(续楼)(4)任箱意时随刻,SS祸:S沫P指向稿栈顶听元素轻。(5)80斗86研CP蠢U只记址录栈限顶,谢栈空剖间的其大小厦我们啦要自冈己管溪理。(6)用证栈来脖暂存黎以后骡需要妥恢复巷的寄匪存器坊的内汉容时触,掌寄存慕器出仗栈的毙顺序倦要和净入朱栈的炕顺序腔相反钻。(7)pu印sh、po胡p实质闭上是凤一种酱内存乔传送返指令喊,注挡意它茄们的悄灵活贴应用追。栈是自一种办非常结重要材的机孤制,戏一定意要深袭入理贿解,暮灵活凭掌握痰。3.针10栈段前面皆讲过镜,对柏于80痰86挤PC机,湾在编锻程时目,我清们可宵以根发据需魄要纺,将器一组悼内存舞单元申定义洗为一莲个段竖。我们厌可以房诚将长忧度为N(N泛≤64医K)的污一组饥地址盖连续稼、起始地买址为方16摄的倍谢数的域内存蓝单元拔,当浓作栈桃来用中,从芒而定拘义了制一个淡栈段呜。3.唇10栈段比如菌我们怎将10颠01草0H昂~1移00根1F依H这段皱长度脑为16字节瞎的内洞存空券间当令作栈向来用闲,以傍栈的持方式粥进行炮访问爷。这段卧空间激就可驳以成妻为栈藏段,勉段地炉址为10备00炊H,大丝式小为16字节翅。3.制10栈段将一兼段内破存当洲作栈耗段,奇仅仅纤是我宗们在喝编程债时的开一种尚安排按,CP蒸U并不堪会由浴于这旺种安伙排,子就在喊执行pu霜sh、po旬p等栈避操作可指令鄙时就柿自动乏地将北我们姐定义减的栈割段当傲作栈垮空间脂来访游问。如何真使的召如pu居sh、po嘉p等栈烘操作梳指令取访问万我们丑定义镜的栈播段呢闹?将SS碎:S适P指向既我们捷定义崖的栈栽段。3.嘉10栈段问题3.结11如果赴我们级将10冲00腰0H耐~1奔FF捏FF任H这段迅空间倦当作蛋栈段坑,初醉始状蛇态是蠢空的舒,此磁时,SS日=1筛00叫0H,SP羊=?思考崭后看分析。问题3.羽11分析我们咱将10宣00氏0H凑~1妇FF适FF燃H这段粥空间帐当作挑栈段刻,SS吹=1偷00钱0H,栈其空间茄大小灯为64虏KB,栈绳最底勿部的洁字单群元地蹦址为10麦00丙:F当FF忘E。任意届时刻卧,SS江:S稼P指向网栈顶种,当墨栈中写只有率一个智元素柏的时仗候,SS更=1弟00石0H,SP拢=F晃FF长EH。问题3.耽11分析栈为刃空,居就相叼当于币栈中塔唯一末的元侮素出专栈,调出栈胀后,SP急=S救P+植2。SP原来哨为FF铁FE厨H,加2后SP锋=0,所驻以,霸当栈押为空辩的时衬候,SS束=1豪00弓0H,SP向=0。换个隐角度撇看问题3.锣11分析遍(续枕)换个皆角度语看任意曲时刻奶,SS闲:S桶P指向播栈顶赤元素险,当钉栈为枕空的鞠时候扇,肆栈中聪没有某元素将,恨也就尊不存软在栈载顶元妇素,飘所以SS诉:S柱P只能暑指向胁栈的蹈最底晶部单凶元下茧面的形单元纵,逐该单辣元的遗偏移占地址室为栈仇最底也部的腐字单个元的香偏移茅地址+2,栈透最底圾部字劲单元协的地尖址为10汪00滴:F循FF近E,所普以栈虽空时额,SP冷=0羡00熔0H。问题3.瞎12一个迎栈段划最大黑可以迅设为像多少叫?为瞒什么滩?思考技后看分析。问题3.释12分析一个瘦栈段恋最大守可以道设为拔多少姜?分析裁:这洋个问窄题显惊而易简见,公提出净来只昂是为灶了提咱示我岭们将慨相关触的知缘瑞识融穷会起尤来。首先李从栈充操作往指令疤所完匀成的蛙功能埋的角棉度上辅来看痕,pu嚷sh、po遍p等指鄙令在滑执行兴的时态候只谣修改SP;问题3.昆12分析所以协栈顶喝的变翁化范金围是0~虎FF耽FF粪H,从蜡栈空啊时候邪的SP忍=0,一浮直压片栈,曾直到剑栈满羊时SP协=0;如共果再驼次压沿栈,还栈顶扫将环条绕,沟覆盖冠了原候来栈泳中的敬内容钞。所以傲一个摔栈段闸的容冬量最骡大为64面KB。段的塌综述我们科可以巷将一锅段内桐存定求义为味一个搂段,蔬用一健个段笔地址挤指示央段,跑用偏押移地介址访晋问段搁内的嗓单元忘。这险完全总是我稼们自挠己的横安排浸。我们轻可以划用一们个段宿存放誉数据荡,将替它定讽义为毯“数环据段躬”;我们泽可以伟用一筑个段知存放疫代码碎,将众它定固义为灵“代旅

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论