微机原理与接口技术3-26课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《微机原理与接口技术3-26课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 26 课件
- 资源描述:
-
1、指令系1.数据传送指令2.算术运算指令3.逻辑运算和移位指令4.串操作指令5.转移指令6.处理器控制指令立即数立即数 格式格式:IN AL,DX ;AL (DX)IN AX,DX ;AX (DX+1,DX)OUT DX,AL ;(DX)AL OUT DX,AX ;(DX+1,DX)AX 在间接输入输出指令之前,需将端口号送入DX寄存器。MOV DX,XXXXH;例例 OUT85H,AL;85H端口AL内容MOVDX,0FF4H;端口地址DX=0FF4HOUTDX,AL;FF4H端口AL内容 MOVDX,300H;DX指向300H OUTDX,AX;300H端口 AL内容,301H端口AH内容l
2、读取标志指令:LAHF(5、3、0为任意值)标志寄存器低8位 AHl设置标志指令:SAHF 标志寄存器低8位 AH,影响影响PSWl把标志寄存器的内容压入堆栈:PUSHFl从堆栈弹出到标志寄存器:POPF,影响影响PSW15 11 10 9 8 7 6 5 4 3 2 1 0 AHD7 D6D4D2D0数据传送指令数据传送指令 LAHF 标志送到标志送到AH指令指令(Load AH from Flag)指令格式:指令格式:LAHF 指令功能指令功能:标志寄存器SF、ZF、AF、PF和和CF AH寄存器的位寄存器的位7、6、4、2和和0。注意注意:位5、3、1的内容未定义未定义,是任意值。执行这
3、条指令后,标志位本身并不受影响标志位本身并不受影响。这5个标志送进AH后,AH便相当于80808085的标志寄存器,从而能对80808085程序进行转换,使它们能运行在80868088系统上。15 11 10 9 8 7 6 5 4 3 2 1 0 AHD7D6D4D2D0数据传送指令数据传送指令 指令格式:指令格式:SAHF 指令功能:指令功能:AH内容内容 标志寄存器标志寄存器。注意:注意:位5、3、1的内容未定义,是任意值。执行这条指令后,高位标志并不受影响高位标志并不受影响。为80808085提供兼容性。15 11 10 9 8 7 6 5 4 3 2 1 0 AHD7D6D4D2D0
4、数据传送指令数据传送指令PUSHF标志入栈指令标志入栈指令(Push Flag onto Stack)指令格式:指令格式:PUSHF 指令功能:指令功能:将标志寄存器PSW中的内容 压入堆栈;并修改堆栈指针,使SPSP2;指令执行后对标志位无影响。指令执行后对标志位无影响。POPF标志出栈指令标志出栈指令(Pop Flag off Stack)指令格式:指令格式:POPF 指令功能:指令功能:将将堆栈指针SP所指的一个字弹入标志寄存器PSW;并修改堆栈指针,使SPSP2。注意:注意:要成对使用PUSHF和POPF,可对标志寄存器进行保存和恢复。常用在:过程(子程序)调用,中断服务程序,对主程序
5、的状态(即标志位)进行保护。也可用来改变追踪标志TF。在8086指令系统中没有直接改变TF(D8位)的指令。算术运算指令算术运算指令二、算术运算指令二、算术运算指令算术运算指令可处理算术运算指令可处理4 4种类型的数:种类型的数:l无符号二进制整数l带符号二进制整数l无符号压缩十进制整数(Packed Decimal)l无符号非压缩十进制整数(Unpacked Decimal)一个8位二进制数可看成4种不同类型的数,所表示的数值亦不同。数的表示:数的表示:l二进制数:可以是8位或16位,若是带符号数,则用补码表示。l压缩十进制数:一个字节中存放两个BCD码十进制数。l非压缩十进制数:个字节的低
6、半字节存放十进制数,高半字节为全零。例如,对十进制数字58:压缩十进制数表示:只需一个字节,即 0101 1000B;非压缩十进制数表示:需两个字节,即 0000 0101B 和 0000 1000B。算术运算指令算术运算指令l加、减、乘、除运算指令加、减、乘、除运算指令:处理无符号或带符号的8位/16位二进制数的算术运算;l调整操作指令调整操作指令:进行压缩的或非压缩的十进制数的算术运算;l加法和减法运算指令加法和减法运算指令:带符号数和无符号数的加法和减法的运算可以用同一条加法或减法指令来完成。l乘法和除法运算乘法和除法运算:分别设置无符号数和带符号数的乘、除法指令乘、除法指令。绝大部分算
7、术运算指令都影响状态标志位。绝大部分算术运算指令都影响状态标志位。算术运算指令算术运算指令算术逻辑指令算术逻辑指令(Addition)ADD加法指令加法指令(Addition)指令格式:ADD 目的,目的,源源 指令功能:目的 源 十 目的 ADC带进位的加法指令带进位的加法指令(Addition with Carry)指令格式:ADC 目的,目的,源源 指令功能:目的 源 十 目的 十 CF注意:注意:l源操作数可以是寄存器、存储器、立即数;l目的操作数:只能用寄存器、存储单元。l源、目的操作数不能同时为存储器,且类型必须一致,均为字节或字;l这两条指令影响的标志位为:CF、OF、PF、SF
8、、ZF和AF。算术运算指令算术运算指令算术运算指令算术运算指令例:两种加法指令的实例例:两种加法指令的实例 ADD AL,18H ;AL AL十18H ADC BL,CL ;BL BL十CL十CF ADC AX,DX ;AX AX十DX十CF ADD AL,COSTBX ;AL内容和地址DS:(COST+BX)的存储字节 ;相加,结果送AL ADD COSTBX,BL;将BL与物理地址DS:(COST十BX)的存储字 节相加,结果留在该存储单元中例例:用加法指令对两个8位16进制数5EH和3CH求和,并分析加法运算指令执行后对标志位的影响。解:MOV AL,5EH ;AL5EH(94)MOV
9、BL,3CH ;BL3CH(60)ADD AL,BL ;结果AL9AH算术运算指令算术运算指令讨论讨论ADD对标志位的影响:对标志位的影响:两个数的相加过程:两个数的相加过程:0101 1110 5EH =94 +0011 1100 即:+3CH =60 1001 1010 9AH =154运算后标志位:ZF0,AF1,CF0,SFl,PF1,OF1。对标志的解释(人为决定):对标志的解释(人为决定):两个加数都看成无符号数无符号数时,运算结果为9AH,即十进制数154。在这种情况下,SF和OF都没有意义没有意义,我们只关心关心ZF和和CF标志,在BCD码运算或奇偶校验时才考虑AF或PF标志。
10、两个加数都当成带符号数带符号数时,符号标志SF和溢出标志OF很重要很重要,而进位标志CF没有意义没有意义。带符号数能表示的范围-128+127,而本例中,两个正数94和60相加,其和为154,由于154超过了范围,即产生了溢出,OF1算术运算指令算术运算指令 INC增量指令增量指令(Increment)指令格式:INC 目的目的 指令功能:目的 目的 十1 操作数的要求:通用寄存器、内存。注意:注意:这条指令主要用在循环程序中,对地址指针和循环计数器等进行修改;指令执行后影响影响AF、OF、PF、SF和和ZF,但不影响进位标志不影响进位标志CF。该指令只有一个操作数时,如果要使内存单元内存单元
11、的内容增增1,程序中必须说说明明该存储单元是字还是字节字还是字节。例 INC BL ;BL寄存器中内容增1 INC CX ;CX寄存器中内容增1 INC BYTE PRRBX ;内存字节单元内容增1 INC WORD PTRBX ;内存字单元内容增1 其中,PTR为类型说明符为类型说明符,前面加BYTE说明操作数类型为字节,加WORD则说明操作数类型为字字。算术运算指令算术运算指令 AAA加法的加法的ASCII调整指令调整指令(ASCII Adjust for Addition)指令格式:AAA 指令功能:在用ADD或ADC指令对两个非压缩十进制数或ASCII码表示的十进制数作加法后,运算结果
12、已存在AL中,用此指令将用此指令将AL寄存器中的运算寄存器中的运算结果调整为一位非压缩十进制数,仍保留在结果调整为一位非压缩十进制数,仍保留在AL中中。如果AF1,表示向高位有进位,则进到AH寄存器中。(注:非压缩十进制数的高4位为全0,低4位为十进制数字09。例如,将9表示成0000 1001)调整过程:若AL低4位9或AF1 则:ALAL十6 用与操作()将AL高4位清0 AF置1,CF置1,AHAH十l 否则,仅将AL寄存器的高4位清0。算术运算指令算术运算指令例例 若ALBCD 9,BLBCD 5,求两数之和。解:设AH0,则运算过程如下:ADD AL,BL ;0000 10019 ;
13、+0000 01015 AAA ;0000 1110低4为9 ;+0000 0110加6调整 ;0001 0100 ;0000 1111清高4位 ;0000 0100AL=4 ;CF=1,AF=1,AH=1 ;结果为AX0104H,表示非压缩十进制数14 算术运算指令算术运算指令例例 求ASCII码表示的数9(39H)与5(35H)之和。设AH0,则运算过程如下:MOV AL,9 ;AL=39HMOV BL,5 ;BL=35HADD AL,BL ;0011 10019 ;+0011 01015 AAA ;0110 1110低4为9 ;+0000 0110加6调整 ;0111 0100 ;000
14、0 1111清高4位 ;0000 0100AL=4 ;CF=1,AF=1,AH=1 ;结果为AX0104H,表示非压缩十进制数14 算术运算指令算术运算指令 DAA加法的十进制调整指令加法的十进制调整指令(Decimal Adjust for Addition)指令格式:DAA 指令功能:将两个压缩BCD数相加后的结果调整为正确的压缩BCD数。注意:注意:相加后的结果必须在AL中,才能使用DAA指令。调整过程:若AL的低4位9或AF1,则AL AL十6,对低4位进行调整;若此时AL的高4位9或CF1,则AL AL十60H,对高4位进行调整,并使CF置1,否则CF置0。算术运算指令算术运算指令例
15、例 若若ALALBCD 88BCD 88,BLBLBCD 49BCD 49,求两数之和,求两数之和。解 运算过程为:MOV AL,88H ;AL=88HMOV BL,49H ;BL=49HADD AL,BL ;1000 100088 ;+0100 100149 DAA ;1101 0001AF=1 ;+0000 0110加6调整 ;1101 0111调整后高半字节9 ;+0110 0000加60H调整 ;0011 0111结果为ALBCD 37,CF=1 算术运算指令算术运算指令(Subtration)SUB减法指令减法指令(Subraction)指令格式:指令格式:SUB 目的,源目的,源
16、指令功能:指令功能:目的 目的源 例例 SUB AX,BX ;AX AX-BX SUB DX,1850H ;DX DX-1850H SUB BL,BX ;BL中内容减去物理地址DS:(BX)处的字节,结果存入BL SBB带借位的减法指令带借位的减法指令(Subtract with Borrow)指令格式:SBB 目的,源 指令功能:目的 目的源CF (SBB主要用于多字节减法中)例例 SBB AL,CL;AL ALCLCF算术运算指令算术运算指令 DEC减量指令减量指令(Decrement)指令格式:指令格式:DEC 目的目的 指令功能指令功能:目的 目的-l 例例 DEC BX;BX BX-
17、1 DEC WORD PTRBP;堆栈段中位于BP偏置处的字减1 NEG取负指令取负指令(Negate)指令格式:指令格式:NEG 目的目的 指令功能:指令功能:目的 0目的,即对目的操作数取负 例例 NEG AX ;将AX中的数取负 NEG BYTE PTRBX ;对数据段中位于BX偏置处的字节取负 CMP比较指令比较指令(Compare)指令格式:CMP 目的,源目的,源 指令功能:目的源目的源,结果不回送到目的操作数中,仅反映在标志位上。用途:用在比较两个数大小又不破坏原操作数的场合。算术运算指令算术运算指令减法指令小结:减法指令小结:(上述五种指令都做减法运算)对于双操作数指令(对于双
展开阅读全文