- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5次课:8086指令系统
内容:数据传送指令、算术运算指令
重点:指令的格式、指令的应用
难点:指令的应用
作业:2.9、2.10、2.13
2.5 8086指令系统
2.5.1 数据传送指令
数据传送指令可完成寄存器与寄存器之间、寄存器与存储器之间以及寄存器与端口之间的字节或字传送
1. 通用数据传送指令
(1)MOV 传送指令
格式: MOV 目标,源
指令功能:将源操作数(一个字节或一个字)传送到目标操作数。
源操作数可以是8/16位通用寄存器、段寄存器、存储器中的某个字节/字或者是8/16位的立即数。
目标操作数不允许为立即数,其他同源操作数。
(2)堆栈操作指令
①PUSH 入栈指令
格式: PUSH 源
指令功能:将源操作数压入堆栈。
源操作数可以是16位通用寄存器、段寄存器或者是存储器中的数据字。
②POP 出栈指令
格式: POP 目标
指令功能:将堆栈中当前栈顶和次栈顶中的数据字弹出送到目标操作数。
目标操作数可以是16位通用寄存器、段寄存器或者是存储单元。
(3)XCHG 交换指令
格式:XCHG 目标,源
指令功能:将源操作数与目标操作数(一个字节或一个字)相互交换位置。
源操作数可以是通用寄存器或存储单元。目标操作数只允许是通用寄存器。
(4)XLAT 换码指令
这是一条完成字节翻译功能的指令,又可称为代码转换指令。
格式:XLAT
指令功能:AL←(BX+AL)
2. 目标地址传送指令
(1)LEA 有效地址送寄存器指令
格式: LEA 目标,源
指令功能:将源操作数的有效地址EA传送到目标操作数。
源操作数必须是存储器操作数。目标操作数必须是16位通用寄存器。
(2)LDS 指针送寄存器和DS指令
格式: LDS 目标,源
指令功能:从源操作数所指定的存储单元中取出某变量的地址指针(共四个字节),将其前两个字节(即变量的偏移地址)传送到目标操作数,后两个字节(即变量的段地址)传送到DS段寄存器中。
源操作数必须是存储器操作数,从该单元开始,连续4个字节存放的是某变量的地址指针。目标操作数必须是16位通用寄存器。
(3)LES 指针送寄存器和ES指令
格式: LES 目标,源
3. 标志位传送指令
(1)LAHF 标志位送AH指令
格式: LAHF
指令功能:将标志寄存器FLAGS的低字节传送到AH寄存器中。
(2)SAHF AH送标志寄存器指令
格式: SAHF
指令功能:将AH寄存器内容送到标志寄存器FLAGS的低字节。
(3)PUSHF 标志进栈指令
格式: PUSHF
指令功能:将16位标志寄存器FLAGS内容入栈保护。
()LAGS中。
4. 输入/输出数据传送指令
输入/输出指令用来完成累加器(AX/AL)与I/O端口之间数据传送功能,第六章介绍。
2.5.2 算术运算指令
8086指令系统中,具有完备的加、减、乘、除算术运算指令,可处理无符号或有符号的8/16位二进制数,以及压缩型/非压缩型BCD码十进制整数。
注意对标志位的影响。
1. 加法运算指令
(1)ADD 加法指令
格式: ADD 目标,源
指令功能:将源操作数与目标操作数相加,结果保留在目标操作数,并根据结果置标志位。
源操作数可以是8/16位通用寄存器、存储单元或立即数。
目标操作数不允许是立即操作数,其他同源操作数,且不允许两者同时为存储器操作数。
(2)ADC 带进位加法指令
格式: ADC 目标,源
指令功能:将源操作数和目标操作数以及CF的值相加,结果保留在目标操作数,并根据结果置标志位。
这条指令主要用于多字节(或多字)加法运算中。
(3)INC 加1指令
格式: INC 目标
指令功能:将目标操作数加1,送回目标操作数。
2. 减法运算指令
(1)SUB 减法指令
格式: SUB 目标,源
指令功能:将目标操作数减去源操作数,其结果送回到目标操作数,并根据运算结果置标志位状态。
源操作数可以是8/16位通用寄存器、存储器单元或立即数。
目标操作数只允许是通用寄存器或存储单元,不允许两个操作数同时为存储器操作数。
(2)SBB 带借位减法指令
格式: SBB 目标,源
本指令执行过程与SUB指令基本相同,唯一的不同点是SBB指令在执行减法运算时,还要减去CF的值,SBB指令主要用于多字节减法运算中。
(3)DEC 减1指令
格式: DEC 目标
指令功能:将目标操作数减1后送回目标操作数。
目标操作数可以是8/16位通用寄存器和存储器操作数,但不允许是立即数。
根据运算结果置
文档评论(0)