第二章汇编语言与汇编程序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文档。上传文档
查看更多
二、汇编语言与汇编程序 2.1 符号指令中的表达式; 2.2 符号指令的寻址方式; 2.3 常用指令; 2.4 伪指令; 2.5 常用系统功能调用与BIOS。 2.1 符号指令中的表达式 1. 常量和数值表达式; 2. 变量和地址表达式; 3. 标号; 4. 标量和标号类型的变更。 1. 常量和数值表达式 2. 变量和地址表达式 变量的段地址:变量所在段的段首地址除以10H之商;当要访问某变量时,其段地址一定要在相应的段寄存器中。 变量的偏移地址:变量所在段的段首址到该变量所在存储单元的字节距离,即EA。 变量的段地址和偏移地址分别用SEG或OFFSET两个算符来指定。 变量的定义 [变量名] 数据定义伪指令 表达式[,……] 变量名:数据的地址或数据区的首地址 数据定义伪指令:DB(定义字节)、DW(定义字)、DD(定义双字)、DQ(定义4字)、DT(定义10字节),根据定义的字节数自动给变量分配存储单元。 表达式:数值表达式、ASCII码字符串、地址表达式、?及n DUP(表达式) 3. 标号 4. 变量和标号类型的变更 2.2 符号指令的寻址方式 一、概 述 指令的基本构成 指令系统设计 一个指令系统能够提供哪些寻址方式,能否为编制程序提供方便,这是指令系统设计的关键。 需要说明的是,在不同的计算机系统中,寻址方式的名称和分类并不统一,但基本可以归结为以下几种方式或它们的变型或组合: 二、8088/8086的操作数分为3类 1、立即数(常数) 取值范围如下表: 指令的执行时间 一条指令的执行时间=∑ 三、8086的寻址方式 寻址方式——寻找操作数的方法 寻找操作数的地址 在8086指令系统中,说明操作数所在地址的寻址方式可分为8种: ①立即寻址 ⑤ 寄存器相对寻址 ②寄存器寻址 ⑥基址-变址寻址 ③直接寻址 ⑦相对的基址-变址寻址 ④间接寻址 ⑧隐含寻址 4. 寄存器间接寻址 操作数的偏移地址(有效地址EA)放在寄存器中 只有SI、DI、BX和BP可作间址寄存器 例: MOV AX, [BX] MOV CL, CS:[DI] 错误例 : × MOV AX, [DX] × MOV CL, [AX] 例: MOV AX, [BX+8] MOV CX, TABLE[SI] MOV AX, [BP] ; 默认段寄存器为SS 指令操作例:MOV AX,DATA[BX] 若(DS)=6000H, (BX)=1000H, DATA=2A00H, (63A00H)=66H, (63A01H)=55H 则物理地址 = 60000H + 1000H + 2A00H = 63A00H 指令执行后:(AX)=5566H (见下页图示) 例: MOV AX, [BX] [SI] MOV AX, [BX+SI] MOV AX, DS: [BP] [DI] 错误例: × MOV AX, [BX] [BP] × MOV AX, [DI] [SI] 小结 寄存器间接、寄存器相对、基址变址、相对基址变址四种寻址方式的比较: 寻址方式 指令操作数形式 寄存器间接 —— 只有一个寄存器(BX/BP/SI/DI之一) 寄存器相对 —— 一个寄存器加上位移量 基址—变址 —— 两个不同类别的寄存器 相对基址-变址 —— 两个不同类别的寄存器加上位移量 2. 寄存器寻址 操作数放在某个寄存器中 源操作数与目的操作数字长要相同 寄存器寻址与段地址无关 例: MOV AX, BX MOV [3F00H], AX MOV CL, AL 错误例: × MOV AX, BL ; 字长不同 × MOV ES: AX, DX ; 寄存器与段无关 AX SI 2233H 2233H 指令操作例:MOV SI,AX ; SI (AX) 指令执行前:(AX

文档评论(0)

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

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

1亿VIP精品文档

相关文档