第4讲8086汇编程序设计.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讲 汇编语言程序设计 第4讲 汇编语言程序设计 一、汇编语言语句格式 汇编语言语句统一格式规定 名字项属性 (1) 段属性:可用SIG伪指令求出 此属性用于定义标号和变量的段起始地址。标号通常在代码段CS中定义,变量通常在DS、ES和SS段中定义。 (2) 偏移属性:可用OFFSET伪指令求出 此属性指出标号或变量距离段起始地址的字节数,它是一个16位的无符号数。 (3) 类型属性:可用TYPE伪指令求出 对标号而言,此属性指出其引用类型,段内引用属于NEAR类,指针长度为2字节;段间引用属于FAR类,指针长度为4字节。对变量而言,此属性指出其字节长度,可为1、2、4、8、10个字节。 2.操作项 3. 操作数项 操作数项可以由常量、寄存器、标号、变量或表达式等组成。 (1)常量 常量是没有属性的纯数,其数值在汇编过程中被确定,并在程序运行时保持不变。分为数值常量和字符型常量。 字符串常量 字符串常量是用单引号或双引号引起来的一个或多个字符。字符串常量是以各字符的ASCⅡ码表示的。如‘A’用41H 表示,字符串‘A1B2’用41H,31H,42H,32H表示。 常数项举例 [例5.2] SUB DH,22 ;常数22为立即数,汇编后为16H MOV BX,[SI十32H] ;常数32H作位移量 DB 12H ;定义一个字节数据 DW 1234H ;定义一个字数据 DD ;定义一个双字数据 DB ′ 9BD′ ;定义三个字节的字符串数据,在 内存中就是39H、42H、44H (2)表达式及运算符 算术运算符和移位运算符 算术运算符: +(加)、-(减)、*(乘)、/(除)、MOD(求模) 移位运算符: SHL(左移)、SHR(右移) 可以用于数值表达式又可用于地址表达式。 【例】 算术和移位运算符进行数值表达式运算 逻辑运算符 与(AND)、或(OR)、异或(XOR)、非(NOT)四种运算。 由于逻辑运算是按位操作,且在汇编过程中完成,因而运算的结果仍为整数常量。 【例】 用逻辑运算符进行运算。 MOV AL,34H AND 0FH ;04H→AL MOV BL,05H OR 30H ;35H→BL MOV CX,NOT 00FFH ;0FF00H→CX MOV DX,789AH XOR 000FH ;7895H→DX 关系运算符 相等(EQ),不等(NE),小于(LT),大于(GT),小于等于(LE)及大于等于(GE)。 运算结果成立时逻辑值为真,用0FFFFH表示; 关系不成立时逻辑值为假,用0表示。 【例】用关系运算符进行数值表达式运算。 NUM1 EQU 10 LT 5 ;NUM1=0 NUM2 EQU 0AAAAH GT 7FFFH ;NUM2=0FFFFH MOV AX,‘A‘ EQ 41H ;0FFFFH→AX MOV BX,NUM2 LT NUM1 ;0→BX 分析运算符号 把标号或变量所指存储器地址的属性(段、偏移量和类型)或一些特征分离出来,作为操作数使用。主要介绍3个: SEG 运算符 OFFSET运算符 TYPE运算符 ① SEG 运算符 格式:SEG 变量或标号 功能:分离出其后变量或标号所在段的段首址。 【例】已知数据段从存储器的23000H地址开始,DBUF是该段中的一个变量名。 MOV BX,SEG DBUF 汇编为: MOV BX,2300H ② OFFSET 运算符 格式:OFFSET 变量或标号 功能:分离出其后变量或标号的偏移地址。 【例】已知标号START的段地址为2100H,物理地址为21200H。 MOV DX,OFFSET START 汇编为: MOV DX,0200H 这条指令与指令 LEA DX,START功能相同。 ③ TYPE运算符 格式:TYPE 变量或标号 功能:分离出其后变量或标号的类型。如果是变量,将返回该变量的类型对应字节数;如果是标号,则返回代表标号类型的数值。它们之间的关系见下表所示。 (5)综合运算符 ① 段属性前缀运算符“∶” 格式为: 段寄存器名∶地址表达式 或 段名∶地址表达式 或 组名∶地址表达式 此运算符用来表示一个标号、变量或地址表达式的段属性。 【例】用段前缀指定附加段内操作数的地址 MOV AL,ES∶DATA ;指令源操作数在附加段DATA地址单元中 (5)综合运算符 ② LOW和HIGH 格式为: LOW 表达式 或 HIGH 表达式 此运算符用于对一个16位数据或

文档评论(0)

aena45 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档