ImageVerifierCode 换一换
格式:PPT , 页数:30 ,大小:438KB ,
资源ID:7256725      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-7256725.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课次10 微机原理PPT.ppt)为本站会员(kpmy5893)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

课次10 微机原理PPT.ppt

1、4.1.3 8086/8088指令系统,8086/8088CPU指令系统包含有133条基本指令。按其功能可以分为6类,它们是: 数据传送类指令 算术运算类指令 逻辑运算与位移类指令 字符串指令 控制转移类指令 处理器控制类指令。,一、 数据传送类指令,数据传送类指令时将数据、地址或立即数传送到寄存器或存储器单元中。它又可分为通用数据传送指令、累加器专用传送指令、地址传送指令和标志传送指令等四组。 (一)通用数据传送指令 1. 最基本的传送指令 指令格式及操作:MOV dst,src ;(dst)(src) dst 是目的操作数,它可以是存储器、寄存器(不能为IP)和段寄存器(不能为CS)。 S

2、rc 是源操作数,它可以是存储器、寄存器、段寄存器和立即数。,需说明一点,对于代码段寄存器CS和指令指针寄存器IP,通常无需用户利用传送指令改变其中的内容。但是CS可以作为源操作数。,16 位,2.堆栈操作指令 堆栈操作指令是用来完成压入和弹出堆栈操作的。80868088指令系统中提供了完成这两种操作的相应指令。 压入堆栈指令 指令格式及操作:PUSH src ;(SP) (SP)-2,(SP)+1:(SP) (src) src 源操作数可以是寄存器操作数和存储器操作数,且必须是16位的操作数,但不能是立即数。, 弹出堆栈指令 指令格式及操作:POP dst ; (dst) (SP)+1:(S

3、P),(SP) (SP)+2 dst 目的操作数可以是寄存器操作数和存储器操作数,且必须是16位的操作数,但不能是立即数。3.交换指令 指令格式及操作: XCHG opr1, opr2 ;(opr1) (opr2),(二) 累加器专用指令 这类指令中的一个操作数必须是累加器。累加器操作数可以是8位的,也可以是16位的。 1.输入/输出指令 输入输出指令可以分为两大类:一类是直接端口地址的输入输出指令:一类是通过DX寄存器间接端口地址的输入输出指令。 输入指令 直接寻址的输入指令 指令格式及操作:IN acc, port ;(acc) (port),间接寻址的输入指令 指令格式及操作:IN ac

4、c, DX ;(acc) (DX) 输出指令 直接寻址的输出指令 指令格式及操作:OUT port, acc ; (port) (acc) 间接寻址的输出指令 指令格式及操作:OUT DX, acc ; (DX) (acc),2.字节转换指令 指令格式及操作:XLAT src_table ;(AL) (BX)+(AL) XLAT指令是用来将一种字节代码转换成另一种字节代码。即将BX的内容(代码表格首址src_table)和AL的内容(表格偏移量)相加作为有效地址。并从中读出此内存表格地址单元的内容传送到AL累加器中。 XLAT指令还可以有以下几种表示形式:XLAT ;不写操作数XLATB ;有

5、B就不允许再写操作数。 XLAT ES:src_table ;重设段寄存器为ES,例在内存的数据段有一张16进制数的ASCII码表,其首地址为Hex_table,如下图所示,为欲将十六进制数0AH转换成ASCII码,则可用以下几条指令实现: MOV BX, OFFSET Hex_tale ;(BX) 表首址 MOV AL, 0AH ;(AL) 十六进制数A XLAT Hex_table ;查表转换,BX: 1000H,AX: 000AH,Hex_table,(三)地址传送指令 1. 取有效地址指令 指令格式:LEA reg16, mem 此指令的功能是将存放源操作数的16位偏移地址(即有效地址

6、EA)送到一个16位的通用寄存器中。即源操作数必须是一个存储器操作数,目的操作数必须是一个寄存器操作数。例如: LEA BX, buffer LEA AX, BPDI LEA DX, betyBXSI 注意LEA指令和MOV指令的异同。,不同:LEA BX, buffer ;将存储器buffer的偏 移地址送到BXMOV BX, buffer ;将存储器buffer的内容传送到BX 相同:LEA BX, buffer MOV BX, OFFSET buffer 以上两条指令都是将存储器buffer的偏移地址送到BX。其中OFFSET buffer 表示存储器偏移地址。,2. 地址指针装入DS指

7、令 指令格式:LDS reg16, mem32 此指令的功能是将源操作数所对应的双字长的内存单元中的高字内容(一般为16位段基址)送入DS,低字内容(一般为偏移地址)送入指令所指定的寄存器中。例如:LDS DI, 2130H,3. 地址指针装入ES指令 指令格式:LDS reg16, mem32 此指令的功能是将源操作数所对应的双字长的内存单元中的高字内容(一般为16位段基址)送入ES,低字内容(一般为偏移地址)送入指令所指定的寄存器中。例如:LES DI, 2130H,(四) 标志传送指令 1.取标志指令 指令格式: LAHF 2.置标志指令 指令格式: SAHF,OF,DF,IF,TF,S

8、F,ZF,AF,PF,CF,FLAG,AH,LAHF和SAHF指令操作示意图,3.标志压入堆栈指令 指令格式及操作:PUSHF ;(SP) (SP)-2,;(SP)+1;(SP) (FLAG) 4.标志弹出堆栈指令 指令格式及操作:POPF ; (FLAG) (SP)+1;(SP),; (SP) (SP)+2,二、算术运算指令,80868088有丰富的算术运算指令,而且可以处理4种类型的数据,如下表所示:,1.加法指令,在微处理器中,没有专用的BCD码运算指令,使用二进制运算指令进行BCD码数的运算,然后用BCD码运算调整指令进行调整,重新得到BCD码的结果。,例4.3 计算两个多字节十六进制

9、数之和:3B74AC60F8H+20D59E36C1H=?式中被加数和加数均有5个字节,可以编一个循环程序实现以上运算。假设已将被加数和加数分别存入从DATA1和DATA2开始的两个内存区,且均为低位字节在前,高位字节在后,如图4.15所示。要求相加所得结果仍存回以DATA1为首址的内存区。,程序流程图如图4.16所示。程序如下:MOV CX,5 ;设置循环次数MOV SI,0 ;置位移量初值CLC ;清进位CF LOOPER:MOV AL,DATA2SI;取一个加数ADC DATA1SI,AL ;和一个被加数相加INC SI ;位移量加1DEC CX ;循环次数减1 JNZ LOOPER ;

10、加完否,若没完,转LOOPER,继续相加HLT ;程序暂停,图4.15 例4.3中被加数和加数在内存中的存放情况,图4.16 例4.3的程序流程图,AAA指令的操作为:如果 (AL) 0FH9 或 (AF)1则 (AL) (AL)06H (AH) (AH)1(AF) 1(CF) (AF)(AL) (AL) 0FH)否则 (AL) (AL) 0FH) DAA指令的操作为:如果 (AL) 0FH9, (AF)1则 (AL) (AL)06H (AF) 1如果 (AL) 9FH 或 (CF)1则 (AL) (AL)60H (CF) 1,例要求计算两个至今指数之和,78?。可用以下指令实现: MOV A

11、X, 0007H ;(AL)=07H,(AH)=00H MOV BL, 08H ;(BL)=08H ADD AL, BL ;(AL)=0FH AAA ;(AL)=05H,(AH)=01H;(CF)=(AF)=1MOV AX, 0007H ;(AL)=07H,(AH)=00H MOV BL, 08H ;(BL)=08H ADD AL, BL ;(AL)=0FH DAA ;(AL)=15H,(AH)=00H ;(CF)=0,(AF)=1,2.减法指令,例4.4 内存数据段存放了200个带符号数,首地址为TAB1,要求将各数取绝对值后存入以TAB2为首址的内存区。由于200个带符号数中可能既有正数,

12、又有负数,因此先要判断正负。如为正数,可以原封不动地传送到另一内存区;如为负数,则需先求补即可得到负数的绝对值,然后再传送。程序如下:,LEA SI,TAB1 ;(SI)源地址指针LEA DI,TAB2 ;(DI)目标地址指针MOV CX,200 ;(CX)循环次数,CHECK: MOV AL,SI ;取一个带符号数到ALOR AL,AL ;AL内容不变,但使之影响标志JNS NEXT ;若(SF)=0,则转NEXTNEG AL ;否则求补 NEXT: MOV DI,AL ;传送到目标地址INC SI ;源地址加1INC DI ;目标地址加1DEC CX ;循环次数减1JNZ CHECK ;如

13、不等于零,则转CHECKHLT ;停止,AAS指令的操作为:如果 (AL) 0FH9 或 (AF)1则 (AL) (AL)06H (AH) (AH)1(AF) 1(CF) (AF)(AL) (AL) 0FH)否则 (AL) (AL) 0FH) DAS指令的操作为:如果 (AL) 0FH9, (AF)1则 (AL) (AL)06H (AF) 1如果 (AL) 9FH 或 (CF)1则 (AL) (AL)60H (CF) 1,3.乘法指令,AL,源操作数,AX,源操作数,4.除法指令,8086/8088CPU执行除法时规定:除数只能是被出数的一半字长。当被除数为16位时,除数应为8为;当被除数为32位时,除数应为16为,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报