汇编语言与汇编程序.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第二章汇编语言与汇编程序

宏汇编语言及编程

汇编语言:一种面向机器的程序设计语言,是一种用符号表示的低级程序设计语言(机器语言的符号化描述)。

宏汇编语言:增加伪、宏指令语句构成汇编语言程序设计语言。

汇编:汇编语言编写的程序不能由机器直接执行,必须经汇编程序翻译成机器语言程序。

检查源程序的语法错误,并给出出错信息。

产生目标文件(.OBJ);列表文件;(.LST)和交叉索引文件(.CRF文件)。

展开宏指令。

汇编过程

列表文件(.LST文件);

同时列出汇编语言源程序和机器语言目标程序的文件。

交叉索引文件(.CRF文件)

列出程序中使用的符号、变量和标号以及引用情况。

汇编过程

汇编与连接

EXAM.ASM

ASCII

源程序

EXAM.OBJ

可选

EXAM.LST

EXAM.CRF

机器码目标程序

MASM.EXE

汇编

汇编程序

EXAM.EXE

EXAM.COM

LINK.EXE

连接

连接程序

可执行程序

宏汇编语句的基本格式

指令性语句——由指令构成

[标号:] 操作码 操作数 [;注释]

如: START: MOV AX,DATA

指示性语句——由命令(伪指令)构成

[名字/变量] 命令 参数 [;注释]

如: DATA SEGMENTAT 2000H

(代码段不能如此指定段地址)

常量、变量和标号

常量

汇编源程序翻译成机器码目标程序期间已经有确定数值的量。分为数字常量和符号常量两类。

2.1符号指令中的表达式

数字常量:直接用数字进行表示的常量。

二进制、

十进制:12356D

十六进制:12ABH、0F56AH

(字母打头必须前面补0,否则将出现汇编语法错误。)

如:

MOV AX,100D

MOV BL,0FAH

MOV CL,10101000B

常量和数值表达式

常量

2.1符号指令中的表达式

符号常量:用标识符(常量名)表示的常量。

命名规则:

1)ASCII码字符

2)由A~Z、a~z、0~9、?、@、$及下划线构成。

3)?不能单独作为标识符。

4)不能为保留字及运算符。

合法标识符:

STA_124$

MOV_?

@103

非法标识符:

STA+124$

MOV

?

符号常量定义

常量名 EQU(=) 数值或字母

例如: AA EQU 30

BB = 1000H

CC EQU

QQ = ‘ABC’

MOV AX,AA

MOV AL,AA

MOV BX,BB

改善程序的可读性,程序的修改调试方便。

“=”可重复定义

EQU不可重复定义

常量不占有内存单元

2.1符号指令中的表达式

01

变量是存储器中的数据或数据区的符号表示。

变量名即是数据的地址或数据区的首地址。

02

地址表达式是由变量、常量、寄存器(SI、DI、BX、BP)的内容和运算符组成的有意义的式子。

03

变量或地址表达式可给出指令中的存储器的地址。由于存储器是分段使用的,因此变量或地址表达式都具有3重属性:段地址、偏移地址和类型。

2.变量和地址表达式

例如:变量W的段地址和偏移地址分别表示为SEGW和OFFSETW。

变量的段地址是指变量所在段的段首地址除以10H之商;

变量的偏移地址是指变量所在段的段首址到该变量的字节距离;

变量的段地址和偏移地址分别用SEG或OFFSET两个算符来指定。

[变量名]数据定义伪指令表达式[,……]

01

变量名:数据的地址或数据区的首地址

02

数据定义伪指令:DB(定义字节)、DW(定义字)、DD(定义双字)、DQ(定义4字)、DT(定义10字节)

03

表达式:数值表达式、ASCII码字符串、地址表达式、?及nDUP(表达式)

04

变量的定义

例如,在数据段DATAl中定义的变量如下:

WlDWB3;

B1DBAB$’;

W2DW-5,1994H;

B2DB4DUP(?);

DDDEB;

B3DB2DUP(—1)

DBlDUP(10,’E’)

DB’13’,1,3

在附加数据段DATA2中定义的变量如下:

EBDB8DUP(?)

EWDW’AB’,’CD’

标号的定义方式有两种:

3.标号

用“:”定义,直接写在指令助记符前。

如CYCLE:MOVAL,[S1]

用PROC和ENDP伪

文档评论(0)

SYWL2019 + 关注
官方认证
文档贡献者

权威、专业、丰富

认证主体四川尚阅网络信息科技有限公司
IP属地四川
统一社会信用代码/组织机构代码
91510100MA6716HC2Y

1亿VIP精品文档

相关文档