- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 汇编语言程序设计基础
1.教学目的:掌握微型汇编语言格式和程序设计方法
2.教学要求:
熟悉汇编语言程序的结构、语句类型和格式。
熟悉数据项及表达式,要求能明确区分标号和变量。
熟悉各类伪指令,要求掌握常用伪指令格式和应用。
3.教学重点:
①指令语句格式和伪指令语句格式
②汇编语言程序格式。
4.掌握难点:
①伪指令
②伪指令存储器分配技术
5.教学进程安排:P102~133
6.教学方法:
课堂讲授
7.教学内容摘要:
4.1 汇编语言语句格式
4.1.1 程序格式
4.1.2 语句格式
指令语句和伪指令语句的格式是类似的,格式如下:
[名字] 操作码 操作数 [;注释]
1.名字
⑴名字的标识符
⑵名字的定义规则
⑶名字的2种主要形式
①标号
属性:
段属性:标号所在的段地址,即CS的内容。
偏移属性:标号在代码段的偏移地址。
类型属性:段内Near 或者段间Far
②变量
属性:
段属性:变量名所在的段地址,DS,ES或SS
偏移属性:变量名的偏移地址。
类型属性:字节DB,字DW或者双字DD
2.操作码
3.操作数
⑴常数
⑵表达式
①算术运算符
②逻辑运算符
③关系运算符
4.注释项
4.2 伪指令
机器指令:程序运行期间由计算机来执行。
伪操作(伪指令):在汇编程序(MASM)对源程序汇编期间由汇编程序处理的操作。
4.2.1 表达式赋值伪操作
1. 等值伪指令EQU
格式:符号名 EQU 表达式
2. 等号伪指令 =
EMP=7
EMP=EMP+1
3. 解除定义伪指令PURGE
格式:PURGE 符号1,符号2,…,符号N
注:①EQU:表达式名不允许重复定义;
②=:允许重复定义。
4.2.2 定义数据的伪指令
[变量] 助记符 操作数,…,操作数 [;注释]
功能:为操作数分配存储单元,并用变量与存储单元建立联系。
DB、DW、DD、DQ、DT
【例4-2】操作数可以是常数,或者是表达式
(根据该表达式可以求得一个常数),如
DATA_BYTE DB 10,4,10H
DATA_WORD DW 100,100H,-5 图4.1 例4-2的汇编结果
DATA_DW DD 3C,OFFFDH
汇编程序可以在汇编期间在存储器中存入数据,
汇编后的内存分布如图4.1所示。
【例4-3】操作数也可以是字符串,如:
MESSAGE DB ‘HELLO’
则存储器存储情况如图4.2⑴所示,而DB ‘AB’
和DW ‘AB’的存储情况则分别如图4.2⑵和⑶
所示。
【例4-4】操作数?可以保留存储空间,但不存入数据。
如:ABC DB 0,?,?,0
DEF DW ?,52,?
经汇编后的存储情况如图4.3所示。
图4.2 例4-3的汇编结果
【例4-5】 使用DUP实现重复定义
ARRAY1 DB 2 DUP(0,1,2,?)
ARRAY2 DB 100 DUP( ? )
汇编后的存储情况如图4.4所示。
由图可见,例4-5中的第一个语句和语句ARRAY1 DB 0,1,2,?,0,1,2,?是等价的。
图4.3 例4-4的汇编结果 图4.4 例4-5的汇编结果
4.2.3 定义程序开始和结束的伪指令
在程序的开始可以用NAME或TITLE作为模块的名字。
1、NAME module_name
说明:汇编程序将以给出的module_name作为模块的名字。
2、TITLE text
说明:指定列表文件的每一页上打印的标题
注:①如程序中没使用NAME伪操作,则汇编程序将用text(最多可有60个字符)中的前6个字符作为模块名;
②如程序中即无NAME又无TITLE伪操作,则将用源文件名作为模块名。
3、END [label]
说明:源程序结束伪操作。
注:①label指示程序开始执行的起始地址;
②如多个程序模块相连,则只有主程序要使用标号,其它子程序只用END而不必指定标号。
4、MASM 6.0版的汇编程序增加了定义程序的入口点和出口点的伪操作
.STARTUP:定义程序的初始入口点,并且产生设置DS,SS和SP的代码。
.EXIT:用来产生退出程序并返回操作系统的代码,格式:
格式:EXIT [return_value]
return_value:返回给操作系统的值,常用0。
.END:程序结束伪操作(省略了标号label)。
4.2.4 指令集选择伪指令
.8086 选择8086指令系统
.286 选择80286指令系统
.286P 选择保护方式下的80286指令系统
4.2.5 地址计数器与对准伪操作
1. 地址计
您可能关注的文档
最近下载
- 制浆造纸企业成本核算岗工作流程.doc VIP
- GB 1499.2-2024 钢筋混凝土用钢 第2部分:热轧带肋钢筋.pdf VIP
- 【高中历史教研】李惠军:选择性必修一教材解读与教学建言.pdf VIP
- T∕CECS 10048-2019- 绿色建材评价 预拌砂浆.pdf VIP
- 土壤地理学土壤分类.ppt VIP
- 《诡案组》(1-14卷文字全本)作者:求无欲.txt VIP
- 最新北师大版小学数学五年级上册课时练习试题及答案(全册) .pdf VIP
- 党建与教育教学融合方案设计.docx VIP
- T∕CECS 10049-2019- 绿色建材评价 石膏装饰材料.pdf VIP
- 国际航运管理 全套课件.PPT VIP
文档评论(0)