第4章汇正编语言程序设计1.pptVIP

  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文档。上传文档
查看更多
第4章汇正编语言程序设计1

第4章 汇编语言程序设计 第4章 汇编语言程序设计 4.1 汇编语言和汇编程序的基本概念 1.组成名字的字符及规则 它是由字母打头的字符串,可由下列字符组成: ①字母 A~Z,a~z。 ②数字 0~9。 ③专用字符 ?、.、@、-、$。 除数字0~9外,其他字符都可以放在名字的第一个位置。字符“.”只能出现在名字的第一个位置,其他位置不允许出现。名字最长由31个字符组成。汇编程序对31个以后的字符不予理会,所以,当两个名字的前31个字符完全相同而从第32个字符开始有不同字符时,汇编程序将它们视为同一名字。 2.标号和变量的区别 标号是某条指令所存放单元的符号地址,而变量是某操作数据所存放单元的符号地址。在汇编语言程序中,指令语句中的名字一般采用标号,这个标号可以是任选的,即可以不写。标号出现在代码段,后面跟着冒号“:”。 3 变量和标号的属性 标号和名字一经定义便具有两类三种属性: ① 段值 标号和名字对应存储单元的段地址 ② 偏移值 标号和名字对应存储单元的偏移地址 ③ 类型 标号、子程序名的类型可以是NEAR(近)和FAR(远),分别表示段内或段间 变量名的类型可以是BYTE(字节)、WORD(字)和DWORD(双字)等 4.2.3 操作数项 操作数项是操作符的操作对象。 操作符在完成相应的操作时要求有一系列的操作数。当有两个或两个以上的操作数时,各操作数之间用逗号隔开。对于指令语句,操作数项一般给出操作数地址,它们可能一个或多个,或一个也没有。对于伪指令和宏指令语句,操作数项则给出所要求的参数。 操作数一般有常数、寄存器、标号、变量和表达式等几种形式。 1.常数 常数是操作数位置出现的数值数据或字符型数据,它的值在汇编时已完全确定,程序运行过程中,不会发生变化。 在8086宏汇编中,允许有以下几种常数: ①二进制常数:是一串0和1数字的组合,以字母B结尾。 ②八进制常数:由数字0~7组成,必须以字母O结尾。 ③十进制常数:这是最常用的一种常数,后跟字母D或不跟任何字母。 ④十六进制常数:由数字0~9和字母A~F组成,这类数据必须以字母H结尾。 ⑤字符串常数:用单引号括起来的字符以及字符串,其各个字符的ASCII码值构成字符串常数。字符串常数可以和整数常数等价使用,但这些字符串常数的长度必须为一个字节或一个字,以便与目标操作数的长度相匹配。 在指令中,常数通常被称为立即数,它只能用作源操作数,不能作为目标操作数。它的允许取值范围由指令中的目标操作数的形式自动确定为8位或16位。 2 表达式和运算符 指由运算符连接的各种常数构成的表达式 汇编过程中计算表达式得数值 程序运行之前,已算出结果 增强程序可读性 2、表达式和运算符 (1)算术运算符 + - * / MOD (2)逻辑运算符 AND OR XOR NOT (3)移位运算符 SHL SHR (4)关系运算符 EQ NE GT LT GE LE (5)分析运算符 HIGH LOW (1)算术运算符 实现加、减、乘、除、取余的算术运算 MOV AX,3*4+5 ;等价于 MOV AX,17 其中MOD也称为取模,它产生除法之后的余数,如19 MOD 7 = 5 加+和减-运算符还可以用于地址表达式 除加、减外,其他运算符的参数必须是整数 (2) 逻辑运算符 实现按位相与、相或、异或、求反的逻辑运算 OR AL,03H AND 45H ;等价于 OR AL,01H (3) 移位运算符 实现对数值的左移、右移的逻辑操作;移入低位或高位的是0 格式为: 数值表达式 SHL/SHR 移位次数 MOV AL,0101B SHL (2*2) ;等价于 MOV AL (4) 关系运算符 用于比较和测试符号数值 MASM用0FFFFH(补码 -1)表示条件为真 MASM用0000H表示条件为假 MOV BX, PORT GE 5 ; PORT5时,汇编结果为MOV BX,0FFFFH ;否则,汇编结果为MOV BX,0 (5) 分析运算符 对存储器地址进行运算的 5个:SEG(求段基值)、OFFSET(求偏移量)、TYPE(求变量类型)、LENGTH(求变量长度)和SIZE(求字节数) 例如: MOV BX,SEG ARR MOV ES,SEG DATA1 分析运算符实例 ORG $+10 ARRAY DB 45,45H …… MOV BX,OFFSET ARRAY ;等价于 LEA BX,ARRAY MOV CL,ARRAY+4 ;等效于 MOV CL,ARRAY[4] MO

文档评论(0)

186****0772 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档