- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大连理工计算机原理_Ch4课件
微机原理;第四章 汇编语言程序设计;4.1 概述;用汇编语言编写源程序,经过汇编程序和连接程序生成目标程序和执行程序。 文件名.ASM 文件名.OBJ 文件名.EXE;?用文本编辑程序编写汇编语言源程序,产生扩展名为.ASM的源文件;
?用汇编语言编写的源程序经过汇编程序MASM.EXE自
动翻译成目标程序,产生扩展名为.OBJ的目标文件;
?用链接程序LINK.EXE将目标程序链接产生扩展名为
.EXE的可执行程序。
?用Debug.EXE进行调试。
编译器可采用Microsoft MASM 或者 Borland TASM;汇编程序(MASM.EXE)的主要功能是:
?将汇编语言源程序翻译成机器语言;
?按程序员指定,分配存储区域(包括程序区,数据区,堆栈区等);
?将各种进位制数据转换成二进制数;
?把字符转换成ASCII码;
?计算出数值表达式的值;
?对源程序进行检查,如果有指令错或程序格式错则给出相应提示。 ;在8086/8088汇编语言中,有两类汇编语言指令,一类
是执行性指令,另一类是说明性指令。对执行性指令,汇
编程序都为之产生机器指令代码;而说明性指令的作用仅
仅是告诉汇编程序对源程序中的执行性指令应该如何产生
代码,或分配存储区。
1、执行性指令
“执行性指令”又称“指令语句”。这类语句经汇编后总
有目标程序与之对应,按其与汇编后目标程序对应情况又
可分为两种类型:一般性执行性指令和宏指令。执行性指
令的功能主要由其对应的目标程序在运行时来实现。
;(1)一般性执行指令:这种指令是一条指令对应一条
8086/8088的机器指令,即指令系统中包括的指令。
(2)宏指令:这种指令是由伪操作定义的。宏指令是一般
性指令的扩展。
(3)执行性指令的格式
[标号:] [前缀] 指令助记符 [操作数表] [;注释]
其中[]表示根据不同的指令或不同情况可以任选的部分。 操作数表是由逗号分隔开的多个操作数。
?标号 代表“:”后指令的存储地址,供JMP,CALL和LOOP等指令操作使用。除此之外,它还具备一些其他“属性”。
;?前缀 是8086/8088中一些特殊指令,它们同其他指令
配合使用,如“串操作指令”的重复指令REP。
?指令助记符 包括8086/8088指令助记符以及用宏定义
语句定义过的宏指令名。
?操作数 对8086/8088的一般性执行指令来说,可以是
一个或二个操作数,这时我们称左边的操作数为目标操作
数,右边的操作数为源操作数,对宏指令来说,可能有多
个操作数,操作数之间有逗号隔开。
?注释 以“;”开始,用来简要说明该指令在程序中的作用,以提高程序的可读性。;2、说明性指令(伪指令)
“说明性指令”又称“指示性语句”。由伪操作符定义,用
于程序以源程序方式同“汇编程序”通信。
程序采用说明性指令表示源程序的起始终止信息、分
段情况、内存结构和变量说明等信息。
说明性指令的功能由汇编程序来完成。说明性指令在
汇编时不产生任何代码。
说明性指令的格式如下:
[名字] 伪操作指令 [操作数表] [;注释]
其中“名字”可以是标识符定义的常量名、变量名、过程名、段名以及结构名*或记录名*等。所谓标识符是由字母、数字、特殊字符(如?或下划线)等组成的字符串。
;4.2 汇编语言源程序的格式; CLC ; 清CF标志
LOOPER:MOV AL,DATA2[SI];取一个字节加数
ADC DATA1[SI],AL ;与被加数相加
INC SI ;SI加1指向下一字节
DEC CX ;计数器CX减1
JNZ LOOPER ;不等于零,转LOOPER
MOV AH,4CH ;系统功能调用,AH=4C
INT 21H ; 退出并返回DOS
CODE ENDS ;代码段结束
END START;源程序结束,指定起始地址标号
;常用的汇编语言源程序框架:
DATA SEGMENT ;定义数据段
VAL1 DB 12H , 8EH ;定义变量
……
DATA ENDS ;数据段结束
STACK SEGME
文档评论(0)