第四章 汇编语言程序设计.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、8086/8088汇编源程序实例 例:求从1开始连续50个奇数之和,并将结果存放在名字为SUM的字存储单元中。 1)标号 标号代表“:”后面的指令所在的存储地址(这里是逻辑地址),供JMP、CALL和LOOP等指令作操作数使用,以寻找转移目标地址。除此之外,它还具有一些其他“属性”。 2)指令助记符 包括8086/8088的指令助记符,以及用宏定义语句定义过的宏指令名。 3)操作数表 对8086/8088的一般性执行指令来说,操作数表可以是一个或两个操作数,若是两个操作数, 则称左边的操作数为目标操作数,右边的操作数为源操作数;对宏指令来说,可能有多个操作数。操作数之间用逗号分隔。 4)注释 以“;”开始,用来简要说明该指令在程序中的作用(不是重复解释指令本身的功能),以提高程序的可读性。 (2)伪指令语句的格式 MASM 中伪操作命令 (二)指令语句 1标号 (1)标号及其属性 标号是程序转移的转向地址(目标地址)。标号表示指令地址,是指令的符号地址,它具有3种属性——段地址、段内偏移量(或相对地址)以及类型。 1)段地址:标号所在段的段地址(16位数),是标号所在段的20位起始地址的前16位。 2)段内偏移量:它是标号与段起始地址之间相距的字节数,为一16位无符号数。 3)类型:类型表示该标号所代表的指令的转移范围,分NEAR(近)与FAR(远)两种。NEAR类型的标号仅在同一段内使用,用2字节指针给出转移的偏移量属性(即只改变IP值,不改变CS值);而FAR类型的标号无此限制,必须用4字节指针指出转移的段地址与段内偏移量。当标号用作JMP或CALL等指令的目标操作数时,若为段内转移或调用则采用NEAR类型;若为段间转移或调用则应当采用FAR类型。 (2)标号的定义 1)标号的组成 2)在指令的助记符之前,使用标号并紧跟一个冒号“:”, 表示该标号被定义为一个类型为NEAR的标号。 2 指令助记符 3 操作数 (1)立即操作数 (2)寄存器操作数 (3)存储器操作数 4 各种寻址方式下操作数的表达式 (1)常量与数值表达式 1)常量是指那些在汇编过程中已经有确定数值的量; 2)常量分“数值常量”(也称字面常数)与“符号常量”两种; 3)数值表达式;在数值表达式中用的有算术运算符和逻辑运算符。 (2)变量与地址表达式 1)变量及其属性 变量是为数据区取的名字,它对应数据区的首地址。可以作为存储器操作数来引用。 变量有段属性、偏移属性和类型属性。 变量与标号的区别:变量是指某个数据区的名字,变量的类型属性是指数据项存取的字节数大小;而标号是指某条执行指令的起始符号地址,标号的类型是指使用该标号的两条指令之间的距离远近(NEAR或FAR)。 2)变量的定义 [变量名] 数据区定义伪指令 表达式 DB(BYTE) DW(WORD) DD(DWORD) 表达式: 数值表达式; ASCII字符串(由DB定义); 地址表达式(只适用于DW或DD两个伪指令); ?(表示所定义的数据项无确定的初值); n DUP(?),DUP称为重复因子,定义n个数据项,他们都是未确定的实值; n DUP(表达式),定义n个数据项,其初值由表达式确定。 3)变量的使用 如:SIL DB 23H MOV AL,SIL 4)地址表达式 ①汇编语言中表达式有两类 数值表达式:在汇编时产生一数值,仅具有大小而无其他属性,可作为执行性指令中的立即操作数和数据区中的初值使用。 地址表达式:它表示存储器地址,其值一般都是段内的偏移地址,因此它具有段属性、偏移值属性、类型属性。地址表达式主要用来表示执行性指令中的多种形式的操作数。 ②地址表达式由变量、标号、常量、寄存器BX,BP,SI,DI的内容(用寄存器名以及方括号表示)以及一些运算符组成。 补充$的地址表达式。 DATA SEGMENT SZ DB 1,2,3,4,5,6,7 N EQU $-SZ DATA ENDS MOV AL, N; N等于7 ③PTR 运算符 ④段超越运算符 段名:地址表达式 或 段寄存器名:地址表达式 (3)运算符综述:算术运算符、逻辑运算符、关系运算符、分析运算符(SEG、OFFSET、TYPE、SIZE、LENGTH)、合成运算符(PTR运算符) 如:MOV BX,OFFSET SZ;SZ为变量,指令执行后将SZ的偏移地址赋值给BX (三)伪指令语句 1. 5种数据定义命令及存储器初始化 DB(定义字节) DW(定义字) DD(定义双字) 综合(P1

文档评论(0)

9885fp + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档