欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    《微机原理与控制技术》辅导资料一.docx

    • 资源ID:13463861       资源大小:146.79KB        全文页数:37页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《微机原理与控制技术》辅导资料一.docx

    1、微机原理与控制技术辅导资料一微机原理与控制技术辅导资料九主 题: 第三章 8086微处理器的指令系统(第3节后半部分)学习时间: 2014年11月24 日- 11月30日内 容:我们这周主要学习逻辑运算指令,串操作指令,控制转移指令和处理器控制指令的相关知识。希望通过下面的内容能使同学们加深微机原理与控制技术相关 知识的理解。第三节 8086指令系统(续)三、逻辑运算及移位类指令这部分指令可分为三种类型,见下表。指寺格式就克tt志荷OFSFZFAF?FCFAJJD di fl1t耳Q或(字节焯)Ok 册 s0tt2ta净我停节帝XOR L G0It5tDKOT 4TEr 1. 301AEt0(

    2、干节/孚)sal 也tttXtt章木百釀(Tf;字)SAR dp c&unttt3tt(罕节呼)SHL 右 匚电阳iitttt住卷石碟(字节J宇)SHR dp cunt1tZt務环左移(早节J宇)KOL 4 “unit*V嵐由r憎环右够(宇节丁宇FOR 日,ccuftt4*N*t节迴柱为环左林爭节芋)RCL di covatrfeJCt苇迟儘韻环右移(宇节/宇)KCR dr met4*JE*t1.逻辑运算指令逻辑运算指令共有五条。(1) AND (logical AND ):逻辑 与”指令格式:AND d, s操作:(d)J (d) A (s)其中,符号入”表示逻辑 与”操作。源操作数s可以是

    3、8/16位通用寄存器、 存储器操作数或立即数,而目标操作数 d只允许是通用寄存器或存储器操作数。AND指令可将两个操作数的内容按位相 与”并将结果保存在目标操作数中。指令执行后,将使 CF = 0, OF = 0, AF位无定义,并影响SF, ZF和PF标 志位。AND指令常用于将操作数的某些位清 0 (也称为屏蔽某些位),而其余位维 持不变。需要清0的位和0相 与”需要维持不变的位和1相 与”【例3.40】 要求将AL寄存器中的D1位、D5位清0,其余位保持不变。AND AL, 0DDH ; 将D1位、D5位和0与”,其他位和1与” 指令执行前,AL = 7AH。0111 1010 ALA)

    4、 1111 1101 DDH0101 1000 AL指令执行:指令执行后,AL = 58H。(2) OR (logical OR ):逻辑 或”指令格式:OR d, s操作:(d)J (d) V (s)其中,符号 V”表示逻辑 或”操作。源操作数和目标操作数的约定同 AND指令。OR指令可将两个操作数的内容按位相 或”并将结果保存在目标操作数中。 对标志位的影响同AND指令。利用OR指令可将操作数的某些位置1,而其余位不变。需要置1的位和1 相或”需要维持不变的位和0相或”利用 或”运算,也可对两个操作数进行 组合(称为拼字)。【例 3.41 】OR AL, 80H上述指令可以使AL寄存器中的

    5、最高位置1,其余位不变。指令执行前,AL = 3AH。指令执行:Oil 1010 ALV) 1000 LIOCO 30H1011 1010 AL-指令执行后,AL = BAH。(3) XOR (logical exclusive OR ):逻辑 异或”指令格式:XOR d, s操作:(d)J (d) 士(s)其中,符号”表示逻辑”异或”操作。源操作数和目标操作数的约定同 AND 指令。XOR指令可将两个操作数按位相 异或”并将结果保存在目标操作数中。 对标志位的影响同AND指令。利用XOR指令,可将操作数的某些位求反,某些位不变。维持不变的位与0相异或”需要求反的位与1相异或”例 3.42 】

    6、XOR BL, 0FH该指令可使BL寄存器的高4位维持不变,而将低4位求反。指令执行前,BL = 55H。指令执行:0101 0101 BL 金)皿叩里0FH0101 1010 0L指令执行后,BL = 5AH。例 3.43 】XOR AL, AL指令执行前,AL = 78H。指令执行:指令执行后,AL = 00H, CF = 0, ZF = 1。可见,XOR指令可用于将操作数清0,并使CF = 0。(4) NOT (logical NOT ):逻辑非”指令格式:NOT d操作:(d)-()其中,操作数d上面的“ ”表示求反运算,有关操作数的约定同AND指令NOT指令可将操作数的内容按位求反,

    7、并将结果保存在源操作数中,其执行结果不影响任何标志位。例 3.44 】NOT AL指令执行前,AL=33H。指令执行后,AL = CCH(5) TEST (test bits ):测试指令格式:TEST d, s操作:(d) A (s)TEST指令完成的操作、操作数的约定,以及对标志位的影响同AND指令, 只是TEST指令不回送结果到目标操作数。使用TEST指令,通常是在不希望改变原有操作数的情况下, 检测某一位或 某几位的状态。所以常被用于条件转移指令之前,根据测试的结果令程序发生跳 转。【例3.45】检测DL中的最高位是否为1,若为1则转移到标号L0P1去执行, 否则顺序执行,可用下列程序

    8、实现:TEST DL, 80HJNZ LOP1LOP1: MOV AL, BL2.移位与循环移位指令移位与循环移位指令共有八条,其功能如下图所示指令中的操作数d可以是8/16位的通用寄存器和任何寻址方式的存储器操 作数,而不允许使用立即数和段寄存器。移位次数由 count决定。count可取1或CL寄存器操作数,count为1时每执行一条指令,可将操作数的内容移一位, 若需要移位的次数大于1时,则可在移位指令前面,将移位次数置于 CL中,而 在移位指令中将count写为CL,当移位结束后,CL = 0。(1)移位指令移位指令共有四条。1SHL (shift left):逻辑左移指令格式:SHL

    9、 d, count操作:SHL指令可将操作数的内容向左移位,移位的次数由 count给定,每左移一位,操作数最高位的状态移入 CF标志位,低位补0。【例3.46】MOV CL, 4SHL AL, CLSHL指令执行后,可使AL中的内容左移4位,即AL中的低4位的状态移 入高4位,并将低4位清0。2SHR (shift right):逻辑右移指令格式:SHR d, count操作:SHR指令的操作和SHL指令相反,可将操作数的内容向右移位,每 右移一位,操作数最末位移入 CF标志,高位补0。3SAL (shift arithmetic left ):算术左移指令格式:SAL d, count操作

    10、:与SHL指令完全相同。4SAR (shift arithmetic right ):算术右移指令格式:SAR d, count操作:将操作数的内容向右移位,每右移一位,操作数最末位移入 CF标志位,最高位移入次高位的同时其值不变,这样移位后最高位和次高位的值相同, 符号位始终保持不变。由上述讨论可知,移位指令分为算术移位和逻辑移位。算术移位只对带符号 数进行移位,在移位过程中必须保持符号位不变。而逻辑移位是对无符号数移位, 移位时,总是用0来填补已空出的数位。每左移一位,相当于将原数据乘以 2,每右移一位,相当于将原数据除以2。根据移位操作的结果置标志寄存器中的状 态标志(AF位除外)。若移

    11、位的次数是1,移位的结果又使最高位(符号位)发 生变化,则将溢出标志 OF置1,若移多位时,OF标志无效。这样,对于有符 号数而言,可由此判断移位后的符号位和移位前的符号位是否相同。(2)循环移位指令循环移位指令共有四条。1ROL ( rotate left):循环左移指令格式:ROL d, count操作:每左移一位,操作数最高位的状态移出,该状态除送入标志位 CF外,还循环传递到由于左移一位而空出的操作数最末位。2ROR ( rotate right):循环右移指令格式:ROR d, count操作:ROR指令的操作正好和ROL指令相反,每右移一位,将操作数最末 位的状态移出,并传递到CF

    12、标志和操作数的最高位。3RCL ( rotate left through carry ):带进位循环左移指令格式:RCL d, count操作:每左移一位,将操作数最高位的状态移入 CF标志位,而CF标志原 先的状态移入操作数最末位。4RCR ( rotate right through carry ):带进位循环右移指令格式:RCR d, count操作:RCR指令完成的操作和RCL指令正好相反。每右移一位,将操作数 最末位的状态移入CF标志,而CF标志原先的状态移入操作数最高位。由上述讨论可知,循环移位指令也有两类。ROL和ROR指令在执行时,没 有把CF套在循环中,常称为小循环移位。而

    13、RCL和RCR指令在执行时,连同 CF 一起进行循环移位,称为大循环移位。以上四条指令仅影响标志位 CF和OF。 对OF的影响是,ROL和RCL指令在执行一次左移后,如果操作数的最高位与 CF (原先的符号位)不等,说明新的符号位与原来的符号位不同了,则使 OF=1,表明左移循环操作造成了溢出。同样, ROR和RCR指令在执行一次右移后,如果操作数的最高位和次高位不等,也表明移位后新的数据符号与原来的符 号不同了,此时也会使 OF = 1,产生溢出。【例3.47】 若某字数据X已存放于寄存器AX中,现要求将该数乘以10。在80486指令系统中有乘法指令,但从指令手册中可知,执行乘法指令所 花的

    14、时间为1011个时钟周期。而用移位指令实现乘2操作所需要的时间为1 3个时钟周期,从而可提高计算速度 310倍。我们知道,X X10 = X & + X $。某数乘2即左移一位,某数乘8即左移三位。所以,X X10的程序如下:SAL AX, 1 ; X X2MOV BX, AX ; X X2的乘积存入BXSAL AX, 1 ; X X4SAL AX, 1 ; X X8ADD AX, BX ; X X8 + XX2 = XXO执行上述程序段所需要的时间为五个时钟周期,若改用乘法指令实现乘 10操作,所需时间为11个时钟周期。四、串操作类指令80486指令系统中提供了一组强有力的串操作指令。串操作

    15、指令可对一系列 含有字母、数字的字节(也称字符串)进行操作和处理。例如传送、比较、查找、 插入、删除等。串操作指令是指令系统中惟一可在存储器内的源操作数与目标操作数之间 进行操作的指令,所有串操作指令均可以处理字或字节。基本字符串(数据块) 指令及可使用的重复前缀见下表。伏态坏克乜OFSFZFAFPFCF宇节用宇串嘩谗*44-*字节序字串:丹CMP5 dP tttt1tCM?哉二血注7tt11t字节母学皐專东5CA5 dtt11tECASBCASWttt11tLODS f-4V*LODSB/LOPSW*电*马乍节紬吟书STOS AsSTO*STO 汎*a*为缩短指令长度,串操作指令均采用隐含寻

    16、址方式,源串一般存放在当前数据段中,即由DS段寄存器提供段基址,其偏移地址必须由源变址寄存器 SI提供。目标串必须存放在附加段中,即由 ES段寄存器提供段基址,其偏移地址必 须由目标变址寄存器DI提供。如果要在同一段内进行串操作,必须使DS和ES 指向同一段。字符串长度必须存放在 CX寄存器中。所以,在串指令执行之前, 必须对SI, DI和CX预置初值,即将源串和目标串的首元素或末元素的偏移地址 分别置入SI和DI中,将字符串长度置入 CX中。这样,在CPU每处理完一个 字符串元素时,就自动修改SI和DI寄存器的内容,使之指向下一个元素。为加快串操作的执行速度,可在串操作指令前加上重复前缀,共

    17、有五种重复 前缀。带有重复前缀的串操作指令,每处理完一个字符串元素后自动修改 CX的 内容(按字节/字处理,减1或减2 ),以完成计数功能。当CX老时,继续串操 作,直到CX = 0时才结束操作。串操作指令对SI和DI寄存器的修改与两个因素有关。一是和被处理的字符 串是字节串还是字串有关,二是和当前的方向标志 DF的状态有关。当DF = 0时,表示串操作由低地址向高地址进行,SI和DI内容应递增,其初始值应该是 源串和目标串的首地址。当 DF = 1时,则情况正好相反。1.字符串操作指令80486指令系统中共有五种基本的串操作指令,下面分别予以介绍。(1)MOVS (move data fro

    18、m string to string ):串传送指令格式:有三种形式MOVS d, sMOVSB ;字节串传送MOVSW ;字串传送操作:(DI)(SI)2若为字节操作:SI J SI , DI J DI ,当方向标志DF = 0时,用 牛”; 当方向标志DF = 1时,用”。3若为字操作:SI J SI , DI J DI吃,当方向标志DF = 0时,用 牛”;当 方向标志DF = 1时,用”。MOVS指令可把一个字节或字从源串(由 SI寻址)传送到目标串(由 DI 寻址),并自动修改SI和DI的内容,使之指向下一个字符串元素。 MOVSB/MOVSW 是MOVS的替代符,由于指令助记符中已

    19、明确是字节串还是 字串传送,因此没有操作数。通常,指令前要加上重复前缀 REP,此时,要传送的字符个数在CX中,每传送完一个元素,CPU自动修改CX的内容(按字 节/字处理,减1或减2),直到CX = 0为止,从而完成从存储器到存储器的字符 串成块传送。串传送指令的结果不影响标志位。例如:设变量ADDR1和ADDR2为字类型时,下面两条指令是等效的。MOVS ADDR1, ADDR2MOVSW上述第一条指令中的操作数仅指出了指令为字操作类型, 实际目标操作数与源操作数的逻辑地址由ES:DI和DS:SI指出。【例3.48】将源数据串的256个字节数据传送到目标串的单元中去。源数 据串的段首地址的

    20、偏移地址为 2000H,目标串首地址的偏移地址为 5000H,则 完成数据串传送的程序段如下:CLD ; DF = 0, 地址自动递增MOV CX, 256 ;设置计数器,初始值为数据串的长度MOV SI, 2000H ;源数据串首元素的偏移地址MOV DI, 5000H ;目标数据串首元素的偏移地址REP MOVSB ;重复串操作,直到 CX = 0为止(2)CMPS (compare stri ng opera nds ):串比较指令格式:有三种形式CMPS s, dCMPSBCMPSW字节操作:(SI) -(DI), SI SI , DI DI 字操作:(SI) - (DI), SI S

    21、I 2, DI DI 串比较指令将由SI作为指针的源串中的一个元素减去由 DI作为指针的目标 串中相对应的一个元素,不回送结果,只根据结果特征置标志位,并相应地修改 SI和DI的内容,使之指向下一个元素。指令的其他特性与 MOVS指令的规定相同。通常,在CMPS指令前加重复前缀REPE/REPZ,两者的定义完全相同, 只是书写的形式不一样而已。此时,可重复进行两数的比较。仅当 ZF二1(两数相等)且CX和(元素未比较结束)时,才可继续比较,一旦发现 ZF = 0 (两数不 相等或元素比较结束)时,则终止指令的执行。注意:串比较指令的源串操作数 (由SI寻址)是写在逗号左边的,而目标 串操作数(

    22、用DI寻址)写在右边。这是指令系统中惟一例外的指令句法结构, 编程时要特别注意。CMPSB和CMPSW同样作为CMPS指令的替代符,不带 操作数。(3)SCAS (scan byte or word string ):搜索指令格式:有三种形式SCAS dSCASB ;字节串搜索SCASW ;字串搜索字节操作:AL- (DI), DI JDI 1字操作:AX - (DI), DI JDI 2搜索指令用来从目标串中查找某个关键字, 要求将待查找的关键字预先置入AX (字)或AL (字节)中。指令执行时,将 AX或AL中的关键字减去由DI的 内容指向的目标串中的一个元素, 不传送结果,只根据结果置标

    23、志位,然后修改 DI的内容使之指向下一个元素。通常,在SCAS前加重复前缀 REPNE/REPNZ, 可重复进行在目标串中寻找关键字的操作, 一直进行到ZF = 1(查到了某关键字) 或CX = 0 (终未查找到)为止。同样,SCASB和SCASW为SCAS指令的替 代符,不带操作数。【例3.49】要求从段首元素的偏移地址为 0100H的一个字符串(字符个数 为256)中找出指定的字符(如 $)。可用REPNZ SCASB指令实现。程序如下:CLD ; DF = 0,地址自动递增MOV AL, $ ;设关键字(4)):读字符串指令LODS (load byte or word string格式

    24、:有三种形式LODS sLODSB ;读取字节串LODSW ;读取字串字节操作:AL(SI), SI SI 字操作: AX(SI), SI SI 读字符串指令把由SI指定的数据段中字节或字单元的内容送入 AL或AX 中,并根据方向标志DF及数据类型来修改SI的内容。指令执行之前,要取出的数据必须在存储器中预先定义(用 DB或DW),SI必须预置初始值。读字符串指令一般不加重复前缀,常用来和其他指令相结 合完成复杂的串操作功能。而 LODSB和LODSW同样为LODS的替代符,不 带操作数。读字符串指令的执行结果不影响标志位。(5)STOS ( store byte or word string

    25、 ):写字符串指令格式:有三种形式STOS dSTOSB ;写入字节串STOSW ;写入字串字节操作:(DI) AL, DI DI 字操作:(DI) AX, DI DI 写字符串指令将AL或AX中的内容存入由DI指定的附加段中的字节或字单 元中,并根据DF的值及数据类型来修改DI的内容。指令执行之前,必须把要存放的数据预先存入 AX或AL中,并对DI预置初 始值。写字符串指令的执行结果也不影响标志位。 STOSB和STOSW 同样为STOS的替代符,不带操作数。如加上前缀指令REP后,用STOSB和STOSW 可使一串内存单元填满相同的数。【例3.50】 将字符$送入附加段中偏移地址为0100

    26、H的连续五个单元中。程序如下:CLD ; DF = 0,地址自动递增MOV CX, 5 ;设置计数器MOV DI, 0100H ;目标串首元素的偏移地址MOV AL, $ 设置关键字REP STOSB ;连续将$写入相应存储单元中2.重复前缀在大多数应用中,必须重复执行基本串操作来处理一个数据阵列时, 需要在重复的指令前加上一个重复前缀。常用的重复前缀见表 3.5。(1)前缀 REP (repeat)REP导致重复基本操作一直到 CX寄存器的值变为零。每次执行指令时都 要测试CX是否为零。如果CX和,则将CX减1,重复基本操作。当CX = 0时, 重复串操作结束,执行下一条指令。在执行重复串指

    27、令前必须先将重复次数装入 CX中。宓 用型 龍MOV;,ChiPS, SCAS当用是串尾旦串相零世重坦帥且ZF二1当卞寒f不为苇可至爲.EPTEjlREFHZSCAS当不是串尾巨申不寻旺車昊口叱&曰匸(2)前缀 REPE/REPZ (repeat while equal/repeat while zero )REPE和REPZ的功能相同。它们与 CMPS, SCAS指令一起使用。带前缀的CMPS/ SCAS指令,只要CX和且ZF = 1,基本比较或扫描操作就能够一直 重复执行。CX用表示还没有到达串尾,ZF = 1表示所比较的兀素相等。(3)前缀 REPNE/REPNZ (repeat whi

    28、le not equal/repeat while not zero ) REPNE和REPNZ的工作方式类似于 REPE/REPZ,只不过重复条件变为CX旳且ZF = 0。这就是说,只要串元素不等且未到达串尾,那么就重复执行比 较或扫描。五、程序控制类指令一般情况下,CPU执行程序是按照指令的顺序逐条执行的,但实际上程序不可能总是顺序执行,而经常需要改变程序的执行流程,转移到所要求的目标地 址去执行,这就必须安排一条程序转移类指令。在 80486指令系统中,程序控 制类指令就是专用来控制程序流向的, 包括无条件转移、条件转移、循环控制及 中断控制四种类型。1.无条件转移指令无条件转移指令的功

    29、能是使程序无条件地转移到指令指定的地址去执行。 分为无条件转移、调用过程及从过程返回三种指令格式,见下表。拒寺名評9国盍且杠頁号CALL4L&T(1) JMP (unconditional jump ):无条件转移指令格式:JMP目标标号操作:JMP指令可以使程序无条件地转移到目标标号指定的地址去执行。目标单元可以在当前代码段内(段内转移),也可在其他代码段中(段间转移)根据目标地址的位置与寻址方式的不同,有五种基本指令格式。1段内直接短程转移格式:JMP SHORT 目标标号操作:IPIP + D8其中,SHORT为属性操作符,表明指令代码中的操作数是一个以字节二进 制补码形式表示的偏移量,它只能在128+ 127范围内取值。SHORT在指 令中可以省略。指令执行时,转移的目标地址由当前的 IP值(即跳转指令的下一条指令的首地址)与指令代码中8位偏移量之和决定。【例3.51】 在当前代码段中有一条无条件转移指令如下:JMP SHORT LOP1LOP1 : MOV AL, 55HII上述指令的执行过程及转


    注意事项

    本文(《微机原理与控制技术》辅导资料一.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开