80X86汇编语言程序设计 第二章④.8086 8088指令系统(一)数据传送指令.doc

80X86汇编语言程序设计 第二章④.8086 8088指令系统(一)数据传送指令.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
80X86汇编语言程序设计 第二章④.8086 8088指令系统(一)数据传送指令

80X86汇编语言程序设计 第二章 8086/8088寻址方式和指令系统 四.8086/8088指令系统 8086/8088的指令系统可分为如下六个功能组: 1.数据传送;2.算术运算;3.逻辑运算;4.串操作;5.程序控制;6.处理器控制. 汇编语言中指令语句的一般格式。指令语句可由四部分组成,一般格式如下: 【标号:】指令助记符【操作数1【,操作数2】】【;注释】 (一)数据传送指令 1.传送指令 格式: MOV DST,SRC 源操作数(SRC)可以是累加器(Al.AH).寄存器.存储单元以及立即数,而目的操作数(DST)可以是累加器.寄存器和存储单元,不能是立即数。传送不改变源操作数。数据传送指令能实现下列传送功能: (1)CPU内部寄存器之间的数据传送。 例如:MOV AH,AL MOV DL,DH MOV BP,SP MOV AX,CS 注意:源操作数和目的操作数不能同时是段寄存器(CS.SS.DS.ES)代码段寄存器CS不能作为目的操作数,指令指针IP既不能作为源操作数,也不能作为目的操作数。注意,这种例外永远存在。 (2)立即数送至通用寄存器或存储单元。 例如:MOV AL,3 MOV SI,-5 MOV VARB,-1 ;VARB是变量名,代表一个存储单元 MOV VARW,3456H ;VARW是一个字变量 MOV [SI],6543H 注意:立即数不能直接传送到段寄存器。立即数永远不能作为目的操作。 (3)寄存器与存储器间的数据传送。 例如:MOV AX,VARW ;VARW是一个字变量,存储器操作为直接寻址。MOV AX,[0123] MOV BH,[DI] ;存储器操作数位寄存器间接寻址 MOV DI,ES:[SI+3] ;存储器操作数为相对变址寻址,使用段超越前缀 MOV VARB,DL ;VARB是一个字节变量 MOV DS:[BP],DL ;使用段超越前缀 MOV VARW,DS ;VARW是一个字变量 MOV ES,VARW 注意:源操作数和目的操作数类型要一致。即同时为字节或字,不能一个字节,另一个是字。除了串操作指令外,源操作数和目的操作数不能同时是存储器操作数。两个操作数必须有一个寄存器(立即寻除外)。 例如:把字变量VARW1的内容送到字变量VARW2 MOV AX,VARW1 MOV VARW2,AX 这种利用通用寄存器过度的方法,也适用于段寄存器间的数据传送。 例如:MOV AX,CS MOV DS,AX ;把CS的内容送到DS MOV AL,D 立即数(字符D的ASCII码44H)送到AL寄存器。 MOV BX,OFFSET TABLE 把TABLE的偏移地址(不是内容)送到BX寄存器,其中OFFSET为属性操作符。 例如:BX=1234H BP=5678H要交换两个寄存器的内容。用MOV指令如下: MOV AX,BX MOV BX,BP MOV BP,AX 利用交换指令可方便地实现通用寄存器与通用寄存器或存储单元间的数据交换。 2.交换指令 格式:XCHG OPRD1,OPRD2 此指令把操作数OPRD1的内容与操作数OPRD2的内容交换。操作数同时是字节或字。 例如:XCHG AL,AH XCHG SL,BX OPRD1和OPRD2可以是通用寄存器和存储单元。但不包括段寄存器,也不能同时是存储单元,还不能有立即数,可采用各种存储器寻址方式来制定存储单元。 例如:XCHG BX,[BP+SI] 如指令执行前: (BX)=6F30H, (BP)=0200H, (SI)=0046H, (SS)=2F00H, (2F246)=4154H 物理地址=SS*16+BP+SI=2F000+0200+0046=2F246H 指令执行后:(BX)=4154H (2F246H)=6F30H 注意:使用BP的时候,段地址是SS堆栈段。 3.地址传送指令 (1)指令LEA (传送偏移地址)(Load Effective Address) 格式:LEA REG,OPRD 指令LEA称为传送有效地址指令。该指令把操作数OPRD的有效地址传送到操作数REG。操作数OPRD必须是一个存储器操作数,操作数REG必须是一个16位的通用寄存器。 例如:LEA AX,BUFFER ;BUFFE

文档评论(0)

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

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

1亿VIP精品文档

相关文档