第3章 寻址方式和指令系统(创新142)综述.ppt

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

第3章 寻址方式与指令系统;先看一个例子例:; #include stdio.h int main(int argc, char* argv[]) { int a,b,c; a=1; b=2; c=a+b; printf(“c=%d\n,c); return 0; } ; data segment a db ? b db ? c db ? string db c=$ data ends code segment main proc far assume cs:code, ds:data, es:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax ;指令构成;指令中的操作码和操作数;寻址方式;数据寻址 ;3.1 寻址方式;3.1.1 立即数寻址 例3-1立即数寻址 MOV AX,2004H ;(AH)=20H,(AL)=04H MOV BL, 5AH ;(BL)=5AH MOV EAX ;(EAX), (AX)=4455H 立即数常用于给寄存器赋初值,只能作源操作数,不能作目的操作数 ;3.1.2 寄存器寻址 操作数存放在指令指定的8位、16位或32位通用寄存器中。 对于16位的操作数,寄存器可以是AX、BX、CX、DX、SI、DI、SP和BP等;EA = Ri;3.1.2 寄存器寻址 例3-2 寄存器寻址 MOV AX,BX ; 将BX中的内容送入AX中, BX中的内容保持不变 MOV SI,DI ;将DI中的内容送入S I中, DI中的内容保持不变 MOV EAX,EBX ;将EBX中的内容送入EAX;3.1.3 直接寻址 直接寻址指的是操作数在存储器中的有效地址EA直接包含在指令中,书写时有效地址加上中括号 ;3.1.3 直接寻址 例3-3 存储器直接寻址 MOV AX,[1000H] ;将DS段的1000H和1001H两个 单元的内容送入AX寄存器中 MOV EAX,ES:[2000H] ;将ES段的2000H~2003H四个单元的内容送入EAX寄存中,其中ES为段超越前缀 MOV AX,BUF ;将DS段内以有效地址BUF(符号地址)起始的两个单元的内容送入AX寄存器中;间接寻址;;3.1.4 寄存器间接寻址 操作数的有效地址EA存放在基址寄存器BX、BP,或变址寄存器SI、DI中 如果指定的寄存器是BX、SI、DI,则操作数默认在数据段中;如果使用BP,默认在堆栈段中 允许段超越。 书写时对间接寻址的寄存器加上中括??。 操作数的物理地址为: (DS)×16+(SI/DI/BX) 或(SS)×16+(BP);EA = ( Ri );例3-4 寄存器间接寻址,假定(DS)=2000H,(SI)=3600H,(23600H)=6022H MOV AX,[SI] ;先将DS中的值左移4位,然后与SI中的值相加, 形成物理地址是23600H,再将该物理地址中的 数据6022H送入AX寄存器中 例3-5 寄存器间接寻址,假定(SS)=3000H,(BP)=1100H,(31100H)=5E28H MOV BX,[BP] ;先将SS中的值左移4位,然后与BP中的值相加, 形成物理地址31100H,再将该物理地址中的

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档