- 1、本文档共92页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]08级第四章汇编语言程序设计终
第四章 汇编语言程序设计 本章要点: 汇编语言源程序格式—— (段定义、数据变量定义、过程定义、汇编程序功能及汇编语言源程序上机过程) 基本汇编语言程序设计技法—— (应用汇编语言实现的顺序程序设计、分支程序设计、循环程序设计) 基本术语 —— 1、汇编语言源程序(源代码): 程序员根据任务需要使用汇编语言指令及相关信息语句编制的应用程序。 2、汇编程序: 把汇编语言源程序翻译成机器语言目标程序的系统程序。 3、汇编语言源程序从建立到生成可执行程序的过程: §4-1 汇编语言源程序格式(老教材第三章、新教材第四章) 从汇编语言源程序实例看到构成汇编语言源程序的成分—— 指令语句 非指令语句 段定义 数据定义 数据的名字 —— 变量名 转移时的目标地址——标号 操作符、运算符 利于在系统环境下进行汇编语言程序设计; 进一步贴近程序设计结构化、人性化。 汇编语言的语句种类: 指令语句 — 最终实现程序操作功能的语句。 伪操作语句 — 为汇编提供各种信息的语句。 宏指令语句 — 定义、代表一个指令序列。 伪操作包括: 数据定义、符号定义、段定义、过程定义、段对准(定位)、汇编结束等。 其中: a、 segment \ends要成对出现,段名要前后一致。 b、段主体依不同性质的段内容不同 代码段:按一定逻辑关系组织的指令集。 数据段:数据变量定义、符号定义。 堆栈段:定义堆栈空间。 c、段属性: ([ ] 可根据需要设定) 定位类型— 该段的起始边界要求(段首地址形态)。 组合类型— 在多模块程序连接时,不同模块相应段的连接方法。 使用类型— 对应不同处理器机型的寻址方式。 (16位/32位) 类别— 确定连接时组成段组的类型名。 assume 伪操作存在于代码段。 作用 — 确定段寄存器与段之间的访问关系,即:在下面的程序中哪个段由哪个段寄存器寻址。 格式 — assume 段寄存器名:段名,段寄存器名:段名… assume 伪操作只确定寻址关系,不给段寄存器赋值。 所以有: my_Dat segment … my_Dat ends … assume cs: my_cod, ds: my_Da start: mov ax, my_Dat mov ds, ax … 2、简化段定义 ㈠、意义 1、使汇编语言源程序的编写更加简洁; 2、容易与高级语言程序接口(如:C语言程序)。 例如:传统段定义方式 stack segment para stack stack db 100h dup(?) stack ends ;定义堆栈段 _data segment word public data ivariable db 5 Iarray dw 50 dup(5) String db ‘This is a string ’ Iarrag dw 50 dup(?) _data ends ;定义数据段 _text segment word public ‘code’ assume cs: _text,ds: _data ,ss:stack Start: push ds mov ax,0 ┇ _text ends ;定义代码段 end start ;汇编结束 用简化段定义的描述—— .model small .stack 100h ;定义堆栈段 .data ;定义数据段 ivariable db 5 Iarray dw 50 dup(5) String db
文档评论(0)