汇编语言编程PPT电子课件教案-03 寻址方式与传送指令.pptVIP

汇编语言编程PPT电子课件教案-03 寻址方式与传送指令.ppt

  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文档。上传文档
查看更多
汇编语言编程PPT电子课件教案-03 寻址方式与传送指令

例: 将数据段中BX与SI之和作为偏移地址的内存数据送至AX寄存器 MOV AX,[BX+SI] ; AX←DS : [BX+SI] 对于上述指令,汇编语言也支持如下形式: MOV AX,[BX][SI] ; AX←DS : [BX+SI] MOV AX,[BX][SI] ← → MOV AX,DS:[BX+SI] MOV AX,[BP][DI] ← → MOV AX,SS:[BP+DI] MOV AX,DS:[BP][DI] ← → MOV AX, DS:[BP+DI] 7. 相对基址变址寻址方式 相对基址变址寻址方式,也使用基址寄存器(BX或BP)和变址寄存器(SI或DI),另外还在指令中指定一个8位或16位的位移量,这三者之和构成操作数的有效地址 EA。与BX约定的段为数据段DS,与BP约定的段为堆栈段SS;但都可用段超越前缀改变 例: 将数据段中、以 BX与SI之和为偏移地址基础,向地址低端位移06H(即减6)处的内存数据送至AX寄存器 MOV AX,[BX+DI-06H] ; AX←DS : [BX+DI-06H] 说明 在汇编语言中,位移量还可以用符号表示,也支持多种表达形式。下面3条指令完全等同: MOV AX,[BX+SI+WVAR] MOV AX,WVAR[BX+SI] MOV AX,WVAR[BX][SI] 8086/8088 CPU指令系统 (1) 数据传送类指令 (2) 算术运算类指令 (3) 逻辑运算和位操作类指令 (4) 串操作类指令 (5) 控制转移类指令 (6) 处理机控制类指令 数据传送类指令 数据传送指令的功能是把数据从一个位置传送到另一个位置。数据传送是计算机中最基本、最重要的一种操作。数据传送指令也是最常使用的一类指令。 该类指令除标志操作指令外,其它均不影响标志位。 通用数据传送指令 MOV XCHG XLAT 它们提供方便灵活的通用传送操作 1)传送指令MOV MOV指令把一个字节或字的操作数从源地址传送至目的地址。 源操作数可以是立即数、寄存器或主存单元的内容,目的操作数可以是寄存器或主存单元,但不能是立即数。 MOV指令是采用寻址方式最多的指令 MOV指令格式 MOV reg/mem,imm ;立即数送寄存器或主存 MOV reg/mem/seg,reg ;寄存器送寄存器(包括段寄存器)或主存 MOV reg/seg,mem ;主存送寄存器(包括段寄存器) MOV reg/mem,seg ;段寄存器送主存或寄存器 例 数据传送 mov cl,4 ;CL←4,字节传送 mov dx,0ffh ;DX←00FFH,字传送 mov si,200h ;SI←0200H,字传送 mov ah,al ;AH←AL mov bvar,ch ;bvar是一个字节变量 mov al,table[bx] ;table指向一个数据表 mov dx,[bp+4] ;DX←SS:[ BP+4 ] mov ax,ds ;AX←DS mov es,ax ;ES←AX 说明 目的操作数与源操作数必须类型一致,或者同为字,或者同为字节,否则为非法指令 MOV AL,50AH ;非法指令:050AH为字,而AL为字节寄存器 MOV SI,DL ;非法指令:SI为字寄存器,而DL为字节寄存器 说明 将立即数传送给存储器单元时,指令中给出的立即数可以理解为字,也可以理解为字节,此时必须显式指明。 为了区别是字节传送还是字传送,汇编语言用操作符 byte ptr(字节类型)和word ptr(字类型)指定 说明 MOV [bx+si], 255 ;非法指令:[BX+SI]指向的存储单元不明确是字节还是字单元 mov byte ptr [si], 0ah ;正确,DS : [SI]←0AH,byte ptr说明是字节操作 mov word ptr [si+1], 0bh ;正确,DS : [SI+1]←000BH,word ptr说明是字操作 说明 8088/8086指令系统除串操作类指令外,不允许两个操作数都是存储单元,所以也就没有主存至主存的数据传送指令 要实现这种传送,可通过寄存器间接实现 说明 ; buf1和buf2是两个字变量 MOV buf2, buf1 ;非法指令:不能实现存储单元之间的直接传送 mov ax, buf1 ;正确,AX←buf1(将buf1内容送AX) mov buf2, ax ;正确,buf2←AX 说明 在8088指令系统中,能直接对段寄存器的操作只有MOV等个别传送指令,且不灵活,所以,采用段寄存器要特别注意

文档评论(0)

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

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

1亿VIP精品文档

相关文档