




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主要内容第四章8086 8088的指令系统 第四章8086 8088CPU指令系统 主要内容 指令的操作数 操作码 寻址方式指令的功能 格式 用法等 8086 8088CPU寻址方式第四章8086 8088的指令系统 一 寻址方式指令的一般格式 计算机中的指令由操作码字段和操作数字段组成 操作码 指计算机所要执行的操作 或称为指出操作类型 是一种助记符 操作数 指在指令执行操作的过程中所需要的操作数 该字段除可以是操作数本身外 也可以是操作数地址或是地址的一部分 还可以是指向操作数地址的指针或其它有关操作数的信息 寻址方式就是指令中用于说明操作数所在地址的方法 或者说是寻找操作数有效地址的方法 8086 8088CPU寻址方式第四章8086 8088的指令系统 立即寻址 寄存器寻址 存储器寻址 8086 8088CPU寻址方式第四章8086 8088的指令系统 1 立即寻址 ImmediateAddressing 所提供的操作数直接包含在指令中 它紧跟在操作码的后面 与操作码一起放在代码段区域中 例如 MOVAX 3000HMOV 2000H 1AH 立即寻址主要用来给寄存器或存储器赋初值 8086 8088CPU寻址方式第四章8086 8088的指令系统 2 寄存器寻址 RegisterAddressing 操作数包含在CPU的内部寄存器中 如寄存器AX BX CX DX等 例如 MOVDS AXMOVAL BH 3 存储器寻址 MemoryAddressing 访问存储单元需要其段基址和段内偏移量 即有效地址EA 根据有效地址的不同 存储器寻址方式分为直接寻址 寄存器间接寻址 8086 8088CPU寻址方式第四章8086 8088的指令系统 立即寻址 寄存器寻址 存储器寻址 8086 8088CPU寻址方式第四章8086 8088的指令系统 1 直接寻址 DirectAddressing 操作数地址的16位偏移量直接包含在指令中 它与操作码一起存放在代码段区域 操作数一般在数据段区域中 它的地址为数据段寄存器DS加上这16位地址偏移量 例如 MOVAX DS 2000H MOVAX 2000H 数据段 MOVAX VALUE VALUE是符号地址MOVBX ES 3000H 段超越 操作数在附加段即绝对地址 ES 16 3000H 8086 8088CPU寻址方式第四章8086 8088的指令系统 2 寄存器间接寻址 RegisterRelativeAddressing 操作数是在存储器中 但是 操作数地址的16位偏移量包含在以下四个寄存器SI DI BP BX之一中 可以分成两种情况 以SI DI BX间接寻址 则通常操作数在现行数据段区域中 即数据段寄存器 DS 16加上SI DI BX中的16位偏移量 为操作数的地址 例如 MOVAX SI 操作数地址是 DS 16 SI 以寄存器BP间接寻址 则操作数在堆栈段区域中 即堆栈段寄存器 SS 16与BP的内容相加作为操作数的地址 例如 MOVAX BP 操作数地址是 SS 16 BP 8086 8088CPU寻址方式第四章8086 8088的指令系统 立即寻址 寄存器寻址 存储器寻址 直接寻址 寄存器间接寻址 8086 8088CPU寻址方式第四章8086 8088的指令系统 1 相对基址寻址方式 RelativeBasedAddressing 相对基址寻址方式的操作数的有效地址是基址寄存器中内容和指令中给定的8位或16位偏移量disp之和 对寄存器BX 段寄存器用DS 物理地址 DS 16 BX disp如MOVAX COUNT BX 或MOVAX COUNT BX 其中COUNT为16位偏移量的符号地址 若DS 2000H BX 2000H COUNT 4000H 物理地址 20000H 2000H 4000H 26000H指令执行结果AX 1234H 8086 8088CPU寻址方式第四章8086 8088的指令系统 1 相对基址寻址方式 RelativeBasedAddressing 相对基址寻址方式的操作数的有效地址是基址寄存器中内容和指令中给定的8位或16位偏移量disp之和 对寄存器BP 段寄存器用SS 物理地址 SS 16 BP disp如MOVAX COUNT BP 或MOVAX COUNT BP 若SS 3000H BP 2000H COUNT 4000H 物理地址 30000H 2000H 4000H 36000H指令执行结果AX 5678H 8086 8088CPU寻址方式第四章8086 8088的指令系统 2 相对变址寻址方式 RelativeIndexAddressing 相对变址寻址的操作数的有效地址是变址寄存器中内容和指令中给定的8位或16位偏移量disp之和 这种寻址方式的段寄存器用DS 即物理地址 DS 16 SI disp物理地址 DS 16 DI disp如MOVAX COUNT SI 或MOVAX COUNT SI 若DS 2000H SI 2000H COUNT 4000H 物理地址 20000H 2000H 4000H 26000H指令执行结果AX 1234H 8086 8088CPU寻址方式第四章8086 8088的指令系统 3 基址变址寻址方式 BasedIndexedAddressing 基址变址寻址的操作数的有效地址是一个基址寄存器与一个变址寄存器的内容之和 若基址寄存器为BX 则段寄存器用DS 若基址寄存器为BP 则段寄存器用SS 物理地址 DS 16 BX SI 或DI 物理地址 SS 16 BP SI 或DI 如MOVAX BX DI 或MOVAX BX DI 若DS 2000H BX 2000H DI 3000H 物理地址 20000H 2000H 3000H 25000H 8086 8088CPU寻址方式第四章8086 8088的指令系统 4 相对基址变址寻址方式 RelativeBasedIndexedAddressing 相对基址变址寻址的操作数的有效地址是一个基址寄存器与一个变址寄存器的内容以及8位或16位偏移量disp之和 当其中的基址寄存器为BX时 则段寄存器为DS 而当基址寄存器为BP时 则段寄存器为SS 物理地址 DS 16 BX SI 或DI 8位 16位 偏移量disp物理地址 SS 16 BP SI 或DI 8位 16位 偏移量disp如MOVAX BX SI COUNT 若DS 2000H BX 3000H SI 1000H COUNT 4000H 物理地址 20000H 3000H 1000H 4000H 28000H 8086 8088CPU寻址方式第四章8086 8088的指令系统 立即寻址 寄存器寻址 存储器寻址 直接寻址 寄存器间接寻址 8086 8088CPU寻址方式第四章8086 8088的指令系统 I O端口寻址 8086采用独立编址的I O端口时 可有64K个字节端口或32K个字端口 用专门的输入指令IN和输出指令OUT访问 直接端口寻址方式适用于访问地址00 FFH的端口 例如 INAL 80H表示由地址为80H的端口读取一个字节数据到AL中 2 间接端口寻址方式适用于访问地址0000 FFFFH的全部端口 在输入 输出指令中 用DX存放16位的端口地址 例如 MOVDX 2000 INAL DX表示由DX确定的2000H端口读取一个字节数据到AL中 8086 8088CPU寻址方式第四章8086 8088的指令系统 I O端口寻址 从以上讨论可知 1 除了立即寻址和寄存器寻址外 其它寻址方式的操作数都来自存储区 除代码段以外的存储区 通过不同的方式寻找到操作数的地址 2 只有BX BP SI DI可在方括号 内出现 3 BX或BP可单独出现在 内 也可以与SI或DI或常数一起出现在 内 不允许BX和BP同时出现在一个 内 4 SI或DI可单独出现在 内 也可以与BX或BP或常数一起出现在 内 不允许SI或DI同时出现在一个 内 5 一个 内包括多个内容时 它们只能作加法运算 6 若 内包含BP 则隐含使用堆栈段寄存器SS提供段基址 否则均隐含使用段寄存器DS提供段基址 8086 8088CPU寻址方式第四章8086 8088的指令系统 习题 指出下列指令的源操作数的寻址方式和存储器操作数的PA 实际地址 假设当前CS 1000H DS 2000H SS 4000H BX 3000H BP 1000H SI 0500H DI 0A00H TAB 00F0HMOVAL 78H立即寻址MOVAL BX 寄存器间接寻址PA 2000H 10H 3000H 23000HMOVAX BP寄存器寻址MOVAL TAB SI 相对变址寻址PA 2000H 16 0500H 0F0H 205F0HMOVAL BP DI 变址基址寻址PA 4000H 16 1000H 0A00H 41A00HMOVAL TAB BX SI 相对基址变址PA 2000H 10H 3000H 0500H 00F0H 235F0H 8086 8088CPU寻址方式第四章8086 8088的指令系统 数据传送指令 运算指令 逻辑运算 算术运算 串操作指令 控制转移指令 处理器控制指令 数据传送指令第四章8086 8088的指令系统 8086指令中包含133条基本指令 从功能上可以分为以下6类 数据传送指令第四章8086 8088的指令系统 指令中出现的这些符号所代表的含义 Flags标志位regR通用寄存器组srcS源操作数destD目的操作数dataN立即数memM存储器ADR src 源操作数的地址 存储单元的内容OPRD操作数segSR段寄存器 CS DS ES SS port端口Bit位ByteB字节WordW字 通用数据传送指令 累加器专用指令 输入输出指令换码指令 目标地址传送指令 标志位传送指令 传送指令堆栈操作指令交换指令 有效地址传送指令DS传送指令ES传送指令 标志位送AH指令AH送FR指令FR入出栈指令 数据传送指令分类 4 3数据传送指令第四章8086 8088的指令系统 格式 MOVD S S D B W 其中R包括8个数据寄存器 SR为4个段寄存器 M为存储器 可以是存储器寻址中的任一种 2 立即数只能做源操作数 3 两操作数的位数必须相同 4 两操作数中最多只能有一个是存储器寻址方式 4 3数据传送指令第四章8086 8088的指令系统 交换指令 格式 XCHGD S DS B W D S R 不包括SR M 例 XCHGAL BLXCHGCX SP 使用交换指令时 必须注意 1 段寄存器不能作为交换指令的操作数 2 两个操作数中 必须有一个是寄存器操作数 而不允许两个都是存储器操作数 3 立即数不能作为交换指令的操作数 4 交换指令不影响标志位 4 3数据传送指令第四章8086 8088的指令系统 格式 INAL nINAX nINAL DXINAX DX 格式 OUTn ALOUTn AXOUTDX ALOUTDX AX 例 INAL 08H 输入输出指令 使用输入输出指令时 应注意 1 输入输出指令只能通过累加器AL或AX来传送数据 2 输入输出指令的字或字节传送操作的选用 取决于外设端口的宽度 3 直接寻址的输入输出指令 寻址外设端口的范围为0 255 而间接寻址 DX 的输入输出指令 寻址的范围为0 65535 4 输入输出指令不影响标志位 4 3数据传送指令第四章8086 8088的指令系统 堆栈操作指令PUSHPOP有效地址传送指令LEA换码指令XLATDS传送指令LDSES传送指令LES 传送指令MOVD S交换指令XCHGD S输入输出指令INAL AX PORTOUTPORT AL AX 4 3数据传送指令第四章8086 8088的指令系统 第四章8086 8088CPU指令系统 回顾 本节主要内容 4 3数据传送指令 堆栈 在内存中 开辟一段存储区 该区域是按照 先进后出 的原则来存放数据 SP SS 例 现有一个空的堆栈段 已知 SS 1000H SP 2000H 则存储器示意图如右 堆栈操作指令 设置堆栈目的 保存断点和保存当前寄存器的内容 4 3数据传送指令第四章8086 8088的指令系统 例 现有一个空堆栈段 已知 SS 1000H SP 2000H 则存储器示意图如右 两个关键点 堆栈必须以字为单位操作 即字操作 数据必须以规则字的方式存放 若 AX 1234H BX 60ABH 则执行PUSHAXPUSHBX POPBXPOPAX BX 60ABH AX 1234H 入栈 PUSH 操作SP 2 SP按 规则字 方式入栈 出栈 POP 操作按 规则字 方式出栈SP 2 SP SP 1FFCH 4 3数据传送指令第四章8086 8088的指令系统 DATA SEGSEGMENTXDW10YDW0DATA SEGENDSSTACK SEGSEGMENTSTACK STACK DW2000HDUP TOPLABELWORDSTACK SEGENDSCODE SEGSEGMENTASSUMECS CODE SEG DS DATA SEGMAINPROCFARSTART MOVAX STACK SEG 建立堆栈段指针MOVSS AXLEASP TOPPUSHDSSUBAX AXPUSHAXMOVAX DATA SEGMOVDS AX RETMAINENDPCODE SEGENDSENDSTART 数据段 堆栈段 代码段 通过一个汇编语言程序 看堆栈段的是怎么建立 SP SS 4 3数据传送指令第四章8086 8088的指令系统 有效地址传送指令 格式 LEAD S 将S的有效地址送到D S MD R 16位 例 LEABX 2000H 执行后 BX 2000H区别于MOVBX 2000H 例 LEABX TAB TAB 2000H 执行后 BX 2000H区别于MOVBX TAB 4 3数据传送指令第四章8086 8088的指令系统 格式 XLAT BX AL AL 换码指令 执行以下程序后 AL的内容是多少 LEABX TABLEMOVAX 03HADDBX AXMOVAL BX LEABX TABLEMOVAL 03HXLAT 执行完程序后 AL 9 XLAT指令的功能是 执行XLAT的过程为 BX AL 取 BX AL 所指向的单元内容传送至AL 把一种代码转换为另一种代码 4 3数据传送指令第四章8086 8088的指令系统 格式 XLAT BX AL AL 例 数字0 9对应的七段码为40H 79H 24H 30H 19H 12H 02H 78H 00H 18H 依次放在内存以TABLE开始的区域 当 05H端口 按键 输入一个数 0 9 时 要求CPU将其转换为七段码 再从 20H端口 显示 输出 LEABX TABLEINAL 05HXLATOUT20H AL 换码指令 TABLEDB40H 79H 24H 30H 19HDB12H 02H 78H 00H 18H 4 3数据传送指令第四章8086 8088的指令系统 LDS LES 格式 LDSD SLESD S S M D R 16位 不包括SR S D S 2 DS ES 例 LDSSI 2000H 前 DS 2000H 22000H 4000H 22002H 3000H 后 SI 4000H DS 3000H 4 3数据传送指令第四章8086 8088的指令系统 标志位指令 1 读取标志指令LAHF 格式 LAHF 将FR的低8位送到AH FR AH 3 标志位入出栈指令PUSHF POPF 4 3数据传送指令第四章8086 8088的指令系统 算术运算指令 逻辑运算指令 加法指令减法指令乘法指令除法指令BCD码修正指令 逻辑指令移位指令 运算指令 运算指令第四章8086 8088的指令系统 加法指令 1 不带进位位的加法指令 格式 ADDD S D S D B W D R M S R M n 二者不能同时为M 例 ADDAX BXADDAL 2000H ADD BX ALADDBL 6H 注意 指令的执行影响CF OF SF ZF PF AF 例 ADCAX BXADCAL 2000H ADC BX ALADCBL 6H 例 ADDAL BL前 AL 2EH BL 45H后 AL 73H 01110011B CF 0 AF 1 SF 0 ZF 0PF 0 OF 0 运算指令第四章8086 8088的指令系统 例 INCAXINCBYTEPTR BX 加法指令 运算指令第四章8086 8088的指令系统 减法指令 1 不带借位位的减法指令 格式 SUBD S D S D B W D R M S R M n 二者不能同时为M 注意 指令的执行影响CF OF SF ZF PF AF 例 SBBAX BXSBBAL 3456H SBB BX ALSBBBL 6H 例 DECAXDECBYTEPTR BX 例 SUBCX DXSUBDL 2000H SUB SI CHSUBAL 6H 运算指令第四章8086 8088的指令系统 减法指令之二 4 求补指令 格式 NEGD 0 D D B W D R M 注意 指令的执行影响OF SF ZF PF AF CF 注意 1 差不送到D 2 指令的执行影响CF OF SF ZF PF AF 3 D S的大小判断方法与D S是否是有无符号数有关 例 NEGWORDPTR BX 例 NEGAL前 AL 10001011B后 AL 01110101BCF AF 1 SF ZF PF OF 0 例 ADDAL 0JNSL1NEGALORAL 80HL1 运算指令第四章8086 8088的指令系统 运算指令第四章8086 8088的指令系统 例 4 8 在从Block开始的内存缓冲器中有100个带符号数的字 把其中最大值存放到MAX单元中 MOVCX 99LEABX BlockMOVAX BX ADDBX 2AGAIN CMPAX BX JGNEXTMOVAX BX NEXT ADDBX 2DECCXJNZAGAINMOVMAX AXHLT 乘法指令 例 MULBXIMULBYTEPTR 3456H MULCLIMULWORDPTR DI 运算指令第四章8086 8088的指令系统 除法指令 1 无符号数的除法指令 格式 DIVS B AX S 8位 AL AH W DXAX S 16位 AX DX 例 DIVBXIDIVBYTEPTR 3456H DIVCLIDIVWORDPTR DI 2 有符号数的除法指令 格式 IDIVS S R M 注意 标志位无意义 例 9876H 2345HMOVAX 9876HCWDMOVSI 2345HIDIVSI 运算指令第四章8086 8088的指令系统 十进制修正指令 1 BCD加法的修正指令 格式 AAADAA 2 BCD减法的修正指令 3 BCD乘法的修正指令 格式 AAM 格式 AASDAS 4 BCD除法的修正指令 格式 AAD 注意 1 这六条指令中只有AAD是在除法指令执行前执行 其余都是在运算指令后修正 2 只有AAD是对AX中的数据进行修正 其余都是对AL中的数据进行修正 影响P S Z 不影响A C O 影响P S Z 不影响A C O 影响C A 对O P S Z未定义 影响C A P S Z 对O未定义 影响C A 对O P S Z未定义 影响C A P S Z 对O未定义 运算指令第四章8086 8088的指令系统 1 逻辑非指令 格式 NOTD 2 逻辑与指令 3 逻辑或指令 格式 ORD S 格式 ANDD S D R M S R M n B W D R M B W 不影响标志位 影响S Z P CF OF 0 未对AF定义 利用AND可以强行使目标操作数的某些位为零 D R M S R M n B W 影响S Z P CF OF 0 未对AF定义 利用OR可以强行使目标操作数的某些位为1 逻辑运算指令 运算指令第四章8086 8088的指令系统 ANDAL 0FHANDCX 0FF00H ORAL 0FHORAL 30H 4 逻辑异或指令 格式 XORD S D R M S R M n B W 影响S Z P CF OF 0 未对AF定义 利用XOR可以强行使目标操作数的某些位为取反或两数是否相等 5 测试指令 格式 TESTD S D R M S R M n B W 影响S Z P CF OF 0 未对AF定义 利用TEST可以测试目标操作数的某些位的状态 逻辑运算指令 运算指令第四章8086 8088的指令系统 XORAL 0FHXORCL CL TESTAL 80HTESTAL 0F0H 移位指令 1 逻辑算术左移指令 格式 SHLD SSALD S 2 逻辑右移指令 3 算术右移指令 格式 SARD S 格式 SHRD S D R M S 1 CL B W D R M S 1 CL B W 0 CF CF D R M S 1 CL B W 运算指令第四章8086 8088的指令系统 1 循环左移指令 格式 ROLD S 2 循环右移指令 4 带进位位的循环右移指令 格式 RCRD S 格式 RORD S CF CF CF D R M S 1 CL B W 循环指令 3 带进位位的循环左移指令 格式 RCLD S CF 这类指令只影响CF和OF CF为最后一次送入的值 OF仅在循环一位时有效 循环前后符号位不同时OF 1 否则OF 0 运算指令第四章8086 8088的指令系统 MOVAL 0FHSALAL 1MOVBL ALMOVCL 2SALAL CLADDAL BLMOV DATA AL 取数到AL中 乘2 保存 乘4 乘10 8 2 存结果 说明下面程序的功能 功能 0FH 10 DATA 单元 运算指令第四章8086 8088的指令系统 程序控制转移指令 例 4 20 假设x值存放在数据段1000H单元 函数y的值存放在1001H单元 MOVAL 1000H CMPAL 0JGBIGJLLOWDONE MOV 1001H ALHLTLOW MOVAL 0FFHJMPDONEBIG MOVAL 1JMPDONE 程序控制转移指令第四章8086 8088的指令系统 例 4 21 在数据段内以Block为首地址的100个字节数 试统计其正数和负数的个数 并分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全知识考试试题及答案
- 高利润返租商铺合同模板(3篇)
- 艾灸知识考试试题及答案
- 高新技术企业担保合同集合
- 民航工程结算与飞行安全保障协议
- 智能家居产业人才派遣与智能家居产品研发合同
- 体育场馆餐饮厨师招聘合同范本
- 环保专业面试题目及答案
- 2025至2030中国碳碳复合材料行业市场深度研究与战略咨询分析报告
- 金融风险管理教学课件
- 2025年贵州省毕节市辅警招聘考试题题库(含参考答案)
- 2025劳动合同范本下载
- 2025-2026学年高二上学期数学第一次月考立体几何卷全解析【测试范围:沪教版2020必修第三册第十章】(上海专用)
- 小学法律知识竞赛试题(附答案)
- 2025年五年级上学期语文第一单元测试卷含答案
- Unit 3 Places we live in单元整体公开课一等奖创新教学设计表格式(5课时)
- 2025年4月自考02204经济管理试题及答案
- 统战工作培训课件
- 泡茶的步骤课件
- 人教版(2024)八年级上册数学全册教案
- 食堂整体装修方案(3篇)
评论
0/150
提交评论