




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 复习 寻址方式 立即数寻址方式寄存器寻址方式存储器寻址方式 直接寻址方式寄存器间接寻址方式变址寻址方式基址变址寻址方式 2 1 下列指令中SRC和DST的寻址方式 MOVSI C MOV BX 3 AX XCHG BX SI AL ADDCX DS 10H MOVDL BP DI MOV BX AX IP 数据暂存器 PSW 执行部件控制电路 指令译码器 通用寄存器组 指令队列 总线接口控制电路 运算器 地址加法器 MOV操作码 00 20 CS 1000H IP 100HDS 3000H BX 1000HMOV BX 2000H 0103H 4 32位名称 EAXEBXECXEDXESPEBPEDIESI 8位名称 16位名称 EIPEFLAGS 名称累加器基址变址计数数据堆栈指针基址指针目的变址源变址 指令指针标志 代码数据附加堆栈 32位 16位 注意 286以下绿色区域不可用 FS GS无专用名称 5 1 汇编程序采用分段结构 每一段有若干语句组成 2 语句分类 a 指令性语句 即符号指令 通知CPU进行某种操作的命令 由硬件完成其功能 符号指令的书写格式 标号 符号指令 注释 b 指示性语句 即伪指令 提供编译信息 链接信息 其功能由相应的软件完成 伪指令的书写格式 变量名 伪指令 注释 注 版本不同 伪指令的种类也略有不同 汇编程序的语句类型 6 变量是内存中数据区的名字 故这类伪指令又可叫变量定义伪指令 格式为 变量名伪指令助记符操作数 注释变量名用符号地址表示 后面不能跟冒号 它可有可无 伪指令助记符有如下几种 DB用来定义字节DW用来定义字DD用来定义双字操作数可以是常数或表达式 相当于初值 功能 分配存贮单元并赋值 常用伪指令 数据定义 7 PDB10 4 10HP1DW100P2DD3 20 0FFFDH 例 8 3 28086 8088指令系统 可分成如下6类 数据传送指令算术运算指令逻辑运算和移位指令串操作指令程序控制指令处理器控制指令 9 学习指令的注意事项 指令的功能 该指令能够实现何种操作 通常指令助记符就是指令功能的英文单词或其缩写形式指令支持的寻址方式 该指令中的操作数可以采用何种寻址方式指令对标志的影响 该指令执行后是否对各个标志位有影响 以及如何影响其他方面 该指令其他需要特别注意的地方 如指令执行时的约定设置 必须预置的参数 隐含使用的寄存器等 10 3 2 1数据传送指令 可实现存储器寄存器I O接口数据传送指令又可分为如下四种 通用传送 MOVPUSH POPXCHG目标地址传送LEA标志传送输入输出INOUT 11 1 MOVdst src dst src传送的是字节还是字取决于指令中涉及的寄存器是8位还是16位 1 通用传送指令 12 1 寄存器送 段 寄存器或主存 movax bx ax bx 字传送movah al ah al 字节传送movds ax ds ax 字传送mov bx al bx al 字节传送 MOVreg mem seg reg 13 2 立即数送寄存器或主存 moval 4 al 4 字节传送movsi 200H si 0200H 字传送movbyteptr si 0aH byteptr说明是字节操作movwordptr si 2 0bH wordptr说明是字操作 注意立即数是字节量还是字量明确指令是字节操作还是字操作 MOVreg mem imm 14 3 段寄存器送寄存器或主存 mov si dsmovax es ax esmovds ax ds ax es MOVreg mem seg 15 4 主存送 段 寄存器 moval bx movdx bp dx ss bp moves si es ds si MOVreg seg mem 16 MOV指令使用规则 1 立即数不允许作为目的操作数2 不允许mem mem3 不允许seg seg4 不允许seg 立即数5 CS IP不能作目的寄存器6 源操作数与目的操作数类型要一致 17 几个不能传送的解决办法 用AX作桥梁存储器 存储器 MOVAX MEM1MOVMEM2 AX段寄存器 段寄存器 MOVAX DSMOVES AX段寄存器 立即数 MOVAX DATAMOVDS AX 18 什么是堆栈 按 后进先出 LIFO 方式工作的存储区域 堆栈以字为单位进行压入弹出操作 为什么要设置堆栈 为什么要按 后进先出 方式工作 2 堆栈操作指令 20 堆栈和队列 堆栈 按照后进先出 LIFO 的原则组织的存储器空间 栈 队列 按照先进先出 FIFO 的原则组织的存储器空间 21 规定由SS指示堆栈段的段基址 堆栈指针SP始终指向堆栈的顶部 SP的初值规定了所用堆栈区的大小 堆栈的最高地址叫栈底 堆栈 22 STACK200H就是对堆栈的定义 即就是在内存中划分出200H字节作为堆栈区 其地址为SS 0000H SS 01FFH 那么堆栈指针SP的初值为0200H 如图3 11所示 程序中的堆栈操作语句有 PUSHAX SP 01FEH SS 01FE AL SS 01FF AH 堆栈变化如图3 12所示 POPAX AL SS 01FE AH SS 01FFH SP 0200H 堆栈变化如图3 13所示 23 24 PUSHsrc src为16位操作数例 PUSHAX 将AX内容压栈执行操作 SP SP 2 SP 1 高字节AH SP 2 低字节AL 压栈指令 25 设 AX 1020H 低地址 存储区 SS段 执行前 AX 1020 SP 存储区 SS段 进栈方向 执行后 20 10 AL AH PUSHAX指令执行示意图 SP 2 SP 高地址 低地址 高地址 SP 1 26 压栈指令的格式为 PUSHregPUSHmem regPUSHseg例如 PUSHAXPUSH BX PUSHDS 注意进栈方向是高地址向低地址发展 27 POPdst例 POPBX 将栈顶内容弹至BX执行操作 BL SP BH SP 1 SP SP 2 弹出指令 28 POPBX的执行示意图 29 堆栈指令使用时应注意 堆栈操作总是按字进行 不能从栈顶弹出一个字给CS 堆栈指针为SS SP SP永远指向栈顶 SP自动进行增减量 2 2 30 格式 XCHGreg mem reg功能 交换两操作数的内容 要求 两操作数中必须有一个在寄存器中 操作数不能为段寄存器和立即数 源和目地操作数类型要一致 举例 XCHGAX BXXCHGByteptr 2000H CL 3 交换指令XCHG 31 4 查表指令 XLAT AL BX AL XLAT表首址 AL BX AL 指令功能 把待查表格的一个字节内容送到AL累加器中 在执行该指令前 应首先在数据段中建立一个长度小于256个字节的表格 将表的首地址先送至BX寄存器中 然后将欲查找对象与其在表格中距表首地址的位移量送AL 32 2 地址传送指令用途 用于传送操作数的地址而不是获取存储器单元的内容 1 传送偏移地址格式 LEAreg mem 将指定内存单元的偏移地址送到指定寄存器要求 1 源操作数必须是一个存储器操作数 2 目的操作数必须是一个16位的通用寄存器 33 2 取段寄存器指令 LDSreg16 mem32 reg16 EA mem32 DS EA mem32 2LESreg16 mem32 reg16 EA mem32 ES EA mem32 2指令功能 将源操作数的有效地址所对应的4字节内存单元中的第一个字送入指令指定寄存器 而第二个字则送入段寄存器DS 或ES 即将一个32位的远地址指针的偏移地址写入到指定的通用寄存器中 而该指针的段基值送至段寄存器DS 或ES 34 例 LEABX SI 10H 设 SI 1000H则执行该指令后 BX 1010H 例 LEABX SI 则执行该指令后 BX 1000H 例 LEABX 10H 则执行该指令后 BX 10H 35 LEABX BUFFER 注意二条指令差别 MOVBX BUFFER 取存储单元中的内容 取存储单元的偏移地址 36 LEABX BUFFERMOVBX OFFSETBUFFEROFFSETBUFFER表示存储器单元BUFFER的偏移地址 两条等效指令 37 3 输入输出 I O 指令 8086通过I O指令与外设交换数据 呈现给程序员的外设是端口 Port 即I O地址8086用于寻址外设端口的地址线为16条 端口最多为216 65536 64K 个 端口号为0000H FFFFH每个端口用于传送一个字节的外设数据只限于用累加器AL或AX来传送信息 功能 累加器 I O端口 38 输入输出寻址方式 8086的端口有64K个 无需分段 设计有两种寻址方式直接寻址 只用于寻址00H FFH前256个端口 操作数i8表示端口号间接寻址 可用于寻址全部64K个端口 DX寄存器的值就是端口号对大于FFH的端口只能采用间接寻址方式 39 INacc PORT PORT端口号0 255HINacc DX DX表示的端口范围达64K 格式 OUTport accOUTDX acc 40 格式 INacc PORT PORT端口号0 255HINacc DX DX表示的端口范围达64K例 INAL 80H AL 80H端口 INAL DX AL DX 1 输入指令IN 41 例 输入字量 1 直接寻址 字节量输入inal 21hmovah alinal 20h2 直接寻址 字量输入inax 20h3 间接寻址 字量输入movdx 20hinax dx 功能相同字量数据传送实际上实现了连续的两个端口地址的字节量传送 42 例 OUT68H AX 69H 68H AX OUTDX AL DX AL 在使用间接寻址的IN OUT指令时 要事先用传送指令把I O端口号设置到DX寄存器 MOVDX 220HINAL DX 将220H端口内容读入AL 2 输出指令OUT格式 OUTport accOUTDX acc 43 标志传送指令 标志寄存器FLAG FR 中的每一个状态标志位代表CPU执行指令的状态 许多指令的执行结果会影响FR的某些状态标志位 同时有些指令的执行也受FR中某些位的控制 1 标志传送指令LAHF AH FLAGS的低8位SAHF FLAGS的低8位 AHLAHF功能 把标志寄存器的低8位读出后传送给AH寄存器 即把SF ZF AF PF CF标志位分别送至AH的第7 6 4 2 0位 AH的第5 3 1位是任意的 SAHF功能 把寄存器AH中第7 6 4 2 0位的内容分别写入标志寄存器的SF ZF AF PF和CF各标
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国际航运竞争下钦州港航运物流发展战略探寻
- 中信银行广州市天河区2025秋招数据分析师笔试题及答案
- 广发银行重庆市巴南区2025秋招笔试创新题型专练及答案
- 华夏银行天津市河西区2025秋招群面案例总结模板
- 光大银行海口市琼山区2025秋招无领导小组面试案例库
- 浦发银行扬州市仪征市2025秋招英文面试题库及高分回答
- 浦发银行昌吉回族自治州昌吉市2025秋招面试典型题目及参考答案
- 华夏银行厦门市思明区2025秋招笔试性格测试题专练及答案
- 广发银行大庆市萨尔图区2025秋招半结构化面试题库及参考答案
- 兴业银行大连市甘井子区2025秋招笔试热点题型专练及答案
- 新疆维吾尔自治区成立70周年心得体会二
- 公路养护技术管理与实施细则
- 2023-2025年中考物理试题分类汇编内能及内能和利用(有解析)
- GB/T 46023.2-2025汽车用智能变色玻璃第2部分:聚合物分散液晶调光玻璃
- 2025-2026学年北师大版数学小学三年级上册(全册)教案设计及教学计划
- 配阴婚协议书范本
- 仓库搬运工安全知识培训
- 2025年部编版新教材道德与法治二年级上册教学计划(含进度表)
- 基于杜邦分析法的公司盈利能力研究-以宁德时代新能源科技股份有限公司为例
- 铁路物流管理与实务理论知识考核试题及答案
- GB/T 45932-2025高压直流开关设备和控制设备标准的共用技术要求
评论
0/150
提交评论