最新微机原理教案71PPT课件

上传人:工**** 文档编号:569452254 上传时间:2024-07-29 格式:PPT 页数:52 大小:647KB
返回 下载 相关 举报
最新微机原理教案71PPT课件_第1页
第1页 / 共52页
最新微机原理教案71PPT课件_第2页
第2页 / 共52页
最新微机原理教案71PPT课件_第3页
第3页 / 共52页
最新微机原理教案71PPT课件_第4页
第4页 / 共52页
最新微机原理教案71PPT课件_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《最新微机原理教案71PPT课件》由会员分享,可在线阅读,更多相关《最新微机原理教案71PPT课件(52页珍藏版)》请在金锄头文库上搜索。

1、微机原理教案微机原理教案7-1指令系统概述指令系统概述按照汇编指令格式划分,指令有三种:双操作数指令双操作数指令:指令中指定两个操作数,其中一个是源操作数(SRC),另一个是目的操作数(DEST)。单操作数指令单操作数指令:指令只需一个操作数。它既是源操作数( SRC ),也是目的操作数( DEST )。无操作数指令无操作数指令:虽然指令本身未指明操作数在哪里,但是指令却隐含指明操作数的地方。通用数据传送指令MOV 指令 一些说明说明:立即数不能直接不能直接传给段寄存器;段寄存器之间也不能进行直接传送。(这2种情况通常要通过通用寄存器间接进行)DEST和SRC两个操作数不能同时为存储器操作数不

2、能同时为存储器操作数;两个存储单元之间不能用一条MOV指令直接完成数据传送。存储器操作数可用任何一种存储器寻址方式。DEST和SRC长度长度须相同,即同时为字或字节。通用数据传送指令MOV 指令 一些说明说明立即数立即数只能出现在源操作数位置,不能作DESTCS只能作源操作数,不能作目的操作数。传送实质上是复制复制,对源操作数无影响。16位数据的传送遵循地址“高对高,低对低高对高,低对低”的原则。这个原则不仅对MOV指令适用,对所有的传送皆适用。通用数据传送指令MOV 指令 例子立即数立即数r/m MOV CL, 05H MOV AX, 1234H MOV ADDR, 12H MOV ADDR

3、, 1234H通用数据传送指令MOV 指令 例子reg reg MOV DH, AL MOV DS, AXr m MOV DL, DA_BYTE MOV DL, SI MOV AX, DA_WORD通用数据传送指令MOV 指令 例子m m MOV DL, DA_BYTE1 MOV DA_BYTE2, DLm m(存储单元内容互换存储单元内容互换) MOV CL,DA_BYTE1 MOV DL,DA_BYTE2 MOV DA_BYTE1,DL MOV DA_BYTE2,CL通用数据传送指令通用数据传送指令MOV 指令 例子例子指令辩误:判断下列指令的正误正误并说明原因原因1.MOV AL,CX2

4、.MOV AL, CX3.MOV 3000H, BX4.MOV AL, 1200H5.MOV CS, BX6.MOV DS, 1200H7.MOV ES, DS 通用数据传送指令MOV 指令 练习练习 题目1:已知当前BX=1200H,CS=1800H,IP=0500H,DS=3000H,则执行指令MOV BX+2000H,12ABH 后,12ABH放在哪两个存储单元(物理地址)?答案:12ABH放在33200H和33201H存储单元中。其中12H放在33201H单元中,而0ABH放在33200单元中。通用数据传送指令MOV 指令 练习练习题目2:将DS段中2000H单元与3000H单元的内容

5、互换,请写出指令序列。解: MOV AL,2000HMOV BL, 3000HMOV 2000H, BLMOV 3000H, AL通用数据传送指令PUSH 和 POP指令 基本格式和功能基本格式和功能指令格式指令格式: PUSH SRC POP DEST执行的操作执行的操作: PUSH 压入。源操作数进栈至栈顶。“先减再压先减再压” SP SP -2 SS:(SP),(SP)+1) (SRC) POP 弹出。栈顶出栈到目的操作数。“先弹再加先弹再加” (DEST) SS:(SP),(SP)+1) SP SP +2 通用数据传送指令PUSH 和 POP指令 基本格式和功能与标志的关系:与标志的关

6、系: 与各标志位无关,不影响不影响标志位寻址方式寻址方式: PUSH mem / reg POP mem / reg 注意: 操作数一律为16位位操作数。允许使用段寄存器,但POP操作数不允许为CS。可以使用除立即数以外的任何数据寻址方式。通用数据传送指令PUSH 和 POP指令 关于堆栈堆栈是一段特殊组织的内存区域,其内容的存取主要由堆栈指针控制,规则是:“先进后出先进后出”或者“后进先出后进先出”。XX32H30012H30013H30011H30010H3000FH3000EH30000H3000HSS000FHSP6CH45H0AH0013HSP堆栈段通用数据传送指令PUSH 和 PO

7、P指令 关于堆栈例:将4456H压入堆栈。XX30012H30013H30011H30010H3000FH3000EH30000H3000HSS56H0013HSP堆栈段44H0012HSP0011HSP“先减再压先减再压”通用数据传送指令PUSH 和 POP指令 关于堆栈例:从堆栈弹出两个字节送AX。XX30012H30013H30011H30010H3000FH3000EH30000H3000HSS56H0011HSP堆栈段78H0010HSP000FHSP12H34H34HAX12HAHAL“先弹再加先弹再加”通用数据传送指令PUSH 和 POP指令 用途堆栈常有两个用途:暂存暂存和传送

8、传送。暂存:暂存: PUSH AX PUSH BX POP BX POP AX传送:传送: PUSH AX PUSH BX POP AX POP BXXX5A06HAX1200HBXsp通用数据传送指令PUSH 和 POP指令 练习题目:已知SS=2000H,AX=1600H,SP=0202H,CX=3456H,当执行以下两条指令后: PUSH AX PUSH CX问:这时SS,AX,CX,SP的内容?存储器中20200H单元的内容为多少?答案:答案:SS=2000H,AX=1600H,CX=3456H ,SP=01FEH;(20200H)=00H01FEH01FFH0200H0201H020

9、2HXX16H00H34H56H通用数据传送指令XCHG指令指令 基本格式和功能指令格式指令格式: XCHG DEST, SRC执行的操作执行的操作:源操作数与目的操作数内容互换 (DEST) (SRC)与标志的关系与标志的关系: 与各标志位互不影响通用数据传送指令XCHG指令指令 基本格式和功能寻址方式寻址方式: XCHG mem/reg, mem/reg注意:注意:两操作数均不允许为立即数和段寄存器,不能同为存储器操作数;可以是字或字节交换。通用寄存器AX BX CX DXBP SP SI DI 存储器 图3 XCHG指令的数据交换通路通用数据传送指令XCHG指令指令 例子例:两个存储单元

10、之间进行数据交换。(应用三条指令实现) MOVAL,DABYTE1XCHGAL,DABYTE2XCHGAL,DABYTE1通用数据传送指令XLAT指令指令 基本格式和功能指令格式指令格式: XLAT 或 XLAT AL, BX执行的操作执行的操作: 其功能是从转换表中找出一个字节的内容,用其取代AL寄存器的内容。转换表由用户设计,最长为256个字节,换码时,应将代码表首地址保存在BX中, AL中保存待查字节序号(即代码表中字符序号),换码后,A L取得对应的码值。通用数据传送指令通用数据传送指令XLAT指令指令 例子例:假设用户设计转换表TABLE如下图所示,如需要查找表中第8个单元的内容,则

11、可以使用指令序列:MOVAX,SEGTABLEMOVDS,AXMOVBX,OFFSETTABLEMOVAL,07HXLATTABLE+1+2+3+4+5+6+7+87EH30H6DH79H33H5BH1FH70H7FH执行后执行后AL=70H通用数据传送指令通用数据传送指令课堂练习课堂练习1、请将存储器中DS段内三个存储单元的内容轮换。(设3个存储单元的偏移地址分别是1020H,1040H,1060H)2、将CX与DX的内容互换,可以有多少种方法?通用数据传送指令通用数据传送指令参考答案参考答案1、MOV AL, 1020HXCHG AL, 1040HXCHG AL,1060HMOV 1020

12、H, AL2、至少有三种:用MOV指令:用堆栈指令:用XCHG指令:MOV AX, CXMOV CX, DXMOV DX, AXPUSH CXPUSH DXPOP CXPOP DXXCHG CX, DX目标地址传送指令共3条LEA 取有效地址LDS 从双字中取偏移地址和数据段的段地址LES 从双字中取偏移地址和附加段的段地址目标地址传送指令LEA指令指令 基本格式和功能指令格式:指令格式: LEA DEST, SRC执行的操作执行的操作:指令功能:源操作数的有效地址EA送给目的操作数。DESTSRC的有效地址EA与标志的关系:与标志的关系:指令对标志无影响。目标地址传送指令LEA指令指令 基本

13、格式和功能寻址方式寻址方式: LEA reg, mem说明:说明:SRC必须是存储器操作数。DEST一定是一个16位通用寄存器,而不能是8位的寄存器或段寄存器。编程时,程序员不必了解数据或指令的有效地址,但有时这些地址会在程序其它部分用到, 这时可以使用LEA 指令。目标地址传送指令LEA指令指令 例子例:如BX=00CDH,SI=00A6H,存储单元的内容为78ABH,则指令MOVAX,BXSI执行后,AX78ABH;而 LEAAX,BXSI执行后,AX00CDH00A6H=0173H。目标地址传送指令LDS和和LES指令指令基本格式和功能指令格式:指令格式: LDS DEST, SRC L

14、ES DEST, SRC执行的操作执行的操作:功能:将SRC中的双字双字内容依次送入到DEST及DS(LDS指令)或ES(LES指令)中。 指令中SRC为一双字指针,高位字送指定的段段寄存器,低位字送指定的寄存器。目标地址传送指令LDS和和LES指令指令基本格式和功能与标志的关系:与标志的关系:指令对标志无影响。寻址方式:寻址方式: LDS/ LES reg, mem说明:说明:SRC处保存的一般是某个逻辑地址(SEG:OFFSET),事先由用户准备好。DEST必须是任一通用寄存器通用寄存器(16位);SRC一定是存储器操作数。本指令用于同时建立段地址和段内偏移地址。目标地址传送指令LDS和和

15、LES指令指令例子例:设当前DS2000H,DI2400H,存储单元2340AH处的内容如下图所示。则指令LDSSI,DI100AH 执行后,DS与SI的值分别为多少?80H01H30H22H2340AH答案:答案:DSDS2230H2230H,SISI0180H0180H标志位传送指令共有4条:LAHF 标志送AH指令SAHF AH送标志指令PUSHF 标志进栈指令POPF 标志出栈指令这些指令用于保存和恢复PSW标志位传送指令LAHF 与与 SAHF指令指令基本格式和功能指令格式:指令格式: LAHF SAHF功能:功能:LAHF:AH FlagsLSAHF:FlagsL AH标志位传送指

16、令LAHF 与与 SAHF指令指令基本格式和功能说明:LAHF指令对F本身无影响;SAHF指令对F高8位无影响,对F低8位的影响要看AH的内容。复习:F标志寄存器各位位置OF DF IF TF SF ZFAFPFCF15087标志位传送指令LAHF 与与 SAHF指令指令例子例:欲将F中的进位标志和奇偶标志都设置为1,请写出指令序列。答案: MOVAH,05H SAHF标志位传送指令PUSHF 与与 POPF指令指令基本格式和功能指令格式:指令格式:PUSHF POPF功能功能: PUSHF:stack Flags (F进栈) POPF :Flags stack (F出栈)标志位传送指令PUS

17、HF 与与 POPF指令指令基本格式和功能说明:PUSHF指令对F本身无影响。POPF指令对F的影响由栈顶内容决定。Flags中各标志位的值只有少数几个能通过别的指令去设置,其余的只能通过上述4条指令去设置。标志位传送指令PUSHF 与与 POPF指令指令例子例1:欲将F的内容传送到AX中。请写出指令序列。 答案:PUSHF POP AX标志位传送指令PUSHF 与与 POPF指令指令例子例2:欲设置F寄存器的内容为1234H。请写出指令序列。 答案: PUSH 1234H POPF 正确答案: MOV AX,1234H PUSH AX POPF 指令有误I/O数据传送指令IN 和和 OUT指

18、令指令 基本格式和功能指令格式:长格式(直接寻址): IN AL,端口地址端口地址 IN AX, 端口地址端口地址 OUT 端口地址端口地址,AL OUT 端口地址端口地址,AX注意:长格式中直接采用端口地址,但地址必须是8位的,也就是00FFH号端口才可以使用长格式。I/O数据传送指令IN 和和 OUT指令指令 例子合法的I/O指令: IN AL,70H IN AX,70H OUT 71H,AL OUT 71H,AXI/O数据传送指令IN 和和 OUT指令指令 基本格式和功能短格式(间接寻址) IN AL, DX IN AX, DX OUT DX, AL OUT DX, AX短格式中的端口地

19、址保存在DX中,由于DX是十六位寄存器,所以这种寻址方式可对0 65535个端口进行寻址。I/O数据传送指令IN 和和 OUT指令指令 基本格式和功能执行的操作执行的操作: 16位端口 IN : (AX) (port) OUT : (port) (AX) 8位端口 IN : (AL) (port) OUT : (port) (AL)I/O数据传送指令IN 和和 OUT指令指令 说明要注意区分I/O端口的数据数据与地址地址的宽度(位数)。所谓16位端口位端口指的是数据宽度是16位的端口,8位端口位端口指其数据宽度是8位,它们的地址可以是8位或16位的。因此I/O指令可能有如下几种情况:(以IN指令为例)8位数据8位地址: IN AL, 61H8位数据16位地址: IN AL, DX16位数据8位地址: IN AX, 61H16位数据16位地址: IN AX, DX I/O数据传送指令IN 和和 OUT指令指令 例子例:例:编写指令:将2024H端口中一个字的内容存入堆栈。答案:答案: MOV DX, 2024H IN AX, DX PUSH AX

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号