版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 微型计算机指令系统指令-微机算术、逻辑和控制功能的实现基础重点:*1、目标地址传送 *寻址方式 2、标志传送 3、转移控制(转移指令、过程调用、中断)1RISC/CISC-两种指令体系计算机精简指令计算机 (RISCReduced Instruction Set Computer) PowerPC, Alpha,ARM 指令简单,复杂功能代码,效率高 特点:指令种类很少,组合使用复杂指令计算机 (CISCComplex Instruction Set Computer) 变长编码, 种类多,代码利用率低例: 80X86/Pentium 变长字节 1-16字节,向下兼容, 8086指令向
2、下兼容8080/8085指令,共92种基本指令执行程序指令序列2指令与指令系统指令(Instructions)指令集或指令系统 (Instruction Set) 机器码(指令) 汇编语言/助记符(Mnemonic Symbol)F8H=CLC指令 F5H=CMC F9H=STC05H 00H 10H ADD AX,1000H B9H 25H 00H MOV CX,0025H01H C8H ADD AX, CX指示CPU执行某种规定操作的命令某一CPU所能执行的全部指令的集合 定义了程序员能使硬件完成的基本操作(CPU基本性能)。指令 的表示3 程序设计编辑器(Editor) 高级语言程序(与
3、机器无关)编译器(Compiler) 汇编语言(与机器有关)汇编器(Assembler) 待装配的BIN指令代码链接器(Linker) 可执行BIN指令代码(指令序列) 指令(代码)的获取机器汇编(P366指令表) 人工汇编IDE(集成开发环境)命令行(CMD/脚本语言)动态调试器(DEBUG)4汇编语言指令与构成机器指令:指令的二进制代码形式。如:050020H MOV AX,2000H汇编指令:助记符形式的指令如:MOV BX,DX; ADD AX,2000H语法结构-动作对象指令=指令操作码+操作数指令操作码动作功能:做什么?MPU设计者定义指令操作数源/目标:针对什么操作?程序员决定指
4、令格式:指令中对操作码、操作数的编码方式58086/8088指令格式与编码8086指令的书写格式 教材P366机器码 操作码 操作数1, 操作数2(操作码:必备;操作数:0,1或2个,8位或16位)8086/8088采用变长编码格式,属于CISC操作码 指定操作类型(操作数类型、寄存器、操作数传送方向)典型操作助记符MOV,ADD,SUB,CMP,JMP,CALL,INTr/m=寄存器/存储器; Disp=偏移量 前缀:总线锁定lock/重复rep, 段超越Prefix14字节OP Code12字节 Mode r/m 1字节 disp 0,1,2,4字段1(低)字段2 字段3 字段4 字段5
5、(高) data 0,1,2,468086/8088指令操作数(Operands)操 源操作数: 值或存在何处 (Oprd1,Oprd2) 作 目标操作数:结果送往何处; (Oprd1) 数 或转移控制指令JMP/CALL/INT目标地址8086指令操作数的个数情况无操作数指令,例:空操作NOP,等待指令 WAIT 系统操作指令:STD,CLD,STC,CLC,CLI,STI (目标?)单操作数指令,例:加1指令 INC AX双操作数指令,例:减法指令 SUB AL,BL源操作数:AL,BL; 目的操作数:前者(AL)默认操作数: DIV DL 源:AX,目标:DL78086/8088指令操作
6、数(Operands)操作数:直接/间接 几种存放地点:立即数:操作数直接包含在指令当中(存放在代码段) 例:MOV AL,50H - “立即数操作数”寄存器操作数:操作数存放在CPU的寄存器中 例:INC AL - “寄存器操作数”内存操作数:操作数存放在内存单元中 例:MOV AL,2000H - “存储器操作数” I/O操作数:操作数来自I/O端口 例:IN AL,28H确定操作数(操作数地址)的方式寻址方式88086/8088操作数寻址方式分类 非存储器寻址 存储器寻址 立即数寻址 寄存器寻址 隐含(默认)寻址 I/O寻址 直接寻址 间接寻址 基址寻址 变址寻址 基址+变址寻址9指令寻
7、址方式(一)1. 立即寻址(Immediate Addressing) MOV AL,100; MOV CX,2000H;( MOV DS,200H )2.寄存器寻址(Register Addressing) MOV DS,AX; MOVCX,BX;MOVSI,DX3.直接寻址(Direct Addressing) MOV AX,2000H ; MOV AL,BUFFER(内存);4.寄存器间址 (Register Indirect Addressing)MOV AX,SI; MOV BL,DI; (寄存器间接寻址)MOV CH,BX; MOV DX,BP问 题物理地址=?有效地址EA=? 默
8、认段寄存器=??10指令寻址方式(一)注意:寄存器间接寻址可用的寄存器有4个 :SI;DI;BX;BP。选择SI;DI;BX作为间址寄存器时,默认的段基地址是DS选择BP作为间址寄存器时,默认的段基地址是SS。11寻址:物理地址获取存储器访问:单元/变量物理地址PA逻辑地址: 段基地址SA+偏移地址EA(Effective Addr)两部分 书面表示 SA:EA 1000:2000H, DS:2000H有效地址EA=偏移(Offset)地址(直接寻址/寄存器间址表示)物理地址PA=SA*16+EA存放代码、数据2000:0100 A1 00 80 MOV AX,8000H ;2000:0103
9、 05 34 12 ADD AX,1234H2000:0106 A3 00 80 MOV 8000H,AX2000:0109 BB 00 80 MOV BX, 8000H; 2000:010C 8B 07 MOV AX,BX ;2000:010E 2E ;段超越前缀2000:010F FE 06 00 20 INC BYTE PTR CS:2000H 12存储器数据访问8F00:200A FE 06 50 40 INC BYTE PTR4050H;B8F00:200E FF 06 50 40 INC WORD PTR4050H;W8F00:2000 A0 50 40 MOV AL,4050H8
10、F00:2003 86 2A 51 40 MOV AH,4051H8F00:2007 A1 50 40 MOV AX,4050H8F00:200A ? INC 4050H 8F00:2012 BB 50 40 MOV BX,4050H ; 8F00:2015 FE 07 INC BYTE PTRBX8F00:2017 FF 07 INC WORD PTRBX8F00:2019 80 07 01 ADD BYTE PTRBX,18F00:201C 83 07 01 ADD WORD PTRBX,18F00:201F 81 07 04 03 ADD WORD PTRBX,0304H字节B还是字W?
11、13段默认与段超越8F00:2000 8A 07 MOV AL,BX8F00:2002 8A 67 01 MOV AH,BX+18F00:2005 8B 07 MOV AX,BX8F00:2007 2E 8B 07 MOV AX,CS:BX8F00:200A 8B 46 00 MOV AX,BP8F00:200D 26 8B 46 00 MOV AX,ES:BP段基地址段寄存器内容 ; 默认段=C/D/E/SS P51 表2.3默认段寄存器 一般数据,直接寻址、间接寻址-DS 代码 始终CS(:IP) BP,SPSS 特殊指令 例(串操作) DI ES 段超越 非默认段寄存器,需说明(指令加段
12、超越前缀)14各种寻址方式(二)5. 变址寻址(Indexed Addressing):变址寄存器加上偏移量得到操作数的有效地址 源变值R:SI/目标变址R:DI EA=SI/DI+位移量 MOV AX,SI+6;MOV DL,TABLESI 常用于存取表格或一维数组中的元素 如P47: 某数据表的首址为TABLE,要读取表中第10个数据并存到AL寄存器:MOV SI, 09 MOV AL, SI+TABLE几种表示方法:MOV AL, TABLESI MOV AL, SI+TABLE MOV AL, SI+TABLE156. 基址寻址(Based Addressing):基址寄存器加上偏移量
13、得到操作数的有效地址 BX/BP +位移量 MOV AL,BX+100; MOV DX,TABLEBP注意:使用BX实现基址寻址时,段地址在DS中 使用BP实现基址寻址时,段地址在SS中各种寻址方式(二)167. 基址-变址寻址(Based Indexed Addressing):规定一个基址寄存器(BP和BX之一)和一个变址寄存器(SI和DI之一),同时给出一个8位或16位的偏移量,将三者的内容相加得到操作数的有效地址 EA=BX/BP+SI/DI+COUNT (偏移量) MOV AL,BXSICOUNT;MOV AL,BX+SI+COUNT MOV DX, COUNTBP+DI ;二维数组
14、注意:不允许将两个基址寄存器或两个变址寄存器结合在一起寻址。如:MOV AX, COUNTBXBP MOV AX,COUNTSIDI 各种寻址方式(二)17存储器操作数问题8086MPU存储器寻址 直接寻址 寄存器间(接寻)址、变址寻址、基址寻址、基址-变址寻址=存储器操作数 访问速度 :直接寻址寄存器间址 存储方式 高位结束(Big-Endian ) 数据类型 1/2/4字节 (BYTE/WORD/DOUBLE WORD) 80H,1234H, 20123456H 指针 NEAR/FAR/SHORT JMP 2000H CALL 2000H:4567H JMP NEAR PTRBX18特例:
15、隐含/默认操作数操作数并不直接出现在指令中,而是由操作码隐含地指定为某一默认固定项(P50表2.2)例: PUSH AX ;目操作数隐含为栈顶字单元 POP ES ;源操作数隐含为栈顶字单元 LAHF ;源操作数隐含为标志寄存器低字节 SAHF;源操作数隐含为寄存器AH DIV CL; 隐含源操作数AX, 目标操作数AX AX/CLAL(商),AH(余数) DIV CX; 隐含源操作数DX:AX, 目标DX, AX(DX.AX)/CX AX(商),DX(余数) 198086/8088指令系统(六大类)数据传送 通用/ 输入输出 / 目标地址传送/标志传送 算术运算 整型数据处理逻辑运算与位操作
16、 逻辑数据处理串操作 字符型数据处理转移控制 程序流控制处理(条件/无条件)MPU控制 系统控制管理20数据传送指令-通用传送1MOV BYTE/WORD传送;各寻址方式; MOV DST,SRC (LD) MOV AX,80A0H; MOV DS, AX MOV BX,SI100; MOV CS:2000H,SI MOV BP3000,AL MOV BYTE PTR BX200H, 200 ; MOV WORD PTR2000H,40H RR/M,I(直接数)R/M;R/MSR(段寄存器)禁止:MM;ISR;SRSR21通用传送指令-堆栈 (STACK)用途 临时保存数据(INT断点/CAL
17、L返回地址/数据)传递信息(函数/子程序)特点与规则操作 按字(2字节)进行 P55PUSH指令 从高地址低地址增长, POP相反操作规则 FILO (First-In-Last-Out)SP 为当前栈顶指针(EA)(末指针)SS段寄存器指向该段 栈底 (堆栈的最大地址)SS:MAXSP堆栈:内存特殊区域22数据传送指令-通用传送2堆栈传送:操作数类型必须为16位,若为寄存器必为16位寄存器PUSH SRC; 目标操作数隐含为栈顶单元, SP-2 (SP)(SP)-2;(SP)+1:(SP)(SRC) 例: PUSH AX; PUSH BX100 PUSH 2000H POP DST;源操作数
18、隐含为栈顶单元, SP+2(DST)(SP)+1:(SP);(SP)(SP)+2; 例: POP AX; POP DS; POP CS:2000H POP BX100; POP BPSI1000H SRC/DST R/M/SR (但DST不可为CS!)SP偶数! PUSH CX POP CS 23入栈操作示例设有SS=8000H,SP=2000H,AX=0543HSP=2000H 82000HStackPUSH AXSP=SP1 81FFFHSP=SP1 81FFEHSP1FFEH43HAL05HAH24出栈操作示例设有SS=8000H,SP=01FEHSP=SP+1 80200HPOP AX
19、SP=SP+1 801FFHSP=01FEH 801FEHSTACK11H22H出栈后:SP0200HAX1122HAHAL不变,仅SP+2堆栈内容不变?25通用传送指令-堆栈应用(一)使用过程/关键堆栈平衡 防止溢出 8086:堆栈段SS:SP用途:保护/传递数据 PUSH/POP配对使用/CALL-RET/INT-IRET)例:CALL (嵌套)-INT(嵌套) 应用程序段PUSH AX;PUSH BXPUSH CX;. ;可能改变AX,BX,CXPOPCX ;恢复AX,BX,CX;POP BXPOP AX.:RET26数据传送-通用传送指令(二)3XCHG dest,src ;(dest
20、) (src) RR/M;禁止MM 同时段寄存器的内容不能参加交换 例 XCHG AL,AH; XCHG X1SI,AX4XLAT src_table;可根据表中元素的序号查出相 应元素的内容(AL)(BX)+(AL)查表转换; 预先将表的首地址(偏移地址)传送到BX寄存器,元素的序号送AL.表中第一个元素的序号为0,然后是1,2,3,27可段超越 例 ES:XLAT,or XLAT ES:src_table运行前BX须赋值,例: LEA BX,src_table; MOV AX,SEG src_table; MOV DS,AX; MOV AL,N; XLAT;BX+NAL数据传送-通用传送指
21、令(二)28数据传送-I/O端口(Port)传送指令IN AL/AX, portNo; 8位立即数portNo:0255OUT portNo,AL/AX;INAL/AX,DX;端口地址为16位二进制数DX:064K (0FFFFH)OUT DX,AL/AX; 字IN/OUT L,H例 IN AL, 40H OUT 40H,AL MOV DX,3F8H IN AL, DX ;PC读COM1 接收 OUT DX, AL ; 发送29数据传送-地址对象传送指令LEA reg16, mem16 ;取有效地址,近地址指针(段内)reg16 源操作数必须是一个存储器,目标寄存器必须是一个16位通用寄存器,源操作数的有效地址即16位偏移地址传送到目标寄存器。 比较MOV/ LEA AX,BUFFER,=offset xxxx 例 LEA SI,BX300H当BX
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 九江职业大学《中国社会学史》2023-2024学年第一学期期末试卷
- 2024年度商品房买卖合同税收优惠条款范本3篇
- 林场住房出售合同模板
- 交定金写合同范例
- 高压柜购销合同范例
- 2024年智能制造设备采购合同2篇
- 赠与房屋购买合同模板
- 2024年农庄农产品质量安全追溯体系建设项目合同协议3篇
- 2024年度仪器租赁合同:具体描述仪器类型、租赁期限、租金支付等条款3篇
- 办公椅采购合同
- 全科医学的临床思维【-】课件
- 病媒生物防制培训课件
- 邀请函单页模板
- 2023年基建处工作计划(7篇)
- 三级安全教育试题公司级部门级班组级
- ZYHZYHC系列自控远红外电焊条烘干炉使用说明书
- 企业风险管理-战略与绩效整合(中文版)
- 监控工程施工结算单
- 幼儿园大班安全:《危险的洞洞》 课件
- 一次性使用止血套环产品技术要求北京中诺恒康生物科技
- 聆听李镇西老讲座汇报课件
评论
0/150
提交评论