- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 包含多个段的程序 章节分布 6.1 在代码段中使用数据 6.2 在代码段中使用栈 6.3 将数据、代码、栈放入不同的段 引言 前面我们写的程序中,只有一个代码段。 现在有一个问题: 如果程序需要用其他空间来存放数据,应该怎么处理? 第5章中,曾经讲到0:200~0:300是相对安全的;可这段空间的容量只有256个字节,如果程序需要的空间超过256个字节该怎么办呢? 引言 本章将以这样的顺序来深入地讨论多个段的问题: (1)在一个段中存放数据、代码、栈,先来体会一下不使用多个段时的情况; (2)将数据、代码、栈放入不同的段中。 6.1 在代码段中使用数据 考虑这样一个问题,编程计算以下8个数据的和,结果存在ax 寄存器中: 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H。 在前面的课程中,都是累加某些内存单元中的数据,并不关心数据本身。 可现在要累加的就是已经给定了数值的数据。 6.1 在代码段中使用数据 assume cs:codesg codesg segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h mov bx,0 mov ax,0 mov cx,8 s: add ax,cs:[bx] add bx,2 loop s mov ax,4c00h int 21h codesg ends end 程序6.1 程序第一行中的 “dw”的含义是定义字型数据。 dw即define word。 程序中的指令就要对这8个数据进行累加,可这8个数据在哪里呢? 6.1 在代码段中使用数据 这8个数据的偏移地址是多少呢? 因为用dw定义的数据处于代码段的最开始,所以偏移地址为0,这8 个数据就在代码段的偏移0、2、4、6、8、A、C、E处。 程序运行时,它们的地址就是CS:0、CS:2、CS:4、CS:6、CS:8、CS:A、CS:C、CS:E。 6.1 在代码段中使用数据 程序中,我们用bx存放加2递增的偏移地址,用循环来进行累加。 在循环开始前,设置(bx)=0,cs:bx指向第一个数据所在的字单元。 每次循环中(bx)=(bx)+2,cs:bx指向下一个数据所在的字单元。 6.1 在代码段中使用数据 我们将前面的程序6.1编译、连接为可执行文件p61.exe,先不要运行,用debug加载查看一下。 用 Debug加载后,我们可以将 IP 设置为10h,从而使CS:IP指向程序中的第一条指令。然后再用T命令、P命令、或者是G 命令执行。 程序 6.1 编译成可执行文件后,在系统中直接运行可能会出现问题,因为程序的入口处不是我们所希望执行的指令。 6.1 在代码段中使用数据 如何让这个程序在编译后可以存系统中直接运行呢?我们可以在源程序中指明界序的入口所在,具体做法见下面的程序6.2。 程序代码 6.1 在代码段中使用数据 assume cs:codesg codesg segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h start: mov bx,0 mov ax,0 mov cx,8 s: add ax,cs:[bx] add bx,2 loop s mov ax,4c00h int 21h codesg ends end start 程序6.2 程序6.2与6.1相比有什么不同? 由此可见,end 除了通知编译器程序结束外,还可以通知编译器程序的入口在什么地方。 6.1 在代码段中使用数据 有了这种方法,我们就可以这样来安排程序的框架: assume cs:code code segment : 数据 : start: : : 代码 : : code ends end start 6.2 在代码段中使用栈 完成下面的程序,利用栈,将程序中定义的数据逆序存放。 assume cs:codesg codesg segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h ? code ends end 程序大致思
您可能关注的文档
- 新人教八年级物理下册7.2.ppt
- 20131014盱眙项目推介.ppt
- 《咬文嚼字》学案导学设计课件.ppt
- 20132013年河北省历史.ppt
- 《商山早行》msw.ppt
- 新人教八年级物理滑轮.ppt
- 《商鞅变法》课件.ppt
- 2013—2014学年度第一学期八年级物理分组实验:用温度计测量水的温度.ppt
- 《因声求气吟咏诗韵》.ppt
- 2013“读悟写”高考作文指导解读.ppt
- 绿电2022年系列报告之一:业绩利空释放,改革推动业绩反转和确定成长.docx
- 化学化工行业数字化转型ERP项目企业信息化规划实施方案.pdf
- 【研报】三部门绿电交易政策解读:溢价等额冲抵补贴,绿电交易规模有望提升---国海证券.docx
- 中国债券市场的未来.pdf
- 绿电制绿氢:实现“双碳”目标的有力武器-华创证券.docx
- 【深度分析】浅析绿证、配额制和碳交易市场对电力行业影响-长城证券.docx
- 绿电:景气度+集中度+盈利性均提升,资源获取和运营管理是核心壁垒.docx
- 节电产业与绿电应用年度报告(2022年版)摘要版--节能协会.docx
- 2024年中国人工智能系列白皮书-智能系统工程.pdf
- 如何进行行业研究 ——以幼教产业为例.pdf
最近下载
- 2017-2023上海高考古文(记、序类)详解及解题指导(7篇)2.docx VIP
- 幼儿园论文 快乐轻松学投掷——中班体育活动中“适宜材料投放”探索与实践.doc
- 矿石运输施工组织计划.docx
- 测量系统线性分析数据表.xlsx VIP
- 征信详细版纸质个人信用报告2024年12月必威体育精装版版可编辑带水印模板.pdf
- 过敏性休克的急救与护理课件.ppt
- 第三单元 跨学科实践活动2 制作模型并展示科学家探索物质组成与结构的历程 课件(共25张PPT).pptx VIP
- 老年人心理健康关爱老年人.pptx
- 个人存在问题及不足.docx VIP
- 用于冻干的无甘油PCR试剂及其冻干方法.pdf VIP
文档评论(0)