- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理的课件第7章 微型计算机汇编语言及汇编程序
(3) ?STACK。组合类型为STACK时,含意与PUBLIC基本一样,即不同程序中的逻辑段,如果段名相同,则集中成为一个逻辑段。不过组合类型STACK仅限于作为堆栈区域的逻辑段使用。 (4) COMMON。连接时,对于不同程序中的逻辑段,如果具有相同的段名,则都从同一个地址开始装入,因而各个逻辑段将发生重叠。最后,连接以后段的长度等于原来最长的逻辑段的长度,重叠部分的内容是最后一个逻辑段的内容。 (5) MEMORY。该类型表示当几个逻辑段连接时,本逻辑段定位在地址最高的地方。如果被连接的逻辑段中有多个段的组合类型都是MEMORY,则汇编程序只将首先遇到的段作为MEMORY段,而其余的段均当作COMMON段处理。 (6) AT表达式。这种组合类型表示本逻辑段根据表达式的值定位段地址。例如AT 8A00H,表示本段的段地址为8A00H,则本段从存储器的物理地址8A000H开始装入。 3) ?类别(Class) SEGMENT伪指令的第三个任选项是?类别?,类别必须放在单引号内。类别?的作用是在连接时决定各逻辑段的装入顺序。当几个程序模块进行连接时,其中具有相同类别名的逻辑段被装入连续的内存区,类别名相同的逻辑段,按出现的先后顺序排列。没有类别名的逻辑段,与其他无类别名的逻辑段一起连续装入内存。 例:假设一个主程序中有五个逻辑段,段名和类别名分别为: STK1段 STACK CODE1段 无 DATA1段 BUFFER DATA2段 TABLE DATA3段 BUFFER 还有一个子程序,包括四个逻辑段,段名和类别名分别为: DATA4段 TABLE DATA5段 BUFFER STK2段 STACK CODE2段 无 当将上述主程序和子程序进行连接时,两个程序模块中各逻辑段装入内存的顺序见下图。 逻辑段按类别装入内存的示意图 2. ASSUME 格式: ASSUME 段寄存器名:段名[,段寄存器名:段名,…] ASSUME伪指令告诉汇编程序,将某一个段寄存器设置为存放某一个逻辑段的段地址,即明确指出源程序中的逻辑段与物理段之间的关系。当汇编程序汇编一个逻辑段时,即可利用相应的段寄存器寻址该逻辑段中的指令或数据。在一个源程序中,ASSUME伪指令定义符应该放在可执行程序开始位置的前面。ASSUME伪指令只是通知汇编程序有关段寄存器与逻辑段的关系,并没有给段寄存器赋予实际的初值。 例: CODE SEGMENT ASSUME CS:CODE,DS:DATA1,SS:STACK MOV AX,DATA1 MOV DS,AX ;给DS赋值 MOV AX,STACK MOV SS,AX ;给SS赋值 CODE ENDS 四、 过程定义伪指令 过程也就是子程序,所以过程定义伪指令也就是子程序定义伪指令。 格式: 过程名 PROC [NEAR/FAR] 过程名 ENDP PROC伪指令定义一个过程(子程序),赋予过程一个名字,并指出该过程的属性为NEAR或FAR。如果没有特别指明类型,则认为过程的类型是NEAR。伪指令ENDP标志过程的结束。 … 当一个程序段被定义为过程后,程序中其他地方就可以用CALL指令调用这个过程。调用一个过程的格式为: CALL 过程名 过程名实质上是过程入口的符号地址。 一般来说,被定义为过程的程序段中应该有返回指令RET,但不一定是最后一条指令,也可以有不止一条RET指令。执行RET指令后,控制返回到原来调用指令的下一条指令。过程的定义和调用均可嵌套。 五、 模块定义与连接伪指令 在编写规模比较大的汇编语言程序时,可以将整个程序划分成为几个独立的源程序(或称模块),然后将各个模块分别进行汇编,生成各自的目标程序,最后将它们连接成为一个完整的可执行程序。各个模块之间可以相互进行符号访问。也就是说,在一个模块中定义的符号可以被另一个模块引用。通常称这类符号为外部符号,而将那些在一个模块中定义,只在同一模块中引用的符号称为局部符号。 为了进行连接以及在这些将要连接在一起的模块之间实现互相的符号访问,以便进行变量传送,常常使用以下几个伪指令:NAME、END、PUBLIC和E
您可能关注的文档
最近下载
- 驼乳粉的技术要求.pdf VIP
- 哈工大_理论力学_I(第6版)习题详解.pdf
- 2025年新高考数学一轮复习:函数的图象(九大题型)(讲义)(学生版+解析).pdf VIP
- 陶喆出轨道歉会PPT(源文件锐普独家首发)0708.pptx VIP
- 2025年新高考数学一轮复习:圆的方程(八大题型)(讲义)(学生版+解析).pdf VIP
- 2025年新高考数学一轮复习:数列求和(九大题型)(练习)(学生版+解析).pdf VIP
- 发酵驼乳粉的技术要求.pdf VIP
- 罗斯蒙特3051C压力变送器校准调试方法.doc VIP
- 视频监控系统工程质量管理体系和保证措施.docx VIP
- 660MW超超临界火电机组深度调峰经济性评估与对策.docx VIP
文档评论(0)