- 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 基本语法1
第四章 汇编语言程序设计;3.汇编语言(Assembly Language)
汇编语言是一种面向机器的语言,它采用助记符来表示机器指令,助记符通常是一组英文缩写,可以较方便地进行程序编写、阅读和修改。; 汇编语言源程序; 完整段程序结构; 完整段程序结构;【例】将两个4字节的十六进制数相加,其结果保存到第三个4字节数中。 ; 简化段程序结构;简化段程序中需要声明使用的存储模式,以便生成合适的可执行文件;完整段程序无此设置,但需要通过各段定义时选择参数来描述段的特性。
简化段程序中所有段定义都使用了专用的保留字伪指令直接标识,不再由用户逐一描述。
简化段程序中程序的起始位置由.STARTUP伪指令指明。
简化段程序中不需要对段寄存器进行分配。
简化段程序中不需要对段寄存器进行初始化设置。
简化段程序返回DOS操作系统使用.EXIT伪指令,不需要使用INT 21H指令。
简化段程序结束只需要使用END伪指令即可。 ;【例】将前例中的程序改写为简化段程序代码如下: ; 汇编语言程序开发过程;EXAM.ASM;指令性语句——由指令构成
[标号:] 操作码 [操作数] [;注释]
如: START: MOV AX,DATA ; 当存储单元中的数据在程序运行中随时可以修改时,这个数据就可以用变量来定义。为了便于对这个变量的访问,要给这个变量取一个名字,称为变量名。定义变量可以使用数据定义伪指令,格式如下:;变量具有三个属性:;(1)数值常量:直接用数字进行表示的常量。
二进制、11110001020100B
十进制:12356D
十六进制:12ABH、0F56AH(字母打头前面必须补0)
如:
MOV AX,100D
MOV BL,0FAH
MOV CL,1010 1000B ;(3)符号常量:用标识符(常量名)表示的常量,可以被看作是被命名了的一个数值或其他标识符。命名规则:
1~31个ASCII码字符
A~Z、a~z、0~9 、?、@、$及下划线构成。
?不能单独作为标识符。
不能是独立的保留字或运算符。
数字不能作为第一个字符。;符号常量定义格式:
常量名 =/EQU 表达式
【例】
R = 30
PAI EQU 3.1415
CC EQU ; 标号是指令性语句存放地址的符号表示。标号也有三个属性,即段地址、偏移地??和距离。常用于指令的转移和子程序调用。标号定义格式:; 表达式是操作数的常见形式。表达式由常量、变量、标号及连接它们的运算符组成。表达式不会出现在最终的程序代码中。MASM汇编程序可以使用两种表达式,即数值表达式和地址表达式。 ;② 逻辑运算符
包括与(AND)、或(OR)、非(NOT)和异或(XOR)等4种运算符。 ;③ 关系运算符
包括相等(EQ)、不等(NE)、小于(LT)、大于(GT)、小于或等于(LE)、大于或等于(GE)等6种运算符。 ;(2) 地址表达式
地址表达式的结果是一个存储单元的地址。当某个标号表示的地址中存放的是数据时,称为变量;当该标号表示的地址中存放的是指令时,则称为程序标号。如果指令中的操作数需要用到地址表达式时,应注意其物理意义。比如将两个地址作乘/除操作就没有意义,对不同段数据的地址相加减当然也没有意义。常用的地址表达式是“标号 +/- 数字”的形式。; 表达式中可以使用的运算符有6类,它们是算术运算符、 逻辑运算符、关系运算符、分析运算符、合成运算符、其它运算符等。当多种运算符同时出现于一个表达式中时,这些运算符将按照一定的优先级由高向低排列执行。 ;格式:[变量名] DB/DW/DD/DQ/DT 表达式
功能:为变量分配1字节/字/双字/四字/五字的存储单元,并给它们赋值。
说明:使用这些伪指令可以定义数值、字符串、数组等。如:;还可以用变量定义字符串等数据,如:
STRINGA DB “HELLO WORLD!”
DATAW DW “AB”,“CD”
DATAD DD “WXYZ”;格式:重复次数 DUP (重复定义的内容)
功能:与变量定义指令配合,用于重复定义数据。
说明:重复次数用于说明需要定义多少次括号中的重复定义的内容,常用于为变量预留存储空间。如:; 在数据定义中变量具有5种属性,可以用伪指令来获得变量的相关属性信息。
① 段属性
格式:SEG 变量
功能:获得该变量所在的段地址值。
如: MOV BX,SEG var1
② 偏移地址属性
格式:OFFSET 变量
功能:获得变量所在段中的偏移地址值。
如: MOV CX,
文档评论(0)