Microsoft PowerPoint - 05-第五讲-寻址方式.pptx

Similar documents
数据库系统概论

Microsoft PowerPoint - 微原-第3章2.ppt [兼容模式]

主要内容 指令系统的一般概念 指令操作方式操作码的含义指令对操作数的要求指令执行的结果 寻址方式 指令说明 2015 年 3 月 16 日星期一 8 时 2 分 37 秒 2

幻灯片 1

Microsoft PowerPoint - Ch3-8086CPU指令系统(2)-寻址.pptx

Microsoft PowerPoint - 微原-第3章3.ppt [兼容模式]

Microsoft PowerPoint - Ch3-8086CPUæ„⁄令系ç»�(3)-æŁ°æ“®ä¼€é•†æ„⁄令

untitled

微机第02章1(指令寻址)

数据库系统概论

指令系统 可分成如下 6 类 : 数据传送指令 算术运算指令 逻辑运算和移位指令 串操作指令 程序控制指令 处理器控制指令 2015 年 3 月 26 日星期四 8 时 41 分 27 秒 2

Microsoft PowerPoint - CH2_1.ppt [兼容模式]

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20

本次习题课中提到的 课本, 均指机械工业出版社的 Intel 微处理器 ( 原书第八版 ) 中文版, 使用其他版本课本的同学需要自己对应

Microsoft PowerPoint - CH2_1.ppt [兼容模式]

2006年国家公务员招录考试行测真题(A)

L15 MIPS Assembly

1 CPU interrupt INT trap CPU exception

li 侉 2. 在 下 列 加 点 字 的 正 确 读 音 旁 打 : (1) 我 看 见 路 边 有 一 条 蛇 A.sh 佴 B.sh 佶 C.sh 侑 D.sh 侉 (2) 外 面 的 泥 土 冻 得 很 硬 A.y 侏 n 倮 B.y 侃 n 倮 C.y 佾 n 倮 D.y 佻 n 倮 (3

数据库系统概论

提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, / 11

<4D F736F F D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>

第5章:汇编语言程序设计

66 微型计算机原理与接口技术 ( 第二版 ) 2. 指令格式计算机中的汇编指令由操作码字段和操作数字段两部分组成 (1) 操作码字段 操作码表示计算机要执行的某种指令功能, 由它来规定指令的操作类型, 说明计算机要执行的具体操作, 例如传送 运算 移位 跳转等操作 同时还指出操作数的类型 操作数的


<4D F736F F D C4EAC6D5CDA8B8DFB5C8D1A7D0A3D5D0C9FAC8ABB9FACDB3D2BBBFBCCAD4CEC4BFC6D7DBBACDCAD4BEEDBCB0B4F0B0B82DD6D8C7ECBEED2E646F63>

今天刚发现的, 比较简单, 于是就来简单分析下吧 该感染样本很简单, 新加了个区段放病毒执行代码, 执行病毒代码, 最后跳回原入口点来执行原文件 下面就是感染后的代码的简单分析 : ; =============== S U B R O U T I N E =====================

Computer Architecture & Organization

Microsoft Word - em78 sub program.doc

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

MSP430ϵÁе¥Æ¬»úµÄÖ¸Áîϵͳ.pps [¼æÈÝģʽ]


乌鲁木齐城市交通改善项目Ⅱ

习 题 一

第0章 硬件部分试题分析和解题方法

<4D F736F F D C4EAB9FABCD2B9ABCEF1D4B1D0D0D5FEC4DCC1A6B2E2D1E9A3A841C0E0A3A92E646F63>


共同构成 16 位数据存储单元的地址 当 CPL=1 时, 将堆栈指针 SP 的 16 位地址 与指令中的 7 位地址相加, 形成 16 位的数据存储器地址 (2) 当 SP=0100h, 偏移地址为 50h 时, 寻址 0150h 单元 ; 当 DP=2, 偏移地址为 50h 时, 寻址 0150

,,,,,,,,,,,,, :,, ;,,,,, ( ),,,, : ( ) ; ( ) ; ( ) ( ) ; ( ) ( A ) ; ( ) ( ),,,,,,, 80

<4D F736F F F696E74202D DB5DAB0CBBDB22DBBE3B1E0D3EFD1D4B3CCD0F22E >



bingdian001.com

Microsoft Word - 98地球科學專科題庫ok.doc

一 学 校 基 本 情 况 目 录 二 部 门 预 算 报 表 ( 一 ) 收 支 总 表 ( 二 ) 收 入 总 表 ( 三 ) 支 出 总 表 ( 四 ) 财 政 拨 款 支 出 表 三 部 门 预 算 报 表 说 明 ( 一 ) 收 支 总 表 说 明 ( 二 ) 收 入 总 表 说 明 (

目 录 一 学 校 基 本 情 况 二 2016 年 预 算 报 表 ( 一 ) 中 南 大 学 收 支 预 算 总 表 ( 二 ) 中 南 大 学 收 入 预 算 表 ( 三 ) 中 南 大 学 支 出 预 算 表 ( 四 ) 中 南 大 学 财 政 拨 款 支 出 预 算 表 三 2016 年

信息参考

Microsoft Word - 15dbtb007

(2) Function 0BH: Function 0CH: (pixel, picture element) Function 0DH: Function 0FH: Function 13H:

(Microsoft Word - \246D\252k\267\247\255n_\275\306\277\357_.docx)



A. 城 市 化 是 我 国 发 展 的 必 由 之 路 B. 单 纯 发 展 大 城 市 不 利 于 城 市 化 的 推 进 C: 要 实 现 城 市 化, 就 必 须 让 城 市 充 分 吸 纳 农 村 人 口 D: 大 城 市 对 外 地 农 村 人 口 的 吸 引 力 明 显 低 于 中 小

. v dx v d () () l s dl s d (_) d () v s v s () a dv a d (_) ( ) ( ) x- = v- = = v 0 = m/s a = = m/s 2 a- = ( ) x- v- a- Page 2 of 20

幻灯片 1

数据库系统概论

Ch2.1

主要内容 : 汇编语言源程序的结构汇编语言语句格式伪指令语句功能调用汇编语言程序设计方法宏汇编和条件汇编 2015 年 3 月 30 日星期一 7 时 58 分 57 秒 2

CH559指令周期.doc

上 海 农 商 银 行 理 财 产 品 风 险 揭 示 书 理 财 资 金, 则 客 户 面 临 产 品 期 限 延 期 调 整 等 风 险 8. 信 息 传 递 风 险 : 上 海 农 商 银 行 将 按 照 本 说 明 书 有 关 信 息 公 告 的 约 定, 进 行 产 品 信 息 披 露 客

(譯本)

Are You suprised ?

1 2 9

第七章 中断

礼仪玉和葬玉

DPJJX1.DOC

Microsoft Word - 新1-3.doc

欧洲标准胀紧套

<4D F736F F D20C7B0CBC4D5C2D7F7D2B5CCE22E646F6378>

06721 main() lock pick proc() restart() [2][4] MINIX minix2.0 GDT, IDT irq table[] CPU CPU CPU CPU (IDTR) idt[] CPU _hwint00:! Interrupt

一 汇编语言计算机基础 从事计算机科学方面的工作, 汇编语言是我们必不可少缺的基础 我们的工作平台 研究对象都是机器, 而汇编语言是人和计算机沟通的最直接方式, 它描述了机器最终所要执行的指令序列 学习汇编语言可以让你充分获得底层编程的体验, 深刻理解机器运行程序的机理 二 基础知识 1. 汇编语言

申 请 律 师 执 业 许 可 初 审 服 务 指 南 目 录 一 办 理 要 素 ( 一 ) 事 项 名 称 和 编 码 4 ( 二 ) 实 施 机 构 4 ( 三 ) 申 请 主 体 4 ( 四 ) 受 理 地 点 4 ( 五 ) 办 理 依 据 4 ( 六 ) 办 理 条 件 5 ( 七 )

环 境, 我 在 巩 固 在 校 期 间 所 学 习 的 理 论 知 识 的 同 时, 不 断 的 充 实 己, 利 用 业 余 时 间 主 动 学 习 专 业 知 识, 技 能, 把 理 论 联 系 到 工 作 实 践 中 作 为 一 名 工 作 生 活 中 的 党 员, 我 始 终 注 意 与

附件1

邻居啊 第二天 对门却悄无声息了 莫非昨夜的吵闹 仅是个幻觉 夜幕拉下时 寒风又吱溜溜地叫个不停 老婆 睡下后 我这只夜猫子 继续兴致勃勃地跟着福尔 摩斯去探案 白天的喧嚣退去了 周围格外安静 正 是读书的好时候 突然 响起了钟摆声 哒 哒 哒 节奏匀称 不疾不徐 声响却愈来愈大 格外突兀 了 原来

<4D F736F F D BAC520CAD7B6BCCAA6B7B6B4F3D1A C4EAD7A8D2B5BCBCCAF5D6B0CEF1C6C0C6B8B9A4D7F7D2E2BCFB2E646F63>

其 他 方 面 也 可 以 采 用 同 样 的 方 式, 这 样 又 可 以 锻 炼 除 语 文 方 面 的 其 他 能 力 了 而 英 语 方 面, 我 认 为 配 合 英 语 专 业 举 办 英 语 演 讲 比 赛 就 很 不 错 这 样 开 展 一 系 列 的 创 新 活 动, 锻 炼 多 方

第 六 条 办 法 第 五 条 ( 三 ) 协 会 考 评, 考 评 指 考 核 评 价 第 七 条 办 法 第 六 条 职 业 操 守 包 括 的 内 容 : 个 人 诚 信 不 做 假 账 不 偷 漏 税 不 贪 污 盗 窃 等 第 八 条 企 业 财 务 管 理 人 才 评 价 实 行 五 星

<4D F736F F D A67EABD7A4BAB3A1B1B1A8EEA8EEABD7A6DBA6E6B5FBA6F4AD70B5652E646F63>

统计工作情况汇报

他 随 身 带 有 二 三 十 张 古 方, 白 天 卖 药, 夜 晚 将 药 材 精 细 研 末, 按 方 配 制 对 于 病 人 服 药 后 反 应, 特 别 留 心 发 现 问 题, 就 近 向 老 医 生 老 药 贩 虚 心 求 教, 千 方 百 提 高 药 效 同 时 对 于 春 夏 秋

目 录 第 一 章 地 方 陪 同 导 游 人 员 服 务 程 序...1 第 一 节 地 方 陪 同 导 游 人 员 的 概 念 与 职 责...1 第 二 节 服 务 准 备...2 一 熟 悉 接 待 计 划...2 二 落 实 接 待 事 宜...5 三 物 质 和 知 识 的 准 备...

走 吧, 到 三 峡 去 : 那 里 是 我 们 先 人 用 生 命 之 血 打 造 的 家 园 走 吧, 到 三 峡 去 : 那 里 的 浪 涛 承 载 过 千 百 万 只 我 们 先 人 驶 向 今 天 的 航 船 走 吧, 到 三 峡 去 : 那 里 的 每 一 座 青 山 都 刻 满 了 我

6寸PDF生成工具

Microsoft Word - 送報伕2.doc

Microsoft Word - N011 斷翅天使

中 国 科 学 院 国 家 科 学 图 书 馆

申论写作套路万能模板

( 地 ( ) 组 织 机 构 代 码 企 业 详 细 名 称 哈 密 地 伊 吾 新 疆 广 汇 新 能 源 有 限 公 司 玛 纳 斯 玛 纳 斯 祥 云 化 纤 有 限 公 司 玛 纳 斯 玛 纳 斯 澳 洋 科 技 有 限 责

图 文 聚 焦 国 培 计 划 (2013) 甘 肃 省 农 村 小 学 音 乐 骨 干 教 师 短 期 集 中 培 训 9 月 4 日 开 班 了, 学 员 老 师 们 从 甘 肃 省 各 个 县 市 州 汇 聚 湖 南 一 师, 开 始 了 为 期 14 天 的 培 训 学 习 : 鲜 明 的

申請機構基本資料

申請機構基本資料

Microsoft Word - 三方协议书与接收函的相关说明学生版.doc

~2~

,,

untitled

<4D F736F F F696E74202D DB5DAB6FECAAEB6FEBDB22DCEA2D0CDBCC6CBE3BBFACFC8BDF8BCBCCAF5CAB5C0FDA3A8D2BBA3A92E >

<4D F736F F D20D0C5CFA2BBAFB7A2D5B9D6D8B5E3D7A8CFEEB9E6BBAE2E646F63>

关于建立境内违法互联网站黑名单管理制度的通知

Transcription:

第五讲 授课教师 : 陆俊林王箫音 2012 年春季学期

主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 教材相关章节 : 微型计算机基本原理与应用 ( 第二版 ) 第 4 章寻址方式与指令系统 1

主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 2

指令的组成 指令由操作码和操作数两部分组成 操作码操作数 MOV AX, 8726H ADD AX, [3000H] MOV CX, [BX+SI+200H] JMP [BX] 大多数情况下, 指令中并不直接给出操作数 该划分仅为示意图, 在真实的指令机器码中, 操作码和操作数的划分方式较为复杂 3

寻址方式 (Addressing Mode) 数据寻址方式 : 指令中如何提供操作数或操作数地址的方式 转移地址寻址方式 : 程序非顺序执行时如何寻找转移地址 MOV AX, 8726H ADD AX, [3000H] MOV CX, [BX+SI+200H] JMP [BX] 给出存放部分转 移地址的地址 直接给出操作数 给出存放操作数的地址 给出计算操作数地址的方法 * 此处仅指出了源操作数的寻址方式, 而目的操作数也有类似的各种寻址方式 4

主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 5

数据寻址方式的分类 1 立即寻址 2 寄存器寻址 3 直接寻址 4 寄存器间接寻址 5 寄存器相对寻址 6 基值变址寻址 7 相对基址变址寻址 8 比例变址寻址 数据在指令中数据在寄存器中 数据在存储器中 6

1. 立即寻址 (Immediate Addressing) 操作数作为指令机器码的一部分, 在取出指令的同时就取出了操作数 汇编指令 MOV AX, 8726H 机器码 10111000... 高地址 存储器 8726H AX 87H 26H 操作数 10111000 操作码 低地址 7

要点说明 立即寻址方式中的操作数称为立即数 立即数可以是 8 位或 16 位,IA-32 中可以使用 32 位的立即数 多字节的立即数遵循 高位字节存放在高地址中, 低位字节存放在低地址中 的原则 立即寻址方式常用于给寄存器赋值, 并且只能用于源操作数, 而不能用于目的操作数 由于不需要存储器访问, 该方式的指令执行速度很快, 但需占用较多的指令字节 8

错误的立即寻址指令示例 1. MOV AL, 256 2. MOV AX, -32769 立即数超过了 AL 能存放的数的范围 (256=100H) 立即数超过了 AX 能存放的带符号数范围 (-32768~32767) 3. MOV 100H, AL 立即数不能作为目的操作数 4. DEC 20 单操作数指令不能使用立即数 5. MOV DS, 1234H 源操作数是立即数, 则目的操作数就不能是段寄存器 9

2. 寄存器寻址 (Register Addressing) 操作数在寄存器中, 指令中指明寄存器号 汇编指令 MOV AX, BX 机器码 1000101111000011 1234H 5678H 5678H 5678H AX BX AX BX 执行前 执行后 10

要点说明 寄存器寻址方式既可用于源操作数, 也可用于目的操作数, 还可以两者都用 对于 8 位操作数, 可使用如下寄存器 : AH AL BH BL CH CL DH DL 对于 16 位操作数, 可使用如下寄存器 : AX BX CX DX SI DI SP BP CS DS ES SS (CS 不能作目的寄存器 ) 11

寄存器寻址的优点 执行速度快 操作数在 CPU 内部, 不需要访问存储器来取得操作数 指令编码较短 寄存器号比立即数 内存地址短 * 在编程中, 应尽量使用这种寻址方式的指令 12

3. 直接寻址 (Direct Addressing) 指令中直接给出操作数的有效地址, 有效地址指向存放在存储器中的操作数 即 : 操作数的有效地址 ( 而不是操作数本身 ) 存放在代码段中指令的操作码之后 注 : 有效地址 (EA,Effective Address) 在讨论寻址方式时, 通常把操作数的偏移地址称为有效地址 操作数默认存放在数据段中 13

寻址方式示例 高地址 23001H 23000H 20000H 低地址 存储器 20H 10H 30H 00H OP 汇编指令 MOV AX, [3000H] 操作数 操作码 数据段 代码段 2010H AX 操作数默认存放在 DS 指向的数据段中, 即 [3000H]=DS:[3000H] 设 :DS=2000H, 则 : 物理地址 =2000H 16+3000H =23000H 14

要点说明 如果数据存放在数据段以外的其它段 ( 例如附加段 ), 则应在指令中给出 段跨越前缀 示例 1:MOV AX, ES:[3000H] 示例 2:ES: MOV AX, [3000H] 为避免指令字过长, 规定双操作数指令不能两个操作数都用直接寻址方式 错误示例 :MOV DS:[2000H], DS:[3000H] 15

4. 寄存器间接寻址 (Register Indirect Addressing) 指令中给出寄存器号, 指定的寄存器中存放着操作数的有效地址 高地址 21001H 21000H 20000H 低地址 存储器 50H A0H 数据段 汇编指令 MOV AX, [BX] 设 :DS=2000H, BX=1000H 则 : 物理地址 =2000H 16+1000H =21000H 50A0H AX 16

要点说明 默认的段寄存器 ( 即未使用 段跨越前缀 的情况 ) 8086 IA-32 新增 保存有效地址的寄存器 段寄存器 BX, SI, DI DS BP SS EAX, EBX, ECX, EDX, ESI, EDI DS EBP, ESP SS 17

5. 寄存器相对寻址 (Register Relative Addressing) 操作数的有效地址是一个基址或变址寄存器的内容与一个 8 位或 16 位的位移量之和 有效地址 = BX BP SI DI + 8 位 16 位 ( 带符号数 ) 基址或变址 位移量 18

寻址方式示例 高地址 45001H 45000H 40000H 代码段低地址 存储器 12H 34H 30H 00H OP OP 汇编指令 数据段 位移量 操作码 1234H AX MOV MOV AX, [SI+3000H] AX, 3000H[SI] 设 :DS=4000H SI=2000H 则 : 有效地址 =2000H+3000H =5000H 物理地址 =40000H+5000H =45000H 19

要点说明 默认的段寄存器 ( 即未使用 段跨越前缀 ) 寄存器 BX/SI/DI 对应的段寄存器为 DS 寄存器 BP 对应的段寄存器为 SS IA-32 的扩展 允许使用任何 32 位通用寄存器 位移量可以是 8 16 32 位带符号数 适用于表格 ( 数组 ) 的处理 通过位移量来设置表格的首地址 修改基址或变址寄存器的内容来获得表项的值 20

6. 基址变址寻址 (Based Indexed Addressing) 操作数的有效地址是一个基址寄存器和一个变址寄存器内容之和, 两个寄存器均由指令指定 有效地址 = BX BP + SI DI 基址 变址 21

寻址方式示例 高地址 数据段 存储器 21001H 56H 21200H 78H [SI] 21000H [BX] 20000H [DS] 低地址 汇编指令 5678H AX MOV MOV AX, [BX+SI] AX, [BX][SI] 设 :DS=2000H BX=1000H SI=200H 则 : 有效地址 =1000H+200H =1200H 物理地址 =20000H+1200H =21200H 22

要点说明 默认的段寄存器 ( 即未使用 段跨越前缀 ) 寄存器 BX 对应的段寄存器为 DS 寄存器 BP 对应的段寄存器为 SS IA-32 的扩展 允许使用任何两个 32 位通用寄存器的组合 例外 : 变址寄存器不得使用 ESP 适用于表格 ( 数组 ) 的处理, 且更灵活 表格首地址的偏移量可存放在基址寄存器中 用变址寄存器来访问表格中的各项 23

7. 相对基址变址寻址 (Relative Based Indexed Addressing) 操作数的有效地址是一个基址寄存器的内容 一个变址寄存器的内容与一个 8 位或 16 位的位移量之和 也称 带位移量的基址加变址寻址方式 有效地址 = BX BP + SI DI + 8 位 16 位 ( 带符号数 ) 基址变址位移量 24

寻址方式示例 高地址 23001H 23200H 20000H 低地址 存储器 12H 34H 汇编指令 数据段 1234H AX MOV MOV MOV AX, [BX+SI+DISP] AX, DISP[BX][SI] AX, DISP[BX+SI] 设 :DS=2000H, BX=1000H SI=2000H, DISP=200H 则 : 有效地址 =1000H+2000H+200H =3200H 物理地址 =20000H+3200H =23200H 25

要点说明 (1) 默认的段寄存器 ( 即未使用 段跨越前缀 ) 寄存器 BX 对应的段寄存器为 DS 寄存器 BP 对应的段寄存器为 SS IA-32 的扩展 允许使用任何两个 32 位通用寄存器的组合 ( 例外 : 变址寄存器不得使用 ESP) 位移量可以是 8 16 32 位带符号数 26

要点说明 (2) 适用于访问二维数组 数据存放方式 数组元素在内存中按行顺序存放 首先放第一行所有元素, 再放第二行所有元素, 以此类推 数据访问方式 位移量设为数组起始地址的偏移量 保持基址 ( 如 BX) 不变, 而变址 ( 如 SI) 改变, 可以访问同一行的所有元素 保持变址 ( 如 SI) 不变, 而基址 ( 如 BX) 改变, 可以访问同一列的所有元素 27

8. 比例变址寻址 (Scaled Indexed Addressing) 操作数的有效地址由基址寄存器 变址寄存器 比例因子和位移量按如下公式生成 有效地址 = EAX EBX ECX EDX ESP EBP ESI EDI 基址 + EAX EBX ECX EDX EBP ESI EDI 变址 1 2 4 8 比例因子 + 8 位 16 位 32 位 ( 带符号数 ) 位移量 28

通用公式 比例变址寻址是 IA-32 新增的寻址方式 提供了存储器操作数寻址方式的通用公式 寄存器间接寻址 有效地址 = 基址变址寻址 EAX EBX ECX EDX ESP EBP ESI EDI + EAX EBX ECX EDX EBP ESI EDI 基址 变址 比例 因子 1 2 4 8 + 8 位 16 位 32 位 ( 带符号数 ) 位移量 29

寻址方式示例 (1) MOV AL, ARRAY[EBX][ESI] 把数据段中一字节单元的内容传到 AL 该字节单元的有效地址为 EBX+ESI+ARRAY MOV CX, [EAX+2*EDX] 把数据段中一字单元的内容传到 CX 该字单元的有效地址为 EAX+2*EDX 30

寻址方式示例 (2) MOV EBX, [EBP+ECX*4+20H] 把堆栈段中一双字单元的内容传到 EBX 该双字单元的有效地址为 EBP+ECX*4+20H MOV EDX, ES:ARRAY[4*EBX] 把附加段中一双字单元的内容传到 EDX 该双字单元的有效地址为 4*EBX+ARRAY 31

要点说明 (1) 默认的段寄存器 ( 即未使用 段跨越前缀 ) 寄存器 ESP 和 EBP 对应的段寄存器为 SS 其它寄存器对应的段寄存器为 DS 位移量 对于 16 位寻址, 可以是 8 位或 16 位带符号数 对于 32 位寻址, 可以是 8 位或 32 位带符号数 32

要点说明 (2) 适用于访问具有不同元素长度的二维数组 数据访问方式 基址寄存器 : 数组行下标 一行所占字节数 变址寄存器 : 数组列下标 比例因子 : 数组元素的字节长度 位移量 : 数组起始地址的偏移量 33

主要内容 一 寻址方式概述 二 数据的寻址方式 三 转移地址的寻址方式 34

转移地址寻址方式 转移地址寻址方式, 指程序非顺序执行时如何寻找转移地址 直接转移 间接转移 段内转移 段内直接寻址 段内间接寻址 段间转移 段间直接寻址 段间间接寻址 35

相关术语 (1) 段内转移 ( 近转移 ) 转移地址与该转移指令在同一代码段 高地址 存储器 JMP 当前指令 转移地址只包含偏移地址部分 找到转移地址后, 将转移地址送入 IP (CS 内容不必改变 ) 低地址 XX 下一指令 代码段 36

相关术语 (2) 段间转移 ( 远转移 ) 转移地址与该转移指令位于不同的代码段 高地址 存储器 XX 下一指令 转移地址包含偏移地址和段基值两部分 找到转移地址后, 将段基值送入 CS, 将偏移地址送入 IP 低地址 JMP 代码段 2 当前指令代码段 1 37

相关术语 (3) 直接转移 转移地址直接放在指令中 根据转移地址是绝对地址还是相对地址, 分别称为绝对转移和相对转移 间接转移 转移地址在寄存器或存储器中, 未包含在指令之中 通过寄存器寻址或存储器寻址的方式获得转移地址 38

1. 段内直接寻址 ( 直接近转移 ) 指令的汇编形式 转移地址直接包含在转移指令中 转移地址通常采用符号地址形式, 也称近标号 转移地址左边加上类型说明 NEAR PTR 或 SHORT 指令的机器码形式 机器码中存放转移地址与当前 IP 值的差 ( 称为位移量 ) 位移量放在转移指令的操作码之后 39

示例 JMP NEAR PTR PROG1 JMP SHORT LAB PROG1:MOV CX, DX LAB: ADD AX, BX LAB-IP =2300AH-(23004H+2) =04H PROG1-IP =23006H-(21000H+3) =2003H 存储器 高地址 2300AH ADD LAB 23006H MOV PROG1 04H 23004H JMP 21002H 20H 21001H 03H 21000H JMP 低地址 40

2. 段内间接寻址 ( 间接近转移 ) 1 转移地址 ( 偏移地址部分 ) 在寄存器中, 采用寄存器寻址方式获得转移地址 示例 :JMP BX; BX 的内容为转移地址 2 转移地址 ( 偏移地址部分 ) 在数据存储单元中, 获得转移地址的方式包括 : a) 直接寻址 b) 寄存器间接寻址 c) 寄存器相对寻址 d) 基址变址寻址 e) 基址变址相对寻址 41

a) 直接寻址 特征 : 数据存储单元地址在指令中直接给出 存储器 高地址 数据段 80021H 30H 80020H 06H 示例 :JMP DS:[20H] 8000H DS 23006H XX 下一指令 21000H JMP 当前指令 低地址 代码段 3006H IP 2000H CS 42

b) 寄存器间接寻址 特征 数据存储单元的偏移地址在 BX BP SI DI 中 示例 JMP [BX]; 数据存储单元 (DS:BX) 的一个字为转移地址 JMP [BP]; 数据存储单元 (SS:BP) 的一个字为转移地址 JMP DS:[BP]; 数据存储单元 (DS:BP) 的一个字为转移地址 43

c) 寄存器相对寻址 特征 数据存储单元的偏移地址是寄存器 (BX BP SI DI) 的内容与位移量的和 示例 JMP [BX+20]; 数据存储单元 (DS:BX+20) 的一个字为转移地址 JMP [BP+20]; 数据存储单元 (SS:BP+20) 的一个字为转移地址 JMP DS:[BP+20]; 数据存储单元 (DS:BP+20) 的一个字为转移地址 44

d) 基址变址寻址 特征 数据存储单元的偏移地址是基址寄存器 (BX BP) 和变址寄存器 (SI DI) 的内容之和 示例 JMP [BX+SI]; 数据存储单元 (DS:BX+SI) 的一个字为转移地址 JMP [BP+SI]; 数据存储单元 (SS:BP+SI) 的一个字为转移地址 JMP DS:[BP+SI]; 数据存储单元 (DS:BP+SI) 的一个字为转移地址 45

e) 基址变址相对寻址 特征 数据存储单元的偏移地址是基址寄存器 (BX BP) 的内容 变址寄存器 (SI DI) 的内容及位移量的和 示例 JMP [BX+SI+20]; 数据存储单元 (DS:BX+SI+20) 的一个字为转移地址 JMP [BP+SI+20]; 数据存储单元 (SS:BP+SI+20) 的一个字为转移地址 JMP DS:[BP+SI+20]; 数据存储单元 (DS:BP+SI +20) 的一个字为转移地址 46

3. 段间直接寻址 ( 直接远转移 ) 指令的汇编形式 转移地址直接包含在转移指令中 转移地址通常采用符号地址形式, 也称远标号 转移地址左边加上类型说明 FAR PTR 指令的机器码形式 机器代码中的转移地址放在操作码之后, 包含偏移地址和段基值两个部分 转移地址在存储器中占两个字 : 低字单元存放偏移地址, 高字单元放段基值 47

示例 高地址 存储器 JMP FAR PTR PROG2 代码段 2 PROG2:MOV CX, DX 43006H MOV PROG2 下一指令 21004H 40H 21003H 00H 21002H 30H 21001H 06H 21000H JMP 当前指令 4000H 3006H 代码段 1 CS 低地址 IP 48

4. 段间间接寻址 ( 间接远转移 ) 指令的汇编形式 转移地址 ( 偏移地址部分 ) 在寄存器中, 采用寄存器寻址方式获得转移地址 转移地址通常采用符号地址形式, 也称远标号 转移地址左边加上类型说明 DWORD PTR 指令的机器码形式 转移地址保存在数据存储单元中 转移地址包含偏移地址和段基值两个部分 转移地址在存储器中占两个字 : 低字单元存放偏移地址, 高字单元放段基值 49

指令格式和寻址方式 指令格式示例 JMP DWORD PTR TAB JMP DWORD PTR DS:[20] JMP DWORD PTR [BX] JMP DWORD PTR [BX+TAB] JMP DWORD PTR [BX+20] JMP DWORD PTR [BX+SI] JMP DWORD PTR [BX+SI+TAB] JMP DWORD PTR [BX+SI+20] 寻址方式直接寻址直接寻址寄存器间接寻址寄存器相对寻址寄存器相对寻址基址变址寻址基址变址相对寻址基址变址相对寻址 50

示例 高地址 81023H 81022H 81021H 81020H 存储器 40H 00H 30H 06H 43006H MOV 下一指令 21000H JMP 当前指令 低地址 数据段 代码段 2 代码段 1 JMP DWORD PTR [BX] 3006H 4000H IP CS 1020H 8000H BX DS 51

小结 : 寻址方式的分类 数据寻址方式 1 立即寻址 2 寄存器寻址 3 直接寻址 4 寄存器间接寻址 5 寄存器相对寻址 6 基值变址寻址 7 相对基址变址寻址 8 比例变址寻址 转移地址寻址方式 1 段内直接转移 2 段内间接转移 3 段间直接转移 4 段间间接转移 52

作业 作业题 : 教材第 134 页第 1 2 题 53

下讲预告 下讲 主题 8086 指令系统 ( 一 ) 学习 资料 教材第 4 章 :4.2~4.4 54

谢谢! 55