- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4_1 寻址方式 2011 final
微机原理及应用 信息与电气工程学院 孙秀娟 4.1 数据寻址方式 指令有两部分:操作码,操作数 数据寻址方式:通过地址查找数据(操作数) 立即数寻址:数据与指令操作码一起,用常量表达 寄存器寻址:数据在寄存器中,用寄存器名表示 存储器寻址:数据在主存中,用存储器地址代表 4.1.1 立即数寻址方式 操作数紧跟操作码,是指令机器代码的一部分 操作数从指令代码中立即得到,即立即数,用常量形式直接表达 立即数寻址方式只用于源操作数,常用来给寄存器和存储单元赋值 例如:MOV AX, 0102H 机器代码:B8 02 01 操作码:B8H 立即数:0102H 4.1.1 立即数寻址方式—立即数寻址程序(1) ;数据段 const = 64 bvar db 87h, 49h, OK, 5 dup(?) wvar dw 0100h, 745ah, ? dvar dd 12,, 0 4.1.1 立即数寻址方式—立即数寻址程序(2) ;代码段 mov al, 5 labl: mov ax, 0102h mov ebx, -1 mov ecx, const mov dx, offset bvar mov si, length dvar mov di, offset labl mov ebp, const*const/type wvar 4.1.2 寄存器寻址方式 操作数存放在处理器的内部寄存器中 用寄存器名表示它的内容 绝大多数指令采用通用寄存器寻址 部分指令支持专用寄存器,例如段寄存器 寄存器寻址方式简单快捷,最常使用 例如:MOV AX, BX 4.1.2 寄存器寻址方式—寄存器寻址程序 ;代码段 mov al, ah mov bx, ax mov ecx, ebp mov dx, ds mov es, dx mov edi, si 4.1.3 存储器寻址方式 —段地址的默认和超越 操作数在主存中 编程时主存使用逻辑地址 (段地址:偏移地址) 段地址可以使用默认逻辑段,不用显式说明 一般是DS指向数据段 采用BP/EBP或SP/ESP作为基地址,默认SS指向堆栈段 段地址必要时使用段超越指令前缀显式说明 段超越指令前缀:段寄存器名后跟英文冒号 CS∶,DS∶,SS∶,ES∶,FS∶,GS∶ 4.1.3 存储器寻址方式—偏移地址的组成 主存操作数的偏移地址常被称为有效地址EA 32位有效地址 =基址寄存器+(变址寄存器×比例)+位移量 基址寄存器:任何8个32位通用寄存器之一 变址寄存器:除ESP之外的任何32位通用寄存器之一 比例:1,2,4,8 位移量:8位或32位有符号数 16位有效地址 =基址寄存器+变址寄存器+位移量 基址寄存器:BX,BP 变址寄存器:SI,DI 位移量:8位或16位有符号数 4.1.3 存储器寻址方式—直接寻址方式 有效地址只有位移量,直接包含在指令代码中 例如:MOV AX, DS: [2000H] 指令代码:A1 00 20 操作码:A1H 操作数:有效地址=2000H 4.1.3 存储器寻址方式—直接寻址程序 ;代码段 mov ax, ds: [2000h] mov ax, es: [2000h] mov ax, wvar mov dh, bvar mov ebx, dvar mov ecx, dword ptr wvar mov dvar+8, ebx mov wvar+4, 0fe0h 4.1.3 存储器寻址方式 —寄存器间接寻址方式 有效地址存放在寄存器中(寄存器内容=偏移地址) 16位有效地址只能使用BX、SI、DI 32位有效地址通过任何一个32位通用寄存器 mov al, [bx] ;字节量传送,16位有效地址 mov ax, [bx] ;字量传送,16位有效地址 mov eax, [bx] ;双字量传送,16位有效地址 mov [esi], cx ;字量传送,32位有效地址 mov [ebx], edx ;双字量传送,32位有效地址 mov word ptr [ebp], 1394h ;字量传送,32位有效地址 MASM用中括号括起寄存器表示寄存器间接寻址 寄存器间接寻址没有说明存储单元类型 4.1.3 存储器寻址方式 —寄存器间接寻址程序 ;数据段 msg db WELLDONE msglen equ ($-msg)/type msg ;代码段 mov ecx, msglen mov bx, offset msg again: mov al, [ebx] add al, 20h mov [ebx], al
文档评论(0)